AwsBasicCredentials credentials = AwsBasicCredentials.create("awsAccessKey","awsSecretAcessKey");


aws service에 접근하기 위한 Aws Credentials를 제공한다.
accessKey와 secretKey를 활용해 새로운 Aws Credentials 객체를 만든다.
S3Client client = S3Client.builder()
.region(Region.AP_NORTHEAST_2)
.credentialsProvider(StaticCredentialsProvider.create(credentials))
.build();

https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3Client.html


자격 증명 제공자를 '자격증명'을 통해 만들며
자격 증명 제공자는 항상 제공된 자격 증명 모음을 반환합니다.
AwsBasicCredential는 AwsCredentials를 상속받기 때문에, create()문 안에 들어갈 수 있다.
PutObjectRequest request = PutObjectRequest.builder()
.bucket(BUCKET)
.key(fileName)
.build();
주요 속성 및 메서드
Bucket Name: 업로드할 대상 버킷의 이름.
Key: 업로드할 객체의 키(파일 경로와 유사).
File: 업로드할 파일 객체.
InputStream: 파일 대신 데이터를 스트림으로 업로드할 경우 사용.
Metadata: 업로드할 객체에 대한 메타데이터.
client.putObject(request,
RequestBody.fromInputStream(inputStream,inputStream.available()));
default PutObjectResponse putObject(PutObjectRequest putObjectRequest, RequestBody requestBody) throws AwsServiceException, SdkClientException, S3Exception {
throw new UnsupportedOperationException();
}
PutObjectRequest putObjectRequest
업로드할 객체에 대한 모든 정보를 포함하는 요청 객체입니다. 버킷 이름, 객체 키, 메타데이터 등을 포함할 수 있습니다.
RequestBody requestBody
업로드할 실제 데이터입니다. 파일, 입력 스트림 등 다양한 형태로 제공될 수 있습니다.
AwsServiceException
AWS 서비스에서 발생하는 예외입니다. AWS 서비스 측의 문제로 인해 요청이 실패할 때 발생합니다.
SdkClientException
클라이언트 측에서 발생하는 예외입니다. 네트워크 오류 등 클라이언트 측 문제로 인해 요청이 실패할 때 발생합니다.
S3Exception
S3 서비스에 특화된 예외입니다. S3 관련 작업 중 문제가 발생할 때 사용됩니다.
Stream
먼저 Stream을 위키백과에 검색하면 이렇게 나온다.
개별 바이트나 문자열인 데이터의 원천
파일을 읽거나 쓸 때, 네트워크 소켓을 거쳐 통신할 때 쓰이는 추상적인 개념
백과에 정의된 내용을 쉽게 표현하면, '데이터가 전송되는 통로'라고 표현할 수 있다.
데이터가 네트워크를 거치건, 파일에서 넘어오건, 키보드로부터 오건, 데이터가 오고가는 통로가 스트림인 것이다.
byte
바이트란 이해하기 쉽다. 다 알고 계시겠지만 모든 데이터는 결국 0과 1로 귀결되고 0이나 1이 8개 모이면 그것을 'byte'라고 부른다. 따라서 우선은 그냥 '데이터'라고 생각해도 된다.
종합하면 InputStream 추상 클래스는 데이터가 들어오는 통로의 역할에 관해 규정하고 있는 추상 클래스이다.
https://lannstark.tistory.com/34
주요 메소드
RequestBody.fromInputStream(inputStream, inputStream.available()));
이 메서드는 주어진 입력 스트림(inputStream)을 기반으로 RequestBody 객체를 생성하며, 스트림의 길이를 나타내는 두 번째 매개변수를 필요로 합니다.
RequestBody.fromInputStream()
AWS SDK에서 S3에 업로드할 데이터의 본문을 생성하기 위해 사용하는 정적 메서드입니다. 이 메서드는 입력 스트림과 해당 스트림의 길이를 받아
RequestBody 객체를 생성합니다.
inputStream
업로드할 데이터를 포함하는 입력 스트림입니다. 예를 들어, 파일이나 네트워크 소켓에서 읽은 데이터를 포함할 수 있습니다.
inputStream.available()
입력 스트림에서 읽을 수 있는 바이트 수를 반환합니다. 이는 스트림의 길이를 나타내며,
RequestBody 객체를 생성할 때 데이터의 크기를 지정
하기 위해 사용됩니다.