Как сделать так, чтобы разрешение файла «read publi c» при загрузке файла на S3 с помощью TransferManager с использованием java? - PullRequest
1 голос
/ 05 января 2020

Я хочу разрешить моему файлу разрешение на чтение c при загрузке файла на s3. Я использую -

TransferManager tm = TransferManagerBuilder.standard().withS3Client(s3Client).build();
            ObjectMetadata metadata = new ObjectMetadata();
            metadata.setCacheControl("max-age=2592000, must-revalidate");
            Upload upload = tm.upload(props.getProperty("aws.bucket.name"), keyName,
                    new File(rootPath + SUFFIX + fileName));
            upload.waitForCompletion();

Можете ли вы помочь, как я могу использовать ACL ?

1 Ответ

0 голосов
/ 05 января 2020

Используйте альтернативный метод upload (PutObjectRequest) . Когда вы используете этот вариант загрузки, вы предоставляете PutObjectRequest , который вы создаете с помощью корзины, ключа и файла, и затем вы можете присоединить постоянный ACL, используя withCannedAcl (CannedAccessControlList) . Например:

PutObjectRequest por = new PutObjectRequest(bucket, key, file)
    .withCannedAcl(CannedAccessControlList.PublicRead);
Upload upload = tm.upload(por);
upload.waitForCompletion();

Другие альтернативы включают в себя:

  • впоследствии установить ACL с помощью переключателя s3Client.setObjectAcl(bucketName, keyName, acl)
  • на использование диспетчера переноса uploadFileList ( ) метод, который поддерживает параметр постоянного поставщика ACL.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...