Я хочу включить передачу данных между счетами через мою программу.Моя лямбда-функция в учетной записи AWS A записывает файлы .txt в корзину s3, принадлежащую учетной записи AWS B. Однако пользователи учетной записи B не могут прочитать файл, отброшенный лямбда-функцией учетной записи A.
Поэтому я попытался настроить ACL дляBucketOwnerFullControl.Вот мой код.
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, fileName, strData)
.withCannedAcl(CannedAccessControlList.BucketOwnerFullControl);
amazonS3.putObject(putObjectRequest);
Это выдает следующую ошибку:
com.amazonaws.services.s3.model.AmazonS3Exception: The request signature we calculated does not match the signature you provided. Check your key and signing method. (Service: Amazon S3; Status Code: 403; Error Code: SignatureDoesNotMatch;
Моя предыдущая запись работала нормально.
amazonS3.putObject(bucketName, fileName, strData);
Устанавливает CannedAclТребуется какой-то конкретный параметр для создания S3client?
Вот так я сейчас инициализирую свой клиент S3.
this.amazonS3 = AmazonS3ClientBuilder.standard().withForceGlobalBucketAccessEnabled(true).build();
Спасибо.