AWS S3 Redirect не поддерживается, хотя я никогда не устанавливал Redirect - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь поместить объект (загрузить) в S3 из моей Java лямбда-функции. Тем не менее, я получаю сообщение об ошибке, говорящее, что заголовок перенаправления не поддерживается, несмотря на то, что я никогда не устанавливал его. (Отредактированная) ошибка:

x-amz-website-redirect-location header is not supported for this operation. (Service: Amazon S3; Status Code: 400; Error Code: InvalidArgument; Request ID: XXX; S3 Extended Request ID: XXXXXX)

Мой Java класс, который выполняет загрузку, выглядит следующим образом:

public class Upload {

    private String bucket = "";
    private String key = "";
    private AmazonS3 s3;

    public Upload() {
        AWSCredentialsProvider s3cred = new DefaultAWSCredentialsProviderChain();
        AmazonS3ClientBuilder awsCb = AmazonS3ClientBuilder.standard();
        s3 = awsCb.withCredentials(s3cred).build();
    }

    public void uploadToS3() {
        PutObjectRequest por = new PutObjectRequest(bucket, key, "hello world");
        por.setStorageClass(StorageClass.Standard);
        por.setCannedAcl(CannedAccessControlList.BucketOwnerFullControl);

        s3.putObject(por);
    }
}

Эта ошибка действительно сбивает с толку я, потому что нигде в моем коде я никогда не устанавливал перенаправление.

Этот класс используется из другого метода, который создает объект Upload, устанавливает контейнер и ключ (с не показаны методы get и set) и вызывает uploadToS3(). Трассировка стека ошибки указывает на s3.putObject(por);.

Я пытался добавить por.setRedirectLocation(""); до s3.putObject(por); и та же проблема. Я также попытался por.setRedirectLocation(null); и получил ожидаемое исключение NullPointerException.

Любая помощь приветствуется!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...