S3Presigner presigner = S3Presigner.create();
S3 sdk 요청을 수행할 수 있도록한다. 추가적인 인증없이 실행되도록
예시코드

해줌.
본인코드
S3Presigner presigner = S3Presigner.create();
GetObjectRequest objectRequest = GetObjectRequest.builder()
.bucket(cloudProperties.getBucketName())
.key(uuid)
.build();
GetObjectPresignRequest presignRequest = GetObjectPresignRequest.builder()
// .signatureDuration(Duration.ofHours(1)) // The URL will expire in 10 minutes
.getObjectRequest(objectRequest)
.build();
PresignedGetObjectRequest presignedRequest = presigner.presignGetObject(presignRequest);
return presignedRequest.url().toExternalForm();
return presignedRequest.url().toExternalForm();


Presigned URL이란?
S3에 직접 파일을 업로드 하기 위해서는 해당 S3에 대한 접근 권한을 인증해야 합니다.
접근 권한에 대한 인증을 마치면 S3에 업로드 할 수 있는 URL 을 발급해 주는데, 이 URL을 presigned URL이라고 합니다. 발급 받은 presigned URL을 이용하면 브라우저에서 AWS S3 버킷에 바로 파일을 업로드 할 수 있습니다.
모든 출처
https://docs.oracle.com/javase/8/docs/api/overview-summary.html