πŸ’» Programming/Java

AWS S3 버킷에 파일 μ—…λ‘œλ“œν•˜κΈ° (μžλ°”)

μΌ€μ΄μΉ˜ 2018. 8. 17. 07:18


  AWS SDK Java jar 파일 λ‹€μš΄ λ°›κΈ°

AWS-SDK for Java - https://aws.amazon.com/ko/sdk-for-java/

μœ„ 링크λ₯Ό 따라 λ“€μ–΄κ°€λ©΄ 우츑 상단에 SDKλ‹€μš΄λ‘œλ“œ λ˜λŠ” 이클립슀용 νˆ΄ν‚·μ„ λ‹€μš΄λ‘œλ“œ 받을 수 μžˆλŠ” λ²„νŠΌμ΄ μžˆμŠ΅λ‹ˆλ‹€. μ €λŠ” 메이븐을 μ‚¬μš©ν• κ±΄λ° 직접 λ‹€μš΄λ‘œλ“œ λ°›κ±°λ‚˜ νˆ΄ν‚·μ„ 써보고 μ‹ΆμœΌμ‹  뢄듀은 μœ„ 링크λ₯Ό μ΄μš©ν•΄μ£Όμ„Έμš”.


maven을 μ΄μš©ν•œλ‹€λ©΄ 

1
2
3
4
5
<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk</artifactId>
    <version>1.11.386</version>
</dependency>


이 글이 ν¬μŠ€νŒ… λ˜λŠ” μ‹œμ μ— μ΅œμ‹ λ²„μ „μ€ 1.11.388μž…λ‹ˆλ‹€. minor 버전이 ν•˜λ£¨κ°€ λ‹€λ₯΄κ²Œ μ¦κ°€ν•˜κ³ μžˆμ–΄μš” γ…Ž



  AWS s3 파일 μ—…λ‘œλ“œ ν•˜κΈ°(AWS S3 Upload for java )

μ‹€μ œλ‘œ S3에 μ—…λ‘œλ“œλ₯Ό ν•˜κΈ° μœ„ν•΄μ„œλŠ” S3에 κΆŒν•œμ΄ ν•„μš”ν•©λ‹ˆλ‹€. 이 κΆŒν•œμ„ μ–»κΈ° μœ„ν•΄μ„œλŠ” ACCESS_KEY, SECRET_KEY λ₯Ό 생성해야 ν•˜λŠ”λ° μ΄λŠ” μ•„λž˜ 링크λ₯Ό μ°Έκ³ ν•΄μ£Όμ„Έμš”.

# Access Key, Secret Key 생성방법 - http://keichee.tistory.com/298



μ‚¬μš©λ°©λ²•μ€ κ°„λ‹¨ν•©λ‹ˆλ‹€.

μ•„λž˜μ²˜λŸΌ νŒŒμΌμ„ 전달받아 μ•„λ§ˆμ‘΄ S3에 accesskey와  secretkeyλ₯Ό μ΄μš©ν•˜μ—¬ κΆŒν•œμ„ μ–»κ³  νŒŒμΌμ„ μ—…λ‘œλ“œ ν•˜λ©΄λ©λ‹ˆλ‹€. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class AWSService {
    private static final String BUCKET_NAME = "bucket_name";
    private static final String ACCESS_KEY = "ACCESS_KEY";
    private static final String SECRET_KEY = "SECRET_KEY";
    private AmazonS3 amazonS3;
 
    public AWSService() {
        AWSCredentials awsCredentials = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY);
        amazonS3 = new AmazonS3Client(awsCredentials);
    }
 
    public void uploadFile(File file) {
        if (amazonS3 != null) {
            try {
                PutObjectRequest putObjectRequest =
                        new PutObjectRequest(BUCKET_NAME + "/sub_dir_name"/*sub directory*/, file.getName(), file);
                putObjectRequest.setCannedAcl(CannedAccessControlList.PublicRead); // file permission
                amazonS3.putObject(putObjectRequest); // upload file
 
            } catch (AmazonServiceException ase) {
                ase.printStackTrace();
            } finally {
                amazonS3 = null;
            }
        }
    }
}