

# 디렉터리 버킷에서 객체 다운로드
<a name="directory-buckets-objects-GetExamples"></a>

 다음 코드 예제는 `GetObject` API 작업을 사용하여 Amazon S3 디렉터리 버킷의 객체에서 데이터를 읽는(다운로드하는) 방법을 보여줍니다.

## AWS SDK 사용
<a name="directory-bucket-copy-sdks"></a>

------
#### [ SDK for Java 2.x ]

**Example**  
다음 코드 예제는 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);
    }
}
```

------
#### [ SDK for Python ]

**Example**  
다음 코드 예제는 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 사용
<a name="directory-download-object-cli"></a>

다음 `get-object` 예제 명령은 AWS CLI를 사용하여 Amazon S3에서 객체를 다운로드하는 방법을 보여줍니다. 이 명령은 디렉터리 버킷 `bucket-base-name--zone-id--x-s3`에서 `KEY_NAME` 객체를 가져옵니다. 객체는 `LOCAL_FILE_NAME`라는 파일로 다운로드됩니다. 이 명령을 실행하려면 `user input placeholders`를 사용자의 정보로 대체합니다.

```
aws s3api get-object --bucket bucket-base-name--zone-id--x-s3 --key KEY_NAME LOCAL_FILE_NAME
```

자세한 내용은 *AWS CLI 명령 참조*의 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/get-object.html) 섹션을 참조하십시오.