디렉터리 버킷에서 객체 다운로드하기
디렉터리 버킷에서 객체 다운로드하기 (Downloading an object from a directory bucket)
아래 코드 예제들은 GetObject API 작업으로 Amazon S3 디렉터리 버킷의 객체에서 데이터를 읽는(다운로드하는) 방법을 보여줘요.
출처: 문서
본문
Java 예제 (AWS SDK for Java 2.x)
다음 코드 예제는 AWS SDK for Java 2.x로 디렉터리 버킷의 객체에서 데이터를 읽는 방법을 보여줘요.
public static void getObject(S3Client s3Client, String bucketName, String objectKey) {
try {
GetObjectRequest objectRequest = GetObjectRequest
.builder()
.key(objectKey)
.bucket(bucketName)
.build();
ResponseBytes GetObjectResponse objectBytes = s3Client.getObjectAsBytes(objectRequest);
byte[] data = objectBytes.asByteArray();
//Print object contents to console
String s = new String(data, StandardCharsets.UTF_8);
System.out.println(s);
}
catch (S3Exception e) {
System.err.println(e.awsErrorDetails().errorMessage());
System.exit(1);
}
}
Python 예제 (Boto3)
다음 코드 예제는 AWS SDK for Python(Boto3)으로 디렉터리 버킷의 객체에서 데이터를 읽는 방법을 보여줘요.
import boto3
from botocore.exceptions import ClientError
from botocore.response import StreamingBody
def get_object(s3_client: boto3.client, bucket_name: str, key_name: str) -> StreamingBody:
"""
Gets the object.
:param s3_client:
:param bucket_name: The bucket that contains the object.
:param key_name: The key of the object to be downloaded.
:return: The object data in bytes.
"""
try:
response = s3_client.get_object(Bucket=bucket_name, Key=key_name)
body = response['Body'].read()
print(f"Got object '{key_name}' from bucket '{bucket_name}'.")
except ClientError:
print(f"Couldn't get object '{key_name}' from bucket '{bucket_name}'.")
raise
else:
return body
def main():
s3_client = boto3.client('s3')
resp = get_object(s3_client, 'doc-example-bucket--use1-az4--x-s3', 'sample.txt')
print(resp)
if __name__ == "__main__":
main()
AWS CLI 예제
다음 get-object 예제 명령은 AWS CLI로 Amazon S3에서 객체를 다운로드하는 방법을 보여줘요. 이 명령은 bucket-base-name--zone-id--x-s3 디렉터리 버킷에서 KEY_NAME 객체를 가져와 LOCAL_FILE_NAME 파일로 다운로드해요. 실행 시 사용자 입력 자리표시자는 직접 채워 넣어야 합니다.
aws s3api get-object --bucket bucket-base-name--zone-id--x-s3 --key KEY_NAME LOCAL_FILE_NAME
CLI get-object 명령에 대한 자세한 내용은 AWS CLI Command Reference를 참고하세요.