oscerd opened a new pull request, #25750:
URL: https://github.com/apache/camel/pull/25750

   # CAMEL-24493: honor the IBM COS producer options
   
   `IBMCOSProducer.putObject()` built a plain `PutObjectRequest` and never read 
the four producer options declared on `IBMCOSConfiguration` — even though the 
component docs advertise them (a multipart upload _"if multiPartUpload option 
is enabled"_, with a `?multiPartUpload=true&partSize=5242880` example). So 
`multiPartUpload` / `partSize` / `storageClass` / `deleteAfterWrite` were 
silently ignored.
   
   ## Fix
   
   Mirroring `camel-aws2-s3`'s `AWS2S3Producer` (this module was copied from 
it):
   - **storageClass** → applied to the `PutObjectRequest` via 
`withStorageClass`.
   - **multiPartUpload / partSize** → when enabled, upload through the IBM COS 
SDK `TransferManager` with the minimum upload part size and multipart threshold 
set to `partSize`, so large payloads are sent as a multipart upload. The 
`TransferManager`'s thread pool is shut down afterwards (`shutdownNow(false)`), 
leaving the shared COS client open.
   - **deleteAfterWrite** → after a successful upload, delete the local `File` 
payload (a `File` body, or a `WrappedFile` backed by a local `File`).
   
   ## Testing
   
   The module ships only integration tests (they require live IBM COS 
credentials) and has no mocking dependency, so these options can't be 
unit-tested without new test deps. The implementation ports the reviewed 
`camel-aws2-s3` producer semantics and uses the SDK's own `TransferManager` for 
multipart. Verified with a module build (`BUILD SUCCESS`, no generated-file 
drift — the options already existed).
   
   ---
   _Claude Code on behalf of oscerd_
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to