Я предполагаю, что для кода нужен только s3:GetObject [code] import software.amazon.awssdk.core.async.AsyncResponseTransformer; import software.amazon.awssdk.services.s3.S3AsyncClient; import software.amazon.awssdk.services.s3.model.GetObjectRequest;
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))); } [/code] Я удивлен, увидев ошибку: [code]... is not authorized to perform: s3:ListBucket on resource: ... [/code] Что и почему существует листинг?