Почему s3:ListBucket необходим для S3AsyncClient.getObjectJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему s3:ListBucket необходим для S3AsyncClient.getObject

Сообщение Anonymous »

Я предполагаю, что для кода нужен только s3:GetObject

Код: Выделить всё

        import software.amazon.awssdk.core.async.AsyncResponseTransformer;
import software.amazon.awssdk.services.s3.S3AsyncClient;
import software.amazon.awssdk.services.s3.model.GetObjectRequest;

private final S3AsyncClient s3;

@GetMapping(path = "/{file}")
Mono downloadFile(@PathVariable("file") String file) {

final var request =
GetObjectRequest.builder()
.bucket("my-bucket")
.key("aPrefix/" + file)
.build();

return Mono.fromFuture(s3.getObject(request, AsyncResponseTransformer.toPublisher()))
.map(
response ->
ResponseEntity.ok()
.header(CONTENT_TYPE, response.response().contentType())
.header(
CONTENT_LENGTH,
Long.toString(response.response().contentLength()))
.header(CACHE_CONTROL, CACHE_CONTROL_VALUE)
.body(Flux.from(response)));
}
Я удивлен, увидев ошибку:

Код: Выделить всё

... is not authorized to perform: s3:ListBucket on resource: ...
Что и почему существует листинг?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -getobject
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»