티스토리 뷰

이 페이지는 S3 버킷을 지정하고 그 안의 객체를 가져오는 내용을 설명하고 있다.

AWSConfig.java는 이전에 작성했던  'Reading S3 text file as a string'에서 작성했던 코드를 그대로 이용한다. (저는 하나의 파일을 만들어두고 필요한 경우 불러오는 형태로 작업하고 있습니다)


# AWSConfig.java

S3 파일에 접근하기 위해서는 aws 설정이 필요합니다.

우선 보안상 / 코드의 효율성을 위해 다른 곳에 설정되어 있는  AWS ACCESS KEY, SECRET KEY, region 을 가져오는 코드를 포함하고 있습니다.

@Value(“${AWS_ACCESS_KEY_ID}”)
private String accessKey;

@Value(“${AWS_SECRET_KEY}”)
private String secretKey;

@Value(“${spring.aws.region}”)
private String region;

@Bean
public BasicAWSCredentials basicAWSCredentials() {
return new BasicAWSCredentials(accessKey, secretKey);
}

@Bean
public AWSCredentialsProvider awsCredentialsProvider(AWSCredentials awsCredentials) {


return new AWSCredentialsProvider() {
@Override
public AWSCredentials getCredentials() { return awsCredentials; }
@Override

public void refresh() {}
};

}

@Bean
public AmazonS3 amazonS3Client(AWSCredentialsProvider awsCredentialsProvider) {
return AmazonS3ClientBuilder
.standard()
.withCredentials(awsCredentialsProvider)
.withRegion(Regions./fromName/(region))
.build();
}


# Get list object in AWS S3 bucket

AmazonS3 s3Client = awsConfig.amazonS3Client(awsConfig.awsCredentialsProvider(awsConfig.basicAWSCredentials()));
ObjectListing objectListing = s3Client.listObjects(BucketName, prefix); //prefix가 필요하지 않은 경우 다음과 같이 사용할 수도 있다. => ObjectListing objectListing = s3Client.listObjects(BucketName); 
for(S3ObjectSummary s : objectListing.getObjectSummaries()) {
System.out.println(s.getKey());
}

위의 코드를 실행하면 s3 버킷에 들어있는 파일리스트를 출력할 수 있고, 사용에 따라 출력이 아닌 다른 작업으로 수정하면 된다.


댓글
최근에 올라온 글
«   2024/11   »
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 29 30
Total
Today
Yesterday