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]
