[
https://issues.apache.org/jira/browse/CAMEL-25936?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen reassigned CAMEL-25936:
-----------------------------------
Assignee: Claus Ibsen
> camel-aws2-s3 - headBucket and headObject take the bucket and the key only
> from headers, not from the endpoint and the keyName option
> -------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-25936
> URL: https://issues.apache.org/jira/browse/CAMEL-25936
> Project: Camel
> Issue Type: Bug
> Components: camel-aws2-s3
> Affects Versions: 4.18.0, 4.22.0, 4.23.0
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Priority: Minor
> Fix For: 4.24.0
>
>
> The other operations of the aws2-s3 producer take the bucket from the
> endpoint (or the {{CamelAwsS3OverrideBucketName}} header) and the key from
> the {{keyName}} option (or the {{CamelAwsS3Key}} header), through
> {{AWS2S3Utils.determineBucketName}} and {{determineKey}}. headBucket and
> headObject, added in CAMEL-21262 (4.9.0), read only the headers
> ({{AWS2S3Producer}}, main 4065a7464c45, lines 873-877 and 893-897):
> {code:java}
> private void headBucket(S3Client s3Client, Exchange exchange) {
> String bucketName =
> exchange.getIn().getHeader(AWS2S3Constants.OVERRIDE_BUCKET_NAME,
> String.class);
> if (ObjectHelper.isEmpty(bucketName)) {
> throw new IllegalArgumentException(
> "Head Bucket operation requires to specify a bucket name via
> Header");
> }
> ...
> private void headObject(S3Client s3Client, Exchange exchange) {
> String key = exchange.getIn().getHeader(AWS2S3Constants.KEY,
> String.class);
> if (ObjectHelper.isEmpty(key)) {
> throw new IllegalArgumentException(
> "Head Object operation requires to specify a bucket name via
> Header");
> {code}
> So {{aws2-s3:mybucket?operation=headBucket}} fails with "Head Bucket
> operation requires to specify a bucket name via Header", and
> {{aws2-s3:mybucket?operation=headObject&keyName=a.txt}} fails with "Head
> Object operation requires to specify a bucket name via Header", which names
> the bucket while the key is what is missing. With the headers set, both work.
> Checked on 4.24.0-SNAPSHOT against LocalStack S3 ({{camel infra run aws s3}}).
> *Proposed change*: take the bucket and the key with
> {{AWS2S3Utils.determineBucketName}} and {{determineKey}}, as the other
> operations do, and name the key in the message of headObject.
> _Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)