본문 바로가기
WEB ( Back, Front)/AWS

AWS SDK for Java : S3 File Upload (SDK Version 2)

by 프리랜서가 들려주는 IT세계 2020. 8. 6.
반응형

AWS  SDK for Java : S3 File Upload (SDK V2)

이번 프로젝트 진행하면서 S3 관련 작업을 해야될게 있어서 경험해보았다.

경험하면서 sdk V2 에 대한 글을 찾기가 어려워서 이렇게 기록한다.


글 목록

  1. SDK V2 자료

  2. 구현

  3. 체크사항

 


1. SDK V2 자료

https://sdk.amazonaws.com/java/api/latest/

 

AWS SDK for Java - 2.13.68

 

sdk.amazonaws.com

위의 API 문서를 보면서 많이 참고했다.

특히, 파일 업로드 관련 모듈은 s3.model 관련 API 문서를 참고하면 좋을 것이다.

 

https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javav2/example_code

 

awsdocs/aws-doc-sdk-examples

Welcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.rst file below...

github.com

AWS는 정말로 Example_code가 존재해서 정말로 좋다.

어려운 것도 많았지만, 하다보면 참 친절한 회사라 느껴질 것이다.

물론, 구현되지 않는 부분도 존재한다.

 

위 두 링크를 통해 도움이 많이 되었다.


2. 구현

//S3 인증 모듈
private S3Client getS3Client(String accessKey, String secretKey) {
		ProfileManager manager = new ProfileManager();
		manager.init(accessKey, secretKey);
	
		ProfileCredentialsProvider awsCreds = manager.getProfile();
		
		Region region = Region.AP_NORTHEAST_2; 	//	서울
		S3Client s3 = S3Client.builder()
				.region(region)
				.credentialsProvider(awsCreds)
				.build();
		
		return s3;
	}
    
    
S3Client s3 = getS3Client(accessKey, secretKey); //인증 처리
UploadPartRequest request = UploadPartRequest.builder().bucket("버킷명")
							.key("파일디렉토리Path").build();
RequestBody requestBody = RequestBody.fromFile("업로드할File(File로 처리)");
s3.uploadPart(request, requestBody); //이렇게 하면 S3 bucket의 지정한 Path로 저장된다.
// 또한 디렉토리 자동 생성되니, 참고하시길!

 

나는 "UploadPart"를 사용했다. 보통 문. 서를 보면, "PutObject"를 이용하여 객체를 생성한다 표현한다.

여기서  단어가 생소했지만, 하나의 파일이라 생각하면 쉬울 것이다.

 

다른 방법으로는 PutObject 를 이용해서 Upload하는 방법도 존재한다.

 

//PubObject 이용
PutObjectRequest request = PutObjectRequest.builder().bucket("버킷명").key("저장할 경로 Path").build();
RequestBody requestBody = RequestBody.fromFile(uploadFile);
s3.putObject(request, requestBody); //파일 업로드

이렇게 가능하다.

 


3. 체크사항

구현하고 나서, "권한"이 있는지 꼭 체크해야된다.

자신이 사용하는 계정이 Root면, 권한을 직접 줘야하지만,

프로젝트 상, IAM 계정을 이용하고 있다면, 권한이 부여되어있는지 확인하고, 없다면 권한 요청을 해야된다.

 

권한에서도 기능별로 사용권한을 줄 수 있기에, 제대로 확인하고, 업로드가 되는지 꼭 확인해야된다.

반응형

'WEB ( Back, Front) > AWS' 카테고리의 다른 글

AWS #4 DB  (0) 2020.09.23
AWS #3 네트워크  (0) 2020.09.22
AWS #2 Storage 개념  (0) 2020.09.21
AWS #0 주요 서비스  (0) 2020.09.18
AWS #1 많이 보는 용어  (0) 2020.09.18

댓글