를 사용한 Amazon S3 예제 AWS CLI - AWS SDK 코드 예제

AWS Doc SDK ExamplesWord AWS SDK 리포지토리에는 더 많은 GitHub 예제가 있습니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

를 사용한 Amazon S3 예제 AWS CLI

다음 코드 예제에서는 Amazon S3와 AWS Command Line Interface 함께를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.

작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.

각 예제에는 컨텍스트에서 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있는 전체 소스 코드에 대한 링크가 포함되어 있습니다.

주제

작업

다음 코드 예시에서는 abort-multipart-upload을 사용하는 방법을 보여 줍니다.

AWS CLI

지정된 멀티파트 업로드를 중단하려면

다음 abort-multipart-upload 명령은 my-bucket 버킷의 multipart/01 키에 대한 멀티파트 업로드를 중단합니다.

aws s3api abort-multipart-upload \ --bucket my-bucket \ --key multipart/01 \ --upload-id dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R

이 명령에 필요한 업로드 ID는 create-multipart-upload에서 출력되며 list-multipart-uploads를 사용하여 검색할 수도 있습니다.

다음 코드 예시에서는 complete-multipart-upload을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 my-bucket 버킷의 multipart/01 키에 대한 멀티파트 업로드를 완료합니다.

aws s3api complete-multipart-upload --multipart-upload file://mpustruct --bucket my-bucket --key 'multipart/01' --upload-id dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R

이 명령에 필요한 업로드 ID는 create-multipart-upload에서 출력되며 list-multipart-uploads를 사용하여 검색할 수도 있습니다.

위 명령의 멀티파트 업로드 옵션은 전체 파일로 재조립해야 하는 멀티파트 업로드의 부분을 설명하는 JSON 구조를 사용합니다. 이 예제에서는 file:// 접두사를 사용하여 라는 로컬 폴더의 파일에서 JSON 구조를 로드합니다mpustruct.

mpustruct:

{ "Parts": [ { "ETag": "e868e0f4719e394144ef36531ee6824c", "PartNumber": 1 }, { "ETag": "6bb2b12753d66fe86da4998aa33fffb0", "PartNumber": 2 }, { "ETag": "d0a0112e841abec9c9ec83406f0159c8", "PartNumber": 3 } ] }

각 파트의 ETag 값은 upload-part 명령을 사용하여 파트를 업로드할 때마다 출력되며, 각 파트의 MD5 체크섬을 호출하거나 list-parts 계산하여 검색할 수도 있습니다.

출력:

{ "ETag": "\"3944a9f7a4faab7f78788ff6210f63f0-3\"", "Bucket": "my-bucket", "Location": "https://my-bucket.s3.amazonaws.com/multipart%2F01", "Key": "multipart/01" }

다음 코드 예시에서는 copy-object을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 bucket-1에서 bucket-2로 객체를 복사합니다.

aws s3api copy-object --copy-source bucket-1/test.txt --key test.txt --bucket bucket-2

출력:

{ "CopyObjectResult": { "LastModified": "2015-11-10T01:07:25.000Z", "ETag": "\"589c8b79c230a6ecd5a7e1d040a9a030\"" }, "VersionId": "YdnYvTCVDqRRFA.NFJjy36p0hxifMlkA" }
  • API 세부 정보는 AWS CLI 명령 참조CopyObject를 참조하세요.

다음 코드 예시에서는 cp을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: 로컬 파일을 S3에 복사

다음 cp 명령은 단일 파일을 지정된 버킷 및 키에 복사합니다.

aws s3 cp test.txt s3://mybucket/test2.txt

출력:

upload: test.txt to s3://mybucket/test2.txt

예제 2: 만료 날짜가 있는 로컬 파일을 S3에 복사

다음 cp 명령은 지정된 ISO 8601 타임스탬프에 만료되는 단일 파일을 지정된 버킷 및 키에 복사합니다.

aws s3 cp test.txt s3://mybucket/test2.txt \ --expires 2014-10-01T20:30:00Z

출력:

upload: test.txt to s3://mybucket/test2.txt

예제 3: S3에서 S3로 파일 복사 S3

다음 cp 명령은 단일 s3 객체를 지정된 버킷 및 키에 복사합니다.

aws s3 cp s3://mybucket/test.txt s3://mybucket/test2.txt

출력:

copy: s3://mybucket/test.txt to s3://mybucket/test2.txt

예제 4: 로컬 파일에 S3 객체 복사

다음 cp 명령은 단일 객체를 지정된 파일에 로컬로 복사합니다.

aws s3 cp s3://mybucket/test.txt test2.txt

출력:

download: s3://mybucket/test.txt to test2.txt

예제 5: 한 버킷에서 다른 버킷으로 S3 객체 복사

다음 cp 명령은 원래 이름을 유지하면서 단일 객체를 지정된 버킷에 복사합니다.

aws s3 cp s3://mybucket/test.txt s3://mybucket2/

출력:

copy: s3://mybucket/test.txt to s3://mybucket2/test.txt

예제 6: S3 객체를 로컬 디렉터리에 반복적으로 복사

파라미터와 함께 전달되면 다음 cp 명령--recursive은 지정된 접두사 및 버킷에 있는 모든 객체를 지정된 디렉터리에 재귀적으로 복사합니다. 이 예제에서 버킷mybucket에는 객체test1.txt와가 있습니다test2.txt.

aws s3 cp s3://mybucket . \ --recursive

출력:

download: s3://mybucket/test1.txt to test1.txt download: s3://mybucket/test2.txt to test2.txt

예제 7: 로컬 파일을 S3에 반복적으로 복사

파라미터와 함께 전달되면 다음 cp 명령--recursive은 파라미터를 사용하여 일부 파일을 제외하면서 지정된 디렉터리에 있는 모든 파일을 지정된 버킷 및 접두사에 재귀적으로 복사합니다--exclude. 이 예제에서는 디렉터리에 파일 test1.txtmyDir가 있습니다test2.jpg.

aws s3 cp myDir s3://mybucket/ \ --recursive \ --exclude "*.jpg"

출력:

upload: myDir/test1.txt to s3://mybucket/test1.txt

예제 8: S3 객체를 다른 버킷에 반복적으로 복사

파라미터와 함께 전달되면 다음 cp 명령--recursive--exclude 파라미터를 사용하여 일부 객체를 제외하면서 지정된 버킷에 있는 모든 객체를 다른 버킷에 재귀적으로 복사합니다. 이 예제에서 버킷mybucket에는 객체test1.txt와가 있습니다another/test1.txt.

aws s3 cp s3://mybucket/ s3://mybucket2/ \ --recursive \ --exclude "another/*"

출력:

copy: s3://mybucket/test1.txt to s3://mybucket2/test1.txt

--exclude--include 옵션을 결합하여 다른 모든 객체를 제외하고 패턴과 일치하는 객체만 복사할 수 있습니다.

aws s3 cp s3://mybucket/logs/ s3://mybucket2/logs/ \ --recursive \ --exclude "*" \ --include "*.log"

출력:

copy: s3://mybucket/logs/test/test.log to s3://mybucket2/logs/test/test.log copy: s3://mybucket/logs/test3.log to s3://mybucket2/logs/test3.log

예제 9: S3 객체를 복사하는 동안 액세스 제어 목록(ACL) 설정

다음 cp 명령은 ACL를 로 설정하는 동안 단일 객체를 지정된 버킷 및 키에 복사합니다. public-read-write

aws s3 cp s3://mybucket/test.txt s3://mybucket/test2.txt \ --acl public-read-write

출력:

copy: s3://mybucket/test.txt to s3://mybucket/test2.txt

--acl 옵션을 사용하는 경우 연결된 IAM 정책에 "s3:PutObjectAcl" 작업이 포함되어 있는지 확인합니다.

aws iam get-user-policy \ --user-name myuser \ --policy-name mypolicy

출력:

{ "UserName": "myuser", "PolicyName": "mypolicy", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::mybucket/*" ], "Effect": "Allow", "Sid": "Stmt1234567891234" } ] } }

예제 10: S3 객체에 대한 권한 부여

다음 cp 명령은 --grants 옵션을 사용하여 URI로 식별된 모든 사용자에게 읽기 액세스 권한을 부여하고 정식 ID로 식별된 특정 사용자에게 전체 제어 권한을 부여하는 방법을 보여줍니다.

aws s3 cp file.txt s3://mybucket/ --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=id=79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be

출력:

upload: file.txt to s3://mybucket/file.txt

예제 11: S3에 로컬 파일 스트림 업로드

PowerShell 는의 인코딩을 변경하거나 파이프 입력에 CRLF를 추가할 수 있습니다.

다음 cp 명령은 표준 입력에서 지정된 버킷 및 키로 로컬 파일 스트림을 업로드합니다.

aws s3 cp - s3://mybucket/stream.txt

예제 12: 50GB보다 큰 로컬 파일 스트림을 S3에 업로드

다음 cp 명령은 표준 입력에서 지정된 버킷 및 키로 51GB 로컬 파일 스트림을 업로드합니다. --expected-size 옵션을 제공해야 합니다. 그렇지 않으면 기본 파트 한도인 10,000에 도달하면 업로드가 실패할 수 있습니다.

aws s3 cp - s3://mybucket/stream.txt --expected-size 54760833024

예제 13: 로컬 파일 스트림으로 S3 객체 다운로드

PowerShell 는의 인코딩을 변경하거나 파이프 또는 리디렉션된 출력에 CRLF를 추가할 수 있습니다.

다음 cp 명령은 S3 객체를 스트림으로 로컬에서 표준 출력으로 다운로드합니다. 스트림으로 다운로드는 현재 --recursive 파라미터와 호환되지 않습니다.

aws s3 cp s3://mybucket/stream.txt -

예제 14: S3 액세스 포인트에 업로드

다음 cp 명령은 키(mydoc.txt)의 액세스 포인트()에 단일 파일(myaccesspoint)을 업로드합니다mykey.

aws s3 cp mydoc.txt s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey

출력:

upload: mydoc.txt to s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey

예제 15: S3 액세스 포인트에서 다운로드

다음 cp 명령은 액세스 포인트(mykey)에서 로컬 파일()로 단일 객체(myaccesspoint)를 다운로드합니다mydoc.txt.

aws s3 cp s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey mydoc.txt

출력:

download: s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey to mydoc.txt
  • API 세부 정보는 AWS CLI 명령 참조Cp를 참조하세요.

다음 코드 예시에서는 create-bucket을 사용하는 방법을 보여 줍니다.

AWS CLI

예 1: 버킷을 생성하는 방법

다음 create-bucket 예시에서는 my-bucket이라는 버킷을 생성합니다.

aws s3api create-bucket \ --bucket my-bucket \ --region us-east-1

출력:

{ "Location": "/my-bucket" }

자세한 내용은 Amazon S3 사용 설명서버킷 생성을 참조하세요.

예 2: 소유자가 적용된 버킷을 생성하는 방법

다음 create-bucket 예시에서는 S3 객체 소유권에 대해 버킷 소유자 적용 설정을 사용하는 이름이 my-bucket인 버킷을 생성합니다.

aws s3api create-bucket \ --bucket my-bucket \ --region us-east-1 \ --object-ownership BucketOwnerEnforced

출력:

{ "Location": "/my-bucket" }

자세한 내용은 Amazon S3 사용 설명서의 객체 소유권 제어 및 ACLs 비활성화를 참조하세요.

예 3: ``us-east-1`` 리전 외부에서 버킷을 생성하는 방법

다음 create-bucket 예시에서는 eu-west-1 리전에서 my-bucket이라는 버킷을 생성합니다. us-east-1 외부 리전의 경우 원하는 리전에 버킷을 생성하려면 적절한 LocationConstraint를 지정해야 합니다.

aws s3api create-bucket \ --bucket my-bucket \ --region eu-west-1 \ --create-bucket-configuration LocationConstraint=eu-west-1

출력:

{ "Location": "http://my-bucket.s3.amazonaws.com/" }

자세한 내용은 Amazon S3 사용 설명서버킷 생성을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조CreateBucket를 참조하세요.

다음 코드 예시에서는 create-multipart-upload을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 multipart/01 키를 사용하여 my-bucket 버킷에 멀티파트 업로드를 생성합니다.

aws s3api create-multipart-upload --bucket my-bucket --key 'multipart/01'

출력:

{ "Bucket": "my-bucket", "UploadId": "dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R", "Key": "multipart/01" }

완성된 파일은 이름이 01이며 my-bucket 버킷의 multipart 폴더에 있습니다. upload-part 명령과 함께 사용할 업로드 ID, 키, 버킷 이름을 저장합니다.

다음 코드 예시에서는 delete-bucket-analytics-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 분석 구성을 삭제하려면

다음 delete-bucket-analytics-configuration 예시는 지정된 버킷 및 ID에 대한 분석 구성을 제거합니다.

aws s3api delete-bucket-analytics-configuration \ --bucket my-bucket \ --id 1

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 delete-bucket-cors을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷에서 Cross-Origin Resource Sharing 구성을 삭제합니다.

aws s3api delete-bucket-cors --bucket my-bucket
  • API 세부 정보는 AWS CLI 명령 참조DeleteBucketCors를 참조하세요.

다음 코드 예시에서는 delete-bucket-encryption을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 서버 측 암호화 구성을 삭제하려면

다음 delete-bucket-encryption 예시는 지정된 버킷의 서버 측 암호화 구성을 삭제합니다.

aws s3api delete-bucket-encryption \ --bucket my-bucket

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 delete-bucket-intelligent-tiering-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷에서 S3 Intelligent-Tiering 구성을 제거하려면

다음 delete-bucket-intelligent-tiering-configuration 예제에서는 버킷에서 ExampleConfig라는 S3 Intelligent-Tiering 구성을 제거합니다.

aws s3api delete-bucket-intelligent-tiering-configuration \ --bucket DOC-EXAMPLE-BUCKET \ --id ExampleConfig

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 Amazon S3 사용 설명서의 S3 Intelligent-Tiering 사용을 참조하세요. Amazon S3

다음 코드 예시에서는 delete-bucket-inventory-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 인벤토리 구성을 삭제하려면

다음 delete-bucket-inventory-configuration 예시는 지정된 버킷에 대해 ID가 1인 인벤토리 구성을 삭제합니다.

aws s3api delete-bucket-inventory-configuration \ --bucket my-bucket \ --id 1

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 delete-bucket-lifecycle을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 my-bucket이라는 버킷에서 수명 주기 구성을 삭제합니다.

aws s3api delete-bucket-lifecycle --bucket my-bucket

다음 코드 예시에서는 delete-bucket-metrics-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 지표 구성을 삭제하려면

다음 delete-bucket-metrics-configuration 예시는 지정된 버킷 및 ID에 대한 지표 구성을 제거합니다.

aws s3api delete-bucket-metrics-configuration \ --bucket my-bucket \ --id 123

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 delete-bucket-ownership-controls을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 버킷 소유권 설정을 제거하려면

다음 delete-bucket-ownership-controls 예제에서는 버킷의 버킷 소유권 설정을 제거합니다.

aws s3api delete-bucket-ownership-controls \ --bucket DOC-EXAMPLE-BUCKET

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 Amazon S3 사용 설명서기존 버킷에 대한 객체 소유권 설정을 참조하세요.

다음 코드 예시에서는 delete-bucket-policy을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷에서 버킷 정책을 삭제합니다.

aws s3api delete-bucket-policy --bucket my-bucket

다음 코드 예시에서는 delete-bucket-replication을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 my-bucket이라는 버킷에서 복제 구성을 삭제합니다.

aws s3api delete-bucket-replication --bucket my-bucket

다음 코드 예시에서는 delete-bucket-tagging을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 my-bucket이라는 버킷에서 태그 지정 구성을 삭제합니다.

aws s3api delete-bucket-tagging --bucket my-bucket

다음 코드 예시에서는 delete-bucket-website을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 my-bucket이라는 버킷에서 웹 사이트 구성을 삭제합니다.

aws s3api delete-bucket-website --bucket my-bucket

다음 코드 예시에서는 delete-bucket을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷을 삭제합니다.

aws s3api delete-bucket --bucket my-bucket --region us-east-1
  • API 세부 정보는 AWS CLI 명령 참조DeleteBucket를 참조하세요.

다음 코드 예시에서는 delete-object-tagging을 사용하는 방법을 보여 줍니다.

AWS CLI

객체의 태그 세트를 삭제하려면

다음 delete-object-tagging 예시는 지정된 키가 있는 태그를 doc1.rtf 객체에서 삭제합니다.

aws s3api delete-object-tagging \ --bucket my-bucket \ --key doc1.rtf

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 delete-object을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷에서 test.txt라는 객체를 삭제합니다.

aws s3api delete-object --bucket my-bucket --key test.txt

버킷 버전 관리가 활성화된 경우 출력에는 삭제 마커의 버전 ID가 포함됩니다.

{ "VersionId": "9_gKg5vG56F.TTEUdwkxGpJ3tNDlWlGq", "DeleteMarker": true }

객체 삭제에 대한 자세한 내용은 Amazon S3 개발자 안내서의 객체 삭제를 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조DeleteObject를 참조하세요.

다음 코드 예시에서는 delete-objects을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷에서 객체를 삭제합니다.

aws s3api delete-objects --bucket my-bucket --delete file://delete.json

delete.json는 삭제할 객체를 지정하는 현재 디렉터리의 JSON 문서입니다.

{ "Objects": [ { "Key": "test1.txt" } ], "Quiet": false }

출력:

{ "Deleted": [ { "DeleteMarkerVersionId": "mYAT5Mc6F7aeUL8SS7FAAqUPO1koHwzU", "Key": "test1.txt", "DeleteMarker": true } ] }
  • API 세부 정보는 AWS CLI 명령 참조DeleteObjects를 참조하세요.

다음 코드 예시에서는 delete-public-access-block을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 퍼블릭 액세스 차단 구성을 삭제하려면

다음 delete-public-access-block 예시는 지정된 버킷에서 퍼블릭 액세스 차단 구성을 제거합니다.

aws s3api delete-public-access-block \ --bucket my-bucket

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 get-bucket-accelerate-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 가속화 구성을 검색하려면

다음 get-bucket-accelerate-configuration 예시는 지정된 버킷에 대한 가속 구성을 검색합니다.

aws s3api get-bucket-accelerate-configuration \ --bucket my-bucket

출력:

{ "Status": "Enabled" }

다음 코드 예시에서는 get-bucket-acl을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷의 액세스 제어 목록을 검색합니다.

aws s3api get-bucket-acl --bucket my-bucket

출력:

{ "Owner": { "DisplayName": "my-username", "ID": "7009a8971cd538e11f6b6606438875e7c86c5b672f46db45460ddcd087d36c32" }, "Grants": [ { "Grantee": { "DisplayName": "my-username", "ID": "7009a8971cd538e11f6b6606438875e7c86c5b672f46db45460ddcd087d36c32" }, "Permission": "FULL_CONTROL" } ] }
  • API 세부 정보는 AWS CLI 명령 참조GetBucketAcl를 참조하세요.

다음 코드 예시에서는 get-bucket-analytics-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

특정 ID를 가진 버킷의 분석 구성을 검색하려면

다음 get-bucket-analytics-configuration 예시는 지정된 버킷 및 ID에 대한 분석 구성을 표시합니다.

aws s3api get-bucket-analytics-configuration \ --bucket my-bucket \ --id 1

출력:

{ "AnalyticsConfiguration": { "StorageClassAnalysis": {}, "Id": "1" } }

다음 코드 예시에서는 get-bucket-cors을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷에 대한 Cross-Origin Resource Sharing 구성을 검색합니다.

aws s3api get-bucket-cors --bucket my-bucket

출력:

{ "CORSRules": [ { "AllowedHeaders": [ "*" ], "ExposeHeaders": [ "x-amz-server-side-encryption" ], "AllowedMethods": [ "PUT", "POST", "DELETE" ], "MaxAgeSeconds": 3000, "AllowedOrigins": [ "http://www.example.com" ] }, { "AllowedHeaders": [ "Authorization" ], "MaxAgeSeconds": 3000, "AllowedMethods": [ "GET" ], "AllowedOrigins": [ "*" ] } ] }
  • API 세부 정보는 AWS CLI 명령 참조GetBucketCors를 참조하세요.

다음 코드 예시에서는 get-bucket-encryption을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 서버 측 암호화 구성을 검색하려면

다음 get-bucket-encryption 예시는 my-bucket 버킷의 서버 측 암호화 구성을 검색합니다.

aws s3api get-bucket-encryption \ --bucket my-bucket

출력:

{ "ServerSideEncryptionConfiguration": { "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" } } ] } }

다음 코드 예시에서는 get-bucket-intelligent-tiering-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷에서 S3 Intelligent-Tiering 구성을 검색하려면

다음 get-bucket-intelligent-tiering-configuration 예제는 버킷에서 ExampleConfig라는 S3 Intelligent-Tiering 구성을 검색합니다.

aws s3api get-bucket-intelligent-tiering-configuration \ --bucket DOC-EXAMPLE-BUCKET \ --id ExampleConfig

출력:

{ "IntelligentTieringConfiguration": { "Id": "ExampleConfig2", "Filter": { "Prefix": "images" }, "Status": "Enabled", "Tierings": [ { "Days": 90, "AccessTier": "ARCHIVE_ACCESS" }, { "Days": 180, "AccessTier": "DEEP_ARCHIVE_ACCESS" } ] } }

자세한 내용은 Amazon S3 사용 설명서의 S3 Intelligent-Tiering 사용을 참조하세요. Amazon S3

다음 코드 예시에서는 get-bucket-inventory-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 인벤토리 구성을 검색하려면

다음 get-bucket-inventory-configuration 예시는 지정된 버킷에 대해 ID가 1인 인벤토리 구성을 검색합니다.

aws s3api get-bucket-inventory-configuration \ --bucket my-bucket \ --id 1

출력:

{ "InventoryConfiguration": { "IsEnabled": true, "Destination": { "S3BucketDestination": { "Format": "ORC", "Bucket": "arn:aws:s3:::my-bucket", "AccountId": "123456789012" } }, "IncludedObjectVersions": "Current", "Id": "1", "Schedule": { "Frequency": "Weekly" } } }

다음 코드 예시에서는 get-bucket-lifecycle-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷의 수명 주기 구성을 검색합니다.

aws s3api get-bucket-lifecycle-configuration --bucket my-bucket

출력:

{ "Rules": [ { "ID": "Move rotated logs to Glacier", "Prefix": "rotated/", "Status": "Enabled", "Transitions": [ { "Date": "2015-11-10T00:00:00.000Z", "StorageClass": "GLACIER" } ] }, { "Status": "Enabled", "Prefix": "", "NoncurrentVersionTransitions": [ { "NoncurrentDays": 0, "StorageClass": "GLACIER" } ], "ID": "Move old versions to Glacier" } ] }

다음 코드 예시에서는 get-bucket-lifecycle을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷의 수명 주기 구성을 검색합니다.

aws s3api get-bucket-lifecycle --bucket my-bucket

출력:

{ "Rules": [ { "ID": "Move to Glacier after sixty days (objects in logs/2015/)", "Prefix": "logs/2015/", "Status": "Enabled", "Transition": { "Days": 60, "StorageClass": "GLACIER" } }, { "Expiration": { "Date": "2016-01-01T00:00:00.000Z" }, "ID": "Delete 2014 logs in 2016.", "Prefix": "logs/2014/", "Status": "Enabled" } ] }

다음 코드 예시에서는 get-bucket-location을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷의 위치 제약 조건을 검색합니다(제약 조건이 있는 경우).

aws s3api get-bucket-location --bucket my-bucket

출력:

{ "LocationConstraint": "us-west-2" }
  • API 세부 정보는 AWS CLI 명령 참조GetBucketLocation를 참조하세요.

다음 코드 예시에서는 get-bucket-logging을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 로깅 상태를 검색하려면

다음 get-bucket-logging 예시는 지정된 버킷의 로깅 상태를 검색합니다.

aws s3api get-bucket-logging \ --bucket my-bucket

출력:

{ "LoggingEnabled": { "TargetPrefix": "", "TargetBucket": "my-bucket-logs" } }
  • API 세부 정보는 AWS CLI 명령 참조GetBucketLogging를 참조하세요.

다음 코드 예시에서는 get-bucket-metrics-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

특정 ID를 가진 버킷의 지표 구성을 검색하려면

다음 get-bucket-metrics-configuration 예시는 지정된 버킷 및 ID에 대한 지표 구성을 표시합니다.

aws s3api get-bucket-metrics-configuration \ --bucket my-bucket \ --id 123

출력:

{ "MetricsConfiguration": { "Filter": { "Prefix": "logs" }, "Id": "123" } }

다음 코드 예시에서는 get-bucket-notification-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷의 알림 구성을 검색합니다.

aws s3api get-bucket-notification-configuration --bucket my-bucket

출력:

{ "TopicConfigurations": [ { "Id": "YmQzMmEwM2EjZWVlI0NGItNzVtZjI1MC00ZjgyLWZDBiZWNl", "TopicArn": "arn:aws:sns:us-west-2:123456789012:my-notification-topic", "Events": [ "s3:ObjectCreated:*" ] } ] }

다음 코드 예시에서는 get-bucket-notification을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷의 알림 구성을 검색합니다.

aws s3api get-bucket-notification --bucket my-bucket

출력:

{ "TopicConfiguration": { "Topic": "arn:aws:sns:us-west-2:123456789012:my-notification-topic", "Id": "YmQzMmEwM2EjZWVlI0NGItNzVtZjI1MC00ZjgyLWZDBiZWNl", "Event": "s3:ObjectCreated:*", "Events": [ "s3:ObjectCreated:*" ] } }

다음 코드 예시에서는 get-bucket-ownership-controls을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 버킷 소유권 설정을 검색하려면

다음 get-bucket-ownership-controls 예제에서는 버킷의 버킷 소유권 설정을 검색합니다.

aws s3api get-bucket-ownership-controls \ --bucket DOC-EXAMPLE-BUCKET

출력:

{ "OwnershipControls": { "Rules": [ { "ObjectOwnership": "BucketOwnerEnforced" } ] } }

자세한 내용은 Amazon S3 사용 설명서의 S3 버킷에 대한 객체 소유권 설정 보기를 참조하세요. Amazon S3

다음 코드 예시에서는 get-bucket-policy-status을 사용하는 방법을 보여 줍니다.

AWS CLI

특정 버킷이 퍼블릭인지 나타내는 버킷 정책 상태를 검색하려면

다음 get-bucket-policy-status 예시는 my-bucket 버킷의 정책 상태를 검색합니다.

aws s3api get-bucket-policy-status \ --bucket my-bucket

출력:

{ "PolicyStatus": { "IsPublic": false } }

다음 코드 예시에서는 get-bucket-policy을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷의 버킷 정책을 검색합니다.

aws s3api get-bucket-policy --bucket my-bucket

출력:

{ "Policy": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:::my-bucket/*\"},{\"Sid\":\"\",\"Effect\":\"Deny\",\"Principal\":\"*\",\"Action\":\"s3:GetObject\",\"Resource\":\"arn:aws:s3:::my-bucket/secret/*\"}]}" }

policyThe 다음 예제에서는 버킷 가져오기 및 배치를 통해 Amazon S3 버킷 정책을 다운로드하고, 파일을 수정한 다음 put-bucket-policy를 사용하여 수정된 버킷 정책을 적용하는 방법을 보여줍니다. 버킷 정책을 파일로 다운로드하려면 다음을 실행할 수 있습니다.

aws s3api get-bucket-policy --bucket mybucket --query Policy --output text > policy.json

그런 다음 필요에 따라 policy.json 파일을 수정할 수 있습니다. 마지막으로 필요에 따라

policy.json 파일을 실행하여 수정된 정책을 S3 버킷에 다시 적용할 수 있습니다. 마지막으로 필요에 따라

파일을 실행하여 수정된 정책을 S3 버킷에 다시 적용할 수 있습니다. 마지막으로 필요에 따라 다음을 실행하여 수정된 정책을 S3 버킷에 다시 적용할 수 있습니다.

aws s3api put-bucket-policy --bucket mybucket --policy file://policy.json
  • API 세부 정보는 AWS CLI 명령 참조GetBucketPolicy를 참조하세요.

다음 코드 예시에서는 get-bucket-replication을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷의 복제 구성을 검색합니다.

aws s3api get-bucket-replication --bucket my-bucket

출력:

{ "ReplicationConfiguration": { "Rules": [ { "Status": "Enabled", "Prefix": "", "Destination": { "Bucket": "arn:aws:s3:::my-bucket-backup", "StorageClass": "STANDARD" }, "ID": "ZmUwNzE4ZmQ4tMjVhOS00MTlkLOGI4NDkzZTIWJjNTUtYTA1" } ], "Role": "arn:aws:iam::123456789012:role/s3-replication-role" } }

다음 코드 예시에서는 get-bucket-request-payment을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 지불 요청 구성을 검색하려면

다음 get-bucket-request-payment 예시는 지정된 버킷에 대한 요청자 지불 구성을 검색합니다.

aws s3api get-bucket-request-payment \ --bucket my-bucket

출력:

{ "Payer": "BucketOwner" }

다음 코드 예시에서는 get-bucket-tagging을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷에 대한 태그 지정 구성을 검색합니다.

aws s3api get-bucket-tagging --bucket my-bucket

출력:

{ "TagSet": [ { "Value": "marketing", "Key": "organization" } ] }
  • API 세부 정보는 AWS CLI 명령 참조GetBucketTagging를 참조하세요.

다음 코드 예시에서는 get-bucket-versioning을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷에 대한 버전 관리 구성을 검색합니다.

aws s3api get-bucket-versioning --bucket my-bucket

출력:

{ "Status": "Enabled" }

다음 코드 예시에서는 get-bucket-website을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷의 정적 웹 사이트 구성을 검색합니다.

aws s3api get-bucket-website --bucket my-bucket

출력:

{ "IndexDocument": { "Suffix": "index.html" }, "ErrorDocument": { "Key": "error.html" } }
  • API 세부 정보는 AWS CLI 명령 참조GetBucketWebsite를 참조하세요.

다음 코드 예시에서는 get-object-acl을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷의 객체에 대한 액세스 제어 목록을 검색합니다.

aws s3api get-object-acl --bucket my-bucket --key index.html

출력:

{ "Owner": { "DisplayName": "my-username", "ID": "7009a8971cd538e11f6b6606438875e7c86c5b672f46db45460ddcd087d36c32" }, "Grants": [ { "Grantee": { "DisplayName": "my-username", "ID": "7009a8971cd538e11f6b6606438875e7c86c5b672f46db45460ddcd087d36c32" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "URI": "http://acs.amazonaws.com/groups/global/AllUsers" }, "Permission": "READ" } ] }
  • API 세부 정보는 AWS CLI 명령 참조GetObjectAcl를 참조하세요.

다음 코드 예시에서는 get-object-attributes을 사용하는 방법을 보여 줍니다.

AWS CLI

객체 자체를 반환하지 않고 객체에서 메타데이터를 검색하려면

다음 get-object-attributes 예시에서는 doc1.rtf 객체에서 메타데이터를 검색합니다.

aws s3api get-object-attributes \ --bucket my-bucket \ --key doc1.rtf \ --object-attributes "StorageClass" "ETag" "ObjectSize"

출력:

{ "LastModified": "2022-03-15T19:37:31+00:00", "VersionId": "IuCPjXTDzHNfldAuitVBIKJpF2p1fg4P", "ETag": "b662d79adeb7c8d787ea7eafb9ef6207", "StorageClass": "STANDARD", "ObjectSize": 405 }

자세한 내용은 Amazon S3 GetObjectAttributes 참조의 API를 참조하세요.

다음 코드 예시에서는 get-object-legal-hold을 사용하는 방법을 보여 줍니다.

AWS CLI

객체의 법적 보류 상태 검색

다음 get-object-legal-hold 예시는 지정된 객체의 법적 보류 상태를 검색합니다.

aws s3api get-object-legal-hold \ --bucket my-bucket-with-object-lock \ --key doc1.rtf

출력:

{ "LegalHold": { "Status": "ON" } }

다음 코드 예시에서는 get-object-lock-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 객체 잠금 구성을 검색하는 방법

다음 get-object-lock-configuration 예시에서는 지정된 버킷에 대한 객체 잠금 구성을 검색합니다.

aws s3api get-object-lock-configuration \ --bucket my-bucket-with-object-lock

출력:

{ "ObjectLockConfiguration": { "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 50 } } } }

다음 코드 예시에서는 get-object-retention을 사용하는 방법을 보여 줍니다.

AWS CLI

객체의 객체 보존 구성을 검색하는 방법

다음 get-object-retention 예시에서는 지정된 객체에 대한 보존 구성을 검색합니다.

aws s3api get-object-retention \ --bucket my-bucket-with-object-lock \ --key doc1.rtf

출력:

{ "Retention": { "Mode": "GOVERNANCE", "RetainUntilDate": "2025-01-01T00:00:00.000Z" } }

다음 코드 예시에서는 get-object-tagging을 사용하는 방법을 보여 줍니다.

AWS CLI

객체에 연결된 태그를 검색하려면

다음 get-object-tagging 예시는 지정된 객체에서 지정된 키의 값을 검색합니다.

aws s3api get-object-tagging \ --bucket my-bucket \ --key doc1.rtf

출력:

{ "TagSet": [ { "Value": "confidential", "Key": "designation" } ] }

다음 get-object-tagging 예시는 태그가 없는 doc2.rtf 객체의 태그 세트를 검색하려고 시도합니다.

aws s3api get-object-tagging \ --bucket my-bucket \ --key doc2.rtf

출력:

{ "TagSet": [] }

다음 get-object-tagging 예시는 태그가 여러 개 있는 doc3.rtf 객체의 태그 세트를 검색합니다.

aws s3api get-object-tagging \ --bucket my-bucket \ --key doc3.rtf

출력:

{ "TagSet": [ { "Value": "confidential", "Key": "designation" }, { "Value": "finance", "Key": "department" }, { "Value": "payroll", "Key": "team" } ] }
  • API 세부 정보는 AWS CLI 명령 참조GetObjectTagging를 참조하세요.

다음 코드 예시에서는 get-object-torrent을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 라는 버킷에 객체에 대한 토런트를 생성합니다my-bucket.

aws s3api get-object-torrent --bucket my-bucket --key large-video-file.mp4 large-video-file.torrent

토렌트 파일은 현재 폴더에 로컬로 저장됩니다. 출력 파일 이름(large-video-file.torrent)은 옵션 이름 없이 지정되며 명령의 마지막 인수여야 합니다.

  • API 세부 정보는 AWS CLI 명령 참조GetObjectTorrent를 참조하세요.

다음 코드 예시에서는 get-object을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 예시에서는 get-object 명령을 사용하여 Amazon S3에서 객체를 다운로드합니다.

aws s3api get-object --bucket text-content --key dir/my_images.tar.bz2 my_images.tar.bz2

참고로 outfile 파라미터는 “--outfile”과 같은 옵션 이름 없이 지정됩니다. 출력 파일의 이름은 명령의 마지막 파라미터여야 합니다.

아래 예시에서는 --range를 사용하여 객체에서 특정 바이트 범위를 다운로드하는 방법을 보여줍니다. 참고로 바이트 범위에는 “bytes=”라는 접두사가 있어야 합니다.

aws s3api get-object --bucket text-content --key dir/my_data --range bytes=8888-9999 my_data_range

객체 검색에 대한 자세한 내용은 Amazon S3 개발자 안내서의 객체 가져오기를 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조GetObject를 참조하세요.

다음 코드 예시에서는 get-public-access-block을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 퍼블릭 액세스 차단 구성을 설정하거나 수정하려면

다음 get-public-access-block 예시는 지정된 버킷에 대한 퍼블릭 액세스 차단 구성을 표시합니다.

aws s3api get-public-access-block \ --bucket my-bucket

출력:

{ "PublicAccessBlockConfiguration": { "IgnorePublicAcls": true, "BlockPublicPolicy": true, "BlockPublicAcls": true, "RestrictPublicBuckets": true } }

다음 코드 예시에서는 head-bucket을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 my-bucket이라는 버킷에 대한 액세스를 확인합니다.

aws s3api head-bucket --bucket my-bucket

버킷이 존재하고 버킷에 대한 액세스 권한이 있는 경우 출력이 반환되지 않습니다. 그렇지 않으면 오류 메시지가 표시됩니다. 예:

A client error (404) occurred when calling the HeadBucket operation: Not Found
  • API 세부 정보는 AWS CLI 명령 참조HeadBucket를 참조하세요.

다음 코드 예시에서는 head-object을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 my-bucket이라는 버킷의 객체에 대한 메타데이터를 검색합니다.

aws s3api head-object --bucket my-bucket --key index.html

출력:

{ "AcceptRanges": "bytes", "ContentType": "text/html", "LastModified": "Thu, 16 Apr 2015 18:19:14 GMT", "ContentLength": 77, "VersionId": "null", "ETag": "\"30a6ec7e1a9ad79c203d05a589c8b400\"", "Metadata": {} }
  • API 세부 정보는 AWS CLI 명령 참조HeadObject를 참조하세요.

다음 코드 예시에서는 list-bucket-analytics-configurations을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 분석 구성 목록을 검색하려면

다음 list-bucket-analytics-configurations는 지정된 버킷에 대한 분석 구성 목록을 검색합니다.

aws s3api list-bucket-analytics-configurations \ --bucket my-bucket

출력:

{ "AnalyticsConfigurationList": [ { "StorageClassAnalysis": {}, "Id": "1" } ], "IsTruncated": false }

다음 코드 예시에서는 list-bucket-intelligent-tiering-configurations을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷에서 모든 S3 Intelligent-Tiering 구성을 검색하려면

다음 list-bucket-intelligent-tiering-configurations 예제에서는 버킷의 모든 S3 Intelligent-Tiering 구성을 검색합니다.

aws s3api list-bucket-intelligent-tiering-configurations \ --bucket DOC-EXAMPLE-BUCKET

출력:

{ "IsTruncated": false, "IntelligentTieringConfigurationList": [ { "Id": "ExampleConfig", "Filter": { "Prefix": "images" }, "Status": "Enabled", "Tierings": [ { "Days": 90, "AccessTier": "ARCHIVE_ACCESS" }, { "Days": 180, "AccessTier": "DEEP_ARCHIVE_ACCESS" } ] }, { "Id": "ExampleConfig2", "Status": "Disabled", "Tierings": [ { "Days": 730, "AccessTier": "ARCHIVE_ACCESS" } ] }, { "Id": "ExampleConfig3", "Filter": { "Tag": { "Key": "documents", "Value": "taxes" } }, "Status": "Enabled", "Tierings": [ { "Days": 90, "AccessTier": "ARCHIVE_ACCESS" }, { "Days": 365, "AccessTier": "DEEP_ARCHIVE_ACCESS" } ] } ] }

자세한 내용은 Amazon S3 사용 설명서의 S3 Intelligent-Tiering 사용을 참조하세요. Amazon S3

다음 코드 예시에서는 list-bucket-inventory-configurations을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 인벤토리 구성을 검색하려면

다음 list-bucket-inventory-configurations 예시는 지정된 버킷의 인벤토리 구성을 나열합니다.

aws s3api list-bucket-inventory-configurations \ --bucket my-bucket

출력:

{ "InventoryConfigurationList": [ { "IsEnabled": true, "Destination": { "S3BucketDestination": { "Format": "ORC", "Bucket": "arn:aws:s3:::my-bucket", "AccountId": "123456789012" } }, "IncludedObjectVersions": "Current", "Id": "1", "Schedule": { "Frequency": "Weekly" } }, { "IsEnabled": true, "Destination": { "S3BucketDestination": { "Format": "CSV", "Bucket": "arn:aws:s3:::my-bucket", "AccountId": "123456789012" } }, "IncludedObjectVersions": "Current", "Id": "2", "Schedule": { "Frequency": "Daily" } } ], "IsTruncated": false }

다음 코드 예시에서는 list-bucket-metrics-configurations을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 지표 구성 목록을 검색하려면

다음 list-bucket-metrics-configurations 예제에서는 지정된 버킷에 대한 지표 구성 목록을 검색합니다.

aws s3api list-bucket-metrics-configurations \ --bucket my-bucket

출력:

{ "IsTruncated": false, "MetricsConfigurationList": [ { "Filter": { "Prefix": "logs" }, "Id": "123" }, { "Filter": { "Prefix": "tmp" }, "Id": "234" } ] }

다음 코드 예시에서는 list-buckets을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 list-buckets 명령을 사용하여 모든 Amazon S3 버킷(모든 리전)의 이름을 표시합니다.

aws s3api list-buckets --query "Buckets[].Name"

쿼리 옵션은 list-buckets의 출력을 버킷 이름으로만 필터링합니다.

버킷에 대한 자세한 내용은 Amazon S3 개발자 안내서의 Amazon S3 버킷 작업을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조ListBuckets를 참조하세요.

다음 코드 예시에서는 list-multipart-uploads을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷의 활성 멀티파트 업로드를 모두 나열합니다.

aws s3api list-multipart-uploads --bucket my-bucket

출력:

{ "Uploads": [ { "Initiator": { "DisplayName": "username", "ID": "arn:aws:iam::0123456789012:user/username" }, "Initiated": "2015-06-02T18:01:30.000Z", "UploadId": "dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R", "StorageClass": "STANDARD", "Key": "multipart/01", "Owner": { "DisplayName": "aws-account-name", "ID": "100719349fc3b6dcd7c820a124bf7aecd408092c3d7b51b38494939801fc248b" } } ], "CommonPrefixes": [] }

진행 중인 멀티파트 업로드는 Amazon S3에서 스토리지 비용을 발생시킵니다. 활성 멀티파트 업로드를 완료하거나 중단하여 계정에서 해당 파트를 제거하세요.

다음 코드 예시에서는 list-object-versions을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷의 객체의 버전 정보를 검색합니다.

aws s3api list-object-versions --bucket my-bucket --prefix index.html

출력:

{ "DeleteMarkers": [ { "Owner": { "DisplayName": "my-username", "ID": "7009a8971cd660687538875e7c86c5b672fe116bd438f46db45460ddcd036c32" }, "IsLatest": true, "VersionId": "B2VsEK5saUNNHKcOAJj7hIE86RozToyq", "Key": "index.html", "LastModified": "2015-11-10T00:57:03.000Z" }, { "Owner": { "DisplayName": "my-username", "ID": "7009a8971cd660687538875e7c86c5b672fe116bd438f46db45460ddcd036c32" }, "IsLatest": false, "VersionId": ".FLQEZscLIcfxSq.jsFJ.szUkmng2Yw6", "Key": "index.html", "LastModified": "2015-11-09T23:32:20.000Z" } ], "Versions": [ { "LastModified": "2015-11-10T00:20:11.000Z", "VersionId": "Rb_l2T8UHDkFEwCgJjhlgPOZC0qJ.vpD", "ETag": "\"0622528de826c0df5db1258a23b80be5\"", "StorageClass": "STANDARD", "Key": "index.html", "Owner": { "DisplayName": "my-username", "ID": "7009a8971cd660687538875e7c86c5b672fe116bd438f46db45460ddcd036c32" }, "IsLatest": false, "Size": 38 }, { "LastModified": "2015-11-09T23:26:41.000Z", "VersionId": "rasWWGpgk9E4s0LyTJgusGeRQKLVIAFf", "ETag": "\"06225825b8028de826c0df5db1a23be5\"", "StorageClass": "STANDARD", "Key": "index.html", "Owner": { "DisplayName": "my-username", "ID": "7009a8971cd660687538875e7c86c5b672fe116bd438f46db45460ddcd036c32" }, "IsLatest": false, "Size": 38 }, { "LastModified": "2015-11-09T22:50:50.000Z", "VersionId": "null", "ETag": "\"d1f45267a863c8392e07d24dd592f1b9\"", "StorageClass": "STANDARD", "Key": "index.html", "Owner": { "DisplayName": "my-username", "ID": "7009a8971cd660687538875e7c86c5b672fe116bd438f46db45460ddcd036c32" }, "IsLatest": false, "Size": 533823 } ] }

다음 코드 예시에서는 list-objects-v2을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 객체 목록을 보려면

다음 list-objects-v2 예시는 지정된 버킷의 객체를 나열합니다.

aws s3api list-objects-v2 \ --bucket my-bucket

출력:

{ "Contents": [ { "LastModified": "2019-11-05T23:11:50.000Z", "ETag": "\"621503c373607d548b37cff8778d992c\"", "StorageClass": "STANDARD", "Key": "doc1.rtf", "Size": 391 }, { "LastModified": "2019-11-05T23:11:50.000Z", "ETag": "\"a2cecc36ab7c7fe3a71a273b9d45b1b5\"", "StorageClass": "STANDARD", "Key": "doc2.rtf", "Size": 373 }, { "LastModified": "2019-11-05T23:11:50.000Z", "ETag": "\"08210852f65a2e9cb999972539a64d68\"", "StorageClass": "STANDARD", "Key": "doc3.rtf", "Size": 399 }, { "LastModified": "2019-11-05T23:11:50.000Z", "ETag": "\"d1852dd683f404306569471af106988e\"", "StorageClass": "STANDARD", "Key": "doc4.rtf", "Size": 6225 } ] }
  • API 세부 정보는 AWS CLI 명령 참조ListObjectsV2를 참조하세요.

다음 코드 예시에서는 list-objects을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 예시에서는 list-objects 명령을 사용하여 지정된 버킷에 있는 모든 객체의 이름을 표시합니다.

aws s3api list-objects --bucket text-content --query 'Contents[].{Key: Key, Size: Size}'

이 예시에서는 --query 인수를 사용하여 list-objects의 출력을 각 객체의 키 값 및 크기로 필터링합니다.

객체에 대한 자세한 내용은 Amazon S3 개발자 안내서의 Amazon S3 객체 작업을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조ListObjects를 참조하세요.

다음 코드 예시에서는 list-parts을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 버킷에 키를 사용하여 멀티파트 업로드에 대해 업로드된 모든 부분을 나열multipart/01합니다my-bucket.

aws s3api list-parts --bucket my-bucket --key 'multipart/01' --upload-id dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R

출력:

{ "Owner": { "DisplayName": "aws-account-name", "ID": "100719349fc3b6dcd7c820a124bf7aecd408092c3d7b51b38494939801fc248b" }, "Initiator": { "DisplayName": "username", "ID": "arn:aws:iam::0123456789012:user/username" }, "Parts": [ { "LastModified": "2015-06-02T18:07:35.000Z", "PartNumber": 1, "ETag": "\"e868e0f4719e394144ef36531ee6824c\"", "Size": 5242880 }, { "LastModified": "2015-06-02T18:07:42.000Z", "PartNumber": 2, "ETag": "\"6bb2b12753d66fe86da4998aa33fffb0\"", "Size": 5242880 }, { "LastModified": "2015-06-02T18:07:47.000Z", "PartNumber": 3, "ETag": "\"d0a0112e841abec9c9ec83406f0159c8\"", "Size": 5242880 } ], "StorageClass": "STANDARD" }
  • API 세부 정보는 AWS CLI 명령 참조ListParts를 참조하세요.

다음 코드 예시에서는 ls을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: 사용자 소유 버킷 모두 나열

다음 ls 명령은 사용자가 소유한 모든 버킷을 나열합니다. 이 예제에서는 사용자가 버킷 mybucket 및를 소유합니다mybucket2. 타임스탬프는 버킷이 생성된 날짜로, 기계의 시간대에 표시됩니다. 버킷 정책 편집과 같이 버킷을 변경할 때이 날짜가 변경될 수 있습니다. s3://가 경로 인수에 사용되는 경우 모든 버킷도 나열<S3Uri>됩니다.

aws s3 ls

출력:

2013-07-11 17:08:50 mybucket 2013-07-24 14:55:44 mybucket2

예제 2: 버킷의 모든 접두사 및 객체 나열

다음 ls 명령은 지정된 버킷 및 접두사 아래에 객체와 공통 접두사를 나열합니다. 이 예제에서는 사용자가 객체 test.txtmybucket로 버킷을 소유합니다somePrefix/test.txt. LastWriteTimeLength는 임의입니다. ls 명령은 로컬 파일 시스템과 상호 작용하지 않으므로 모호성을 해결하는 데 s3:// URI 체계가 필요하지 않으며 생략될 수 있습니다.

aws s3 ls s3://mybucket

출력:

PRE somePrefix/ 2013-07-25 17:06:27 88 test.txt

예제 3: 특정 버킷 및 접두사에 있는 모든 접두사 및 객체 나열

다음 ls 명령은 지정된 버킷 및 접두사 아래에 객체와 공통 접두사를 나열합니다. 그러나 지정된 버킷 및 접두사 아래에는 객체나 공통 접두사가 없습니다.

aws s3 ls s3://mybucket/noExistPrefix

출력:

None

예제 4: 버킷의 모든 접두사 및 객체를 반복적으로 나열

다음 ls 명령은 버킷의 객체를 재귀적으로 나열합니다. 출력PRE dirname/에 표시하는 대신 버킷의 모든 콘텐츠가 순서대로 나열됩니다.

aws s3 ls s3://mybucket \ --recursive

출력:

2013-09-02 21:37:53 10 a.txt 2013-09-02 21:37:53 2863288 foo.zip 2013-09-02 21:32:57 23 foo/bar/.baz/a 2013-09-02 21:32:58 41 foo/bar/.baz/b 2013-09-02 21:32:57 281 foo/bar/.baz/c 2013-09-02 21:32:57 73 foo/bar/.baz/d 2013-09-02 21:32:57 452 foo/bar/.baz/e 2013-09-02 21:32:57 896 foo/bar/.baz/hooks/bar 2013-09-02 21:32:57 189 foo/bar/.baz/hooks/foo 2013-09-02 21:32:57 398 z.txt

예제 5: 버킷의 모든 접두사 및 객체 요약

다음 ls 명령은 --human-readable and --summarize 옵션을 사용하여 동일한 명령을 보여줍니다. --human-readable은 Bytes/MiB/KiB/GiB/TiB/PiB/EiB로 파일 크기를 표시합니다. --summarize는 결과 목록 끝에 총 객체 수와 총 크기를 표시합니다.

aws s3 ls s3://mybucket \ --recursive \ --human-readable \ --summarize

출력:

2013-09-02 21:37:53 10 Bytes a.txt 2013-09-02 21:37:53 2.9 MiB foo.zip 2013-09-02 21:32:57 23 Bytes foo/bar/.baz/a 2013-09-02 21:32:58 41 Bytes foo/bar/.baz/b 2013-09-02 21:32:57 281 Bytes foo/bar/.baz/c 2013-09-02 21:32:57 73 Bytes foo/bar/.baz/d 2013-09-02 21:32:57 452 Bytes foo/bar/.baz/e 2013-09-02 21:32:57 896 Bytes foo/bar/.baz/hooks/bar 2013-09-02 21:32:57 189 Bytes foo/bar/.baz/hooks/foo 2013-09-02 21:32:57 398 Bytes z.txt Total Objects: 10 Total Size: 2.9 MiB

예제 6: S3 액세스 포인트에서 나열

다음 ls 명령은 액세스 포인트의 객체를 나열합니다(myaccesspoint).

aws s3 ls s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/

출력:

PRE somePrefix/ 2013-07-25 17:06:27 88 test.txt
  • API 세부 정보는 AWS CLI 명령 참조Ls를 참조하세요.

다음 코드 예시에서는 mb을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: 버킷 생성

다음 mb 명령은 버킷을 생성합니다. 이 예제에서는 사용자가 버킷을 만듭니다mybucket. 버킷은 사용자의 구성 파일에 지정된 리전에 생성됩니다.

aws s3 mb s3://mybucket

출력:

make_bucket: s3://mybucket

예제 2: 지정된 리전에서 버킷 생성

다음 mb 명령은 --region 파라미터에 의해 지정된 리전에 버킷을 생성합니다. 이 예제에서 사용자는 리전 mybucket에서 버킷을 만듭니다us-west-1.

aws s3 mb s3://mybucket \ --region us-west-1

출력:

make_bucket: s3://mybucket
  • API 세부 정보는 AWS CLI 명령 참조Mb를 참조하세요.

다음 코드 예시에서는 mv을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: 로컬 파일을 지정된 버킷으로 이동

다음 mv 명령은 단일 파일을 지정된 버킷 및 키로 이동합니다.

aws s3 mv test.txt s3://mybucket/test2.txt

출력:

move: test.txt to s3://mybucket/test2.txt

예제 2: 객체를 지정된 버킷 및 키로 이동

다음 mv 명령은 단일 s3 객체를 지정된 버킷 및 키로 이동합니다.

aws s3 mv s3://mybucket/test.txt s3://mybucket/test2.txt

출력:

move: s3://mybucket/test.txt to s3://mybucket/test2.txt

예제 3: S3 객체를 로컬 디렉터리로 이동

다음 mv 명령은 단일 객체를 지정된 파일로 로컬로 이동합니다.

aws s3 mv s3://mybucket/test.txt test2.txt

출력:

move: s3://mybucket/test.txt to test2.txt

예제 4: 원래 이름이 인 객체를 지정된 버킷으로 이동

다음 mv 명령은 원래 이름을 유지하면서 단일 객체를 지정된 버킷으로 이동합니다.

aws s3 mv s3://mybucket/test.txt s3://mybucket2/

출력:

move: s3://mybucket/test.txt to s3://mybucket2/test.txt

예제 5: 버킷의 모든 객체 및 접두사를 로컬 디렉터리로 이동

파라미터와 함께 전달되면 다음 mv 명령--recursive은 지정된 접두사 및 버킷 아래의 모든 객체를 지정된 디렉터리로 재귀적으로 이동합니다. 이 예제에서는 버킷에 객체 test1.txtmybucket가 있습니다test2.txt.

aws s3 mv s3://mybucket . \ --recursive

출력:

move: s3://mybucket/test1.txt to test1.txt move: s3://mybucket/test2.txt to test2.txt

예제 6: ``.jpg`` 파일을 제외한 버킷의 모든 객체 및 접두사를 로컬 디렉터리로 이동

파라미터와 함께 전달되면 --recursive다음 mv 명령은 지정된 디렉터리의 모든 파일을 --exclude 파라미터를 사용하여 일부 파일을 제외하면서 지정된 버킷 및 접두사로 재귀적으로 이동합니다. 이 예제에서는 디렉터리에 test1.txt 및 파일이 myDir 있습니다test2.jpg.

aws s3 mv myDir s3://mybucket/ \ --recursive \ --exclude "*.jpg"

출력:

move: myDir/test1.txt to s3://mybucket2/test1.txt

예제 7: 지정된 접두사를 제외한 버킷의 모든 객체 및 접두사를 로컬 디렉터리로 이동

파라미터와 함께 전달되면 --recursive다음 mv 명령은 --exclude 파라미터를 사용하여 일부 객체를 제외하면서 지정된 버킷 아래의 모든 객체를 다른 버킷으로 재귀적으로 이동합니다. 이 예제에서는 버킷에 객체 test1.txtmybucket가 있습니다another/test1.txt.

aws s3 mv s3://mybucket/ s3://mybucket2/ \ --recursive \ --exclude "mybucket/another/*"

출력:

move: s3://mybucket/test1.txt to s3://mybucket2/test1.txt

예제 8: 객체를 지정된 버킷으로 이동하고 ACL 설정

다음 mv 명령은 ACL를 로 설정하는 동안 단일 객체를 지정된 버킷 및 키로 이동합니다public-read-write.

aws s3 mv s3://mybucket/test.txt s3://mybucket/test2.txt \ --acl public-read-write

출력:

move: s3://mybucket/test.txt to s3://mybucket/test2.txt

예제 9: 로컬 파일을 지정된 버킷으로 이동하고 권한 부여

다음 mv 명령은 --grants 옵션을 사용하여 모든 사용자에게 읽기 액세스 권한을 부여하고 이메일 주소로 식별되는 특정 사용자에게 전체 제어 권한을 부여하는 방법을 보여줍니다.

aws s3 mv file.txt s3://mybucket/ \ --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers full=emailaddress=user@example.com

출력:

move: file.txt to s3://mybucket/file.txt

예제 10: S3 액세스 포인트로 파일 이동

다음 mv 명령은 라는 이름의 단일 파일을 라는 이름의 키myaccesspoint에 라는 액세스 포인트mydoc.txt로 이동합니다mykey.

aws s3 mv mydoc.txt s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey

출력:

move: mydoc.txt to s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
  • API 세부 정보는 AWS CLI 명령 참조Mv를 참조하세요.

다음 코드 예시에서는 presign을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: S3 버킷의 객체에 연결되는 기본 1시간 수명으로 미리 서명된 URL를 생성하는 방법

다음 presign 명령은 1시간 동안 유효한 지정된 버킷 및 키에 대해 미리 서명된 URL를 생성합니다.

aws s3 presign s3://DOC-EXAMPLE-BUCKET/test2.txt

출력:

https://DOC-EXAMPLE-BUCKET.s3.us-west-2.amazonaws.com/key?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAEXAMPLE123456789%2F20210621%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20210621T041609Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=EXAMBLE1234494d5fba3fed607f98018e1dfc62e2529ae96d844123456

예제 2: S3 버킷의 객체에 연결하는 사용자 지정 수명 주기로 미리 서명된 URL를 생성하는 방법

다음 presign 명령은 1주일 동안 유효한 지정된 버킷 및 키에 대해 미리 서명된 URL를 생성합니다.

aws s3 presign s3://DOC-EXAMPLE-BUCKET/test2.txt \ --expires-in 604800

출력:

https://DOC-EXAMPLE-BUCKET.s3.us-west-2.amazonaws.com/key?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAEXAMPLE123456789%2F20210621%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20210621T041609Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=EXAMBLE1234494d5fba3fed607f98018e1dfc62e2529ae96d844123456

자세한 내용은 S3 개발자 안내서다른 사람과 객체 공유를 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조Presign을 참조하세요.

다음 코드 예시에서는 put-bucket-accelerate-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 가속화 구성을 설정하려면

다음 put-bucket-accelerate-configuration 예시는 지정된 버킷에 대한 가속화 구성을 활성화합니다.

aws s3api put-bucket-accelerate-configuration \ --bucket my-bucket \ --accelerate-configuration Status=Enabled

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 put-bucket-acl을 사용하는 방법을 보여 줍니다.

AWS CLI

이 예제에서는 두 명의 AWS 사용자(user1@example.comuser2@example.com)full control에게 권한을 부여하고 모든 사용자에게 read 권한을 부여합니다.

aws s3api put-bucket-acl --bucket MyBucket --grant-full-control emailaddress=user1@example.com,emailaddress=user2@example.com --grant-read uri=http://acs.amazonaws.com/groups/global/AllUsers

사용자 지정 ACLs에 대한 자세한 내용은 http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html을 참조하세요(와 같은 s3api ACL 명령은 동일한 단축 인수 표기법을 put-bucket-acl사용합니다).

  • API 세부 정보는 AWS CLI 명령 참조PutBucketAcl를 참조하세요.

다음 코드 예시에서는 put-bucket-analytics-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷에 대한 분석 구성을 설정하려면

다음 put-bucket-analytics-configuration 예제에서는 지정된 버킷에 대한 분석을 구성합니다.

aws s3api put-bucket-analytics-configuration \ --bucket my-bucket --id 1 \ --analytics-configuration '{"Id": "1","StorageClassAnalysis": {}}'

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 put-bucket-cors을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 예시에서는 www.example.com의 PUT, POST, 및 DELETE 요청을 활성화하고 모든 도메인의 GET 요청을 활성화합니다.

aws s3api put-bucket-cors --bucket MyBucket --cors-configuration file://cors.json cors.json: { "CORSRules": [ { "AllowedOrigins": ["http://www.example.com"], "AllowedHeaders": ["*"], "AllowedMethods": ["PUT", "POST", "DELETE"], "MaxAgeSeconds": 3000, "ExposeHeaders": ["x-amz-server-side-encryption"] }, { "AllowedOrigins": ["*"], "AllowedHeaders": ["Authorization"], "AllowedMethods": ["GET"], "MaxAgeSeconds": 3000 } ] }
  • API 세부 정보는 AWS CLI 명령 참조PutBucketCors를 참조하세요.

다음 코드 예시에서는 put-bucket-encryption을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 서버 측 암호화를 설정하려면

다음 put-bucket-encryption 예제에서는 AES256 암호화를 지정된 버킷의 기본값으로 설정합니다.

aws s3api put-bucket-encryption \ --bucket my-bucket \ --server-side-encryption-configuration '{"Rules": [{"ApplyServerSideEncryptionByDefault": {"SSEAlgorithm": "AES256"}}]}'

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 put-bucket-intelligent-tiering-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷에서 S3 Intelligent-Tiering 구성을 업데이트하려면

다음 put-bucket-intelligent-tiering-configuration 예제에서는 버킷에서 ExampleConfig라는 S3 Intelligent-Tiering 구성을 업데이트합니다. 구성은 접두사 이미지에서 액세스하지 않은 객체를 90일 후에 아카이브 액세스로, 180일 후에 딥 아카이브 액세스로 전환합니다.

aws s3api put-bucket-intelligent-tiering-configuration \ --bucket DOC-EXAMPLE-BUCKET \ --id "ExampleConfig" \ --intelligent-tiering-configuration file://intelligent-tiering-configuration.json

intelligent-tiering-configuration.json의 콘텐츠:

{ "Id": "ExampleConfig", "Status": "Enabled", "Filter": { "Prefix": "images" }, "Tierings": [ { "Days": 90, "AccessTier": "ARCHIVE_ACCESS" }, { "Days": 180, "AccessTier": "DEEP_ARCHIVE_ACCESS" } ] }

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 Amazon S3 사용 설명서기존 버킷에 대한 객체 소유권 설정을 참조하세요.

다음 코드 예시에서는 put-bucket-inventory-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: 버킷에 대한 인벤토리 구성을 설정하려면

다음 put-bucket-inventory-configuration 예제에서는 버킷에 대한 주간 ORC 형식 인벤토리 보고서를 설정합니다my-bucket.

aws s3api put-bucket-inventory-configuration \ --bucket my-bucket \ --id 1 \ --inventory-configuration '{"Destination": { "S3BucketDestination": { "AccountId": "123456789012", "Bucket": "arn:aws:s3:::my-bucket", "Format": "ORC" }}, "IsEnabled": true, "Id": "1", "IncludedObjectVersions": "Current", "Schedule": { "Frequency": "Weekly" }}'

이 명령은 출력을 생성하지 않습니다.

예제 2: 버킷에 대한 인벤토리 구성을 설정하려면

다음 put-bucket-inventory-configuration 예제에서는 버킷에 대한 일일 CSV 형식 인벤토리 보고서를 설정합니다my-bucket.

aws s3api put-bucket-inventory-configuration \ --bucket my-bucket \ --id 2 \ --inventory-configuration '{"Destination": { "S3BucketDestination": { "AccountId": "123456789012", "Bucket": "arn:aws:s3:::my-bucket", "Format": "CSV" }}, "IsEnabled": true, "Id": "2", "IncludedObjectVersions": "Current", "Schedule": { "Frequency": "Daily" }}'

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 put-bucket-lifecycle-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 my-bucket이라는 버킷에 수명 주기 구성을 적용합니다.

aws s3api put-bucket-lifecycle-configuration --bucket my-bucket --lifecycle-configuration file://lifecycle.json

파일은 현재 폴더의 JSON 문서lifecycle.json로, 두 가지 규칙을 지정합니다.

{ "Rules": [ { "ID": "Move rotated logs to Glacier", "Prefix": "rotated/", "Status": "Enabled", "Transitions": [ { "Date": "2015-11-10T00:00:00.000Z", "StorageClass": "GLACIER" } ] }, { "Status": "Enabled", "Prefix": "", "NoncurrentVersionTransitions": [ { "NoncurrentDays": 2, "StorageClass": "GLACIER" } ], "ID": "Move old versions to Glacier" } ] }

첫 번째 규칙은 rotated 접두사가 있는 파일을 지정된 날짜에 Glacier로 옮깁니다. 두 번째 규칙은 이전 객체 버전이 더 이상 최신 버전이 아닌 경우 Glacier로 옮깁니다. 허용되는 타임스탬프 형식에 대한 자세한 내용은 AWS CLI 사용 설명서의 파라미터 값 지정을 참조하세요.

다음 코드 예시에서는 put-bucket-lifecycle을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 버킷에 수명 주기 구성을 적용합니다my-bucket.

aws s3api put-bucket-lifecycle --bucket my-bucket --lifecycle-configuration file://lifecycle.json

파일은 현재 폴더의 JSON 문서lifecycle.json로, 두 가지 규칙을 지정합니다.

{ "Rules": [ { "ID": "Move to Glacier after sixty days (objects in logs/2015/)", "Prefix": "logs/2015/", "Status": "Enabled", "Transition": { "Days": 60, "StorageClass": "GLACIER" } }, { "Expiration": { "Date": "2016-01-01T00:00:00.000Z" }, "ID": "Delete 2014 logs in 2016.", "Prefix": "logs/2014/", "Status": "Enabled" } ] }

첫 번째 규칙은 60일 후에 파일을 Amazon Glacier로 이동합니다. 두 번째 규칙은 지정된 날짜에 Amazon S3에서 파일을 삭제합니다. 허용되는 타임스탬프 형식에 대한 자세한 내용은 AWS CLI 사용 설명서의 파라미터 값 지정을 참조하세요.

위 예제의 각 규칙은 적용되는 정책(Transition 또는 Expiration) 및 파일 접두사(폴더 이름)를 지정합니다. 빈 접두사를 지정하여 전체 버킷에 적용되는 규칙을 생성할 수도 있습니다.

{ "Rules": [ { "ID": "Move to Glacier after sixty days (all objects in bucket)", "Prefix": "", "Status": "Enabled", "Transition": { "Days": 60, "StorageClass": "GLACIER" } } ] }

다음 코드 예시에서는 put-bucket-logging을 사용하는 방법을 보여 줍니다.

AWS CLI

예시 1: 버킷 정책 로깅을 설정하려면

다음 put-bucket-logging 예제에서는 MyBucket에 대한 로깅 정책을 설정합니다. 먼저 put-bucket-policy 명령을 사용하여 버킷 정책에서 로깅 서비스 보안 주체 권한을 부여합니다.

aws s3api put-bucket-policy \ --bucket MyBucket \ --policy file://policy.json

policy.json의 콘텐츠:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3ServerAccessLogsPolicy", "Effect": "Allow", "Principal": {"Service": "logging.s3.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::MyBucket/Logs/*", "Condition": { "ArnLike": {"aws:SourceARN": "arn:aws:s3:::SOURCE-BUCKET-NAME"}, "StringEquals": {"aws:SourceAccount": "SOURCE-AWS-ACCOUNT-ID"} } } ] }

로깅 정책을 적용하려면 put-bucket-logging을 사용합니다.

aws s3api put-bucket-logging \ --bucket MyBucket \ --bucket-logging-status file://logging.json

logging.json의 콘텐츠:

{ "LoggingEnabled": { "TargetBucket": "MyBucket", "TargetPrefix": "Logs/" } }

로깅 서비스 보안 주체에 s3:PutObject 권한을 부여하려면 put-bucket-policy 명령이 필요합니다.

자세한 내용은 Amazon S3 사용 설명서의 Amazon S3 서버 액세스 로깅을 참조하세요.

예시 2: 단일 사용자에게만 액세스 로깅에 대한 버킷 정책을 설정하려면

다음 put-bucket-logging 예제에서는 MyBucket에 대한 로깅 정책을 설정합니다. AWS 사용자 bob@example.com은 로그 파일을 완전히 제어할 수 있으며 다른 사람은 액세스할 수 없습니다. 먼저 put-bucket-acl을 사용하여 S3 권한을 부여합니다.

aws s3api put-bucket-acl \ --bucket MyBucket \ --grant-write URI=http://acs.amazonaws.com/groups/s3/LogDelivery \ --grant-read-acp URI=http://acs.amazonaws.com/groups/s3/LogDelivery

그런 다음 put-bucket-logging을 사용하여 로깅 정책을 적용합니다.

aws s3api put-bucket-logging \ --bucket MyBucket \ --bucket-logging-status file://logging.json

logging.json의 콘텐츠:

{ "LoggingEnabled": { "TargetBucket": "MyBucket", "TargetPrefix": "MyBucketLogs/", "TargetGrants": [ { "Grantee": { "Type": "AmazonCustomerByEmail", "EmailAddress": "bob@example.com" }, "Permission": "FULL_CONTROL" } ] } }

S3의 로그 전달 시스템에 필수 권한(write 및 read-acp 권한)을 부여하려면 put-bucket-acl 명령이 필요합니다.

자세한 내용은 Amazon S3 개발자 안내서의 Amazon S3 서버 액세스 로깅을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조PutBucketLogging를 참조하세요.

다음 코드 예시에서는 put-bucket-metrics-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷에 대한 지표 구성을 설정하려면

다음 put-bucket-metrics-configuration 예제에서는 지정된 버킷에 대해 ID 123으로 지표 구성을 설정합니다.

aws s3api put-bucket-metrics-configuration \ --bucket my-bucket \ --id 123 \ --metrics-configuration '{"Id": "123", "Filter": {"Prefix": "logs"}}'

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 put-bucket-notification-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷에 지정된 알림을 활성화하려면

다음 put-bucket-notification-configuration 예시에서는 my-bucket이라는 버킷에 알림 구성을 적용합니다. 파일은 현재 폴더의 JSON 문서로notification.json, 모니터링할 SNS 주제와 이벤트 유형을 지정합니다.

aws s3api put-bucket-notification-configuration \ --bucket my-bucket \ --notification-configuration file://notification.json

notification.json의 콘텐츠:

{ "TopicConfigurations": [ { "TopicArn": "arn:aws:sns:us-west-2:123456789012:s3-notification-topic", "Events": [ "s3:ObjectCreated:*" ] } ] }

SNS 주제에는 Amazon S3가 게시할 수 있는 IAM 정책이 연결되어 있어야 합니다.

{ "Version": "2008-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SNS:Publish" ], "Resource": "arn:aws:sns:us-west-2:123456789012::s3-notification-topic", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:my-bucket" } } } ] }

다음 코드 예시에서는 put-bucket-notification을 사용하는 방법을 보여 줍니다.

AWS CLI

my-bucket이라는 버킷에 알림 구성을 적용합니다.

aws s3api put-bucket-notification --bucket my-bucket --notification-configuration file://notification.json

파일은 현재 폴더의 notification.json JSON 문서로, 모니터링할 SNS 주제와 이벤트 유형을 지정합니다.

{ "TopicConfiguration": { "Event": "s3:ObjectCreated:*", "Topic": "arn:aws:sns:us-west-2:123456789012:s3-notification-topic" } }

SNS 주제에는 Amazon S3가 게시할 수 있는 IAM 정책이 연결되어 있어야 합니다.

{ "Version": "2008-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SNS:Publish" ], "Resource": "arn:aws:sns:us-west-2:123456789012:my-bucket", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:my-bucket" } } } ] }

다음 코드 예시에서는 put-bucket-ownership-controls을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷의 버킷 소유권 설정을 업데이트하려면

다음 put-bucket-ownership-controls 예제에서는 버킷의 버킷 소유권 설정을 업데이트합니다.

aws s3api put-bucket-ownership-controls \ --bucket DOC-EXAMPLE-BUCKET \ --ownership-controls="Rules=[{ObjectOwnership=BucketOwnerEnforced}]"

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 Amazon S3 사용 설명서기존 버킷에 대한 객체 소유권 설정을 참조하세요.

다음 코드 예시에서는 put-bucket-policy을 사용하는 방법을 보여 줍니다.

AWS CLI

이 예제에서는 모든 사용자가 MyBucket의 객체를 제외한 모든 객체를 MySecretFolder에서 검색할 수 있습니다. 또한 AWS 계정의 루트 사용자에게 1234-5678-9012다음과 같은 put delete 권한을 부여합니다.

aws s3api put-bucket-policy --bucket MyBucket --policy file://policy.json policy.json: { "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::MyBucket/*" }, { "Effect": "Deny", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::MyBucket/MySecretFolder/*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": [ "s3:DeleteObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::MyBucket/*" } ] }
  • API 세부 정보는 AWS CLI 명령 참조PutBucketPolicy를 참조하세요.

다음 코드 예시에서는 put-bucket-replication을 사용하는 방법을 보여 줍니다.

AWS CLI

S3 버킷의 복제를 구성하려면

다음 put-bucket-replication 예시는 지정된 S3 버킷에 복제 구성을 적용합니다.

aws s3api put-bucket-replication \ --bucket AWSDOC-EXAMPLE-BUCKET1 \ --replication-configuration file://replication.json

replication.json의 콘텐츠:

{ "Role": "arn:aws:iam::123456789012:role/s3-replication-role", "Rules": [ { "Status": "Enabled", "Priority": 1, "DeleteMarkerReplication": { "Status": "Disabled" }, "Filter" : { "Prefix": ""}, "Destination": { "Bucket": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET2" } } ] }

대상 버킷에 버전 관리가 활성화되어 있어야 합니다. 지정된 역할에는 대상 버킷에 쓰기 위한 권한이 있어야 하며 Amazon S3가 역할을 맡도록 허용하는 신뢰 관계가 있어야 합니다.

예시 역할 권한 정책:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET1" ] }, { "Effect": "Allow", "Action": [ "s3:GetObjectVersion", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET1/*" ] }, { "Effect": "Allow", "Action": [ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ReplicateTags" ], "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET2/*" } ] }

예시 신뢰 관계 정책:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

이 명령은 출력을 생성하지 않습니다.

자세한 내용은 Amazon Simple Storage Service 콘솔 사용 설명서의 주제 제목을 참조하세요.

다음 코드 예시에서는 put-bucket-request-payment을 사용하는 방법을 보여 줍니다.

AWS CLI

예시 1: 버킷의 ``요청자 지불`` 구성을 활성화하려면

다음 put-bucket-request-payment 예시는 지정된 버킷의 requester pays를 활성화합니다.

aws s3api put-bucket-request-payment \ --bucket my-bucket \ --request-payment-configuration '{"Payer":"Requester"}'

이 명령은 출력을 생성하지 않습니다.

예시 2: 버킷의 ``요청자 지불`` 구성을 비활성화하려면

다음 put-bucket-request-payment 예시는 지정된 버킷의 requester pays를 비활성화합니다.

aws s3api put-bucket-request-payment \ --bucket my-bucket \ --request-payment-configuration '{"Payer":"BucketOwner"}'

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 put-bucket-tagging을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 my-bucket이라는 버킷에 태그 지정 구성을 적용합니다.

aws s3api put-bucket-tagging --bucket my-bucket --tagging file://tagging.json

파일은 태그를 지정하는 현재 폴더의 JSON 문서tagging.json입니다.

{ "TagSet": [ { "Key": "organization", "Value": "marketing" } ] }

또는 명령줄에서 태그 지정 구성을 my-bucket에 직접 적용할 수도 있습니다.

aws s3api put-bucket-tagging --bucket my-bucket --tagging 'TagSet=[{Key=organization,Value=marketing}]'
  • API 세부 정보는 AWS CLI 명령 참조PutBucketTagging를 참조하세요.

다음 코드 예시에서는 put-bucket-versioning을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 이름이 my-bucket인 버킷의 버전 관리를 활성화합니다.

aws s3api put-bucket-versioning --bucket my-bucket --versioning-configuration Status=Enabled

다음 명령은 버전 관리를 활성화하고 mfa 코드를 사용합니다.

aws s3api put-bucket-versioning --bucket my-bucket --versioning-configuration Status=Enabled --mfa "SERIAL 123456"

다음 코드 예시에서는 put-bucket-website을 사용하는 방법을 보여 줍니다.

AWS CLI

my-bucket이라는 버킷에 정적 웹 사이트 구성을 적용합니다.

aws s3api put-bucket-website --bucket my-bucket --website-configuration file://website.json

파일은 웹 사이트의 인덱스 및 오류 페이지를 지정하는 현재 폴더의 JSON 문서website.json입니다.

{ "IndexDocument": { "Suffix": "index.html" }, "ErrorDocument": { "Key": "error.html" } }
  • API 세부 정보는 AWS CLI 명령 참조PutBucketWebsite를 참조하세요.

다음 코드 예시에서는 put-object-acl을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 두 명의 AWS 사용자(user1@example.comuser2@example.com)full control에게 권한을 부여하고 모든 사용자에게 read 권한을 부여합니다.

aws s3api put-object-acl --bucket MyBucket --key file.txt --grant-full-control emailaddress=user1@example.com,emailaddress=user2@example.com --grant-read uri=http://acs.amazonaws.com/groups/global/AllUsers

사용자 지정 ACLs에 대한 자세한 내용은 http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html을 참조하세요(와 같은 s3api ACL 명령은 동일한 단축 인수 표기법을 put-object-acl사용합니다).

  • API 세부 정보는 AWS CLI 명령 참조PutObjectAcl를 참조하세요.

다음 코드 예시에서는 put-object-legal-hold을 사용하는 방법을 보여 줍니다.

AWS CLI

객체에 법적 보존을 적용하는 방법

다음 put-object-legal-hold 예시에서는 doc1.rtf 객체에 법적 보존을 설정합니다.

aws s3api put-object-legal-hold \ --bucket my-bucket-with-object-lock \ --key doc1.rtf \ --legal-hold Status=ON

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 put-object-lock-configuration을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷에 객체 잠금 구성을 설정하는 방법

다음 put-object-lock-configuration 예시에서는 지정된 버킷에 50일 객체 잠금을 설정합니다.

aws s3api put-object-lock-configuration \ --bucket my-bucket-with-object-lock \ --object-lock-configuration '{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 50 }}}'

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 put-object-retention을 사용하는 방법을 보여 줍니다.

AWS CLI

객체의 객체 보존 구성을 설정하는 방법

다음 put-object-retention 예시에서는 지정된 객체에 2025-01-01까지 객체 보존 구성을 설정합니다.

aws s3api put-object-retention \ --bucket my-bucket-with-object-lock \ --key doc1.rtf \ --retention '{ "Mode": "GOVERNANCE", "RetainUntilDate": "2025-01-01T00:00:00" }'

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 put-object-tagging을 사용하는 방법을 보여 줍니다.

AWS CLI

객체에 태그를 설정하려면

다음 put-object-tagging 예제에서는 키designationconfidential 지정된 객체의 값을 사용하여 태그를 설정합니다.

aws s3api put-object-tagging \ --bucket my-bucket \ --key doc1.rtf \ --tagging '{"TagSet": [{ "Key": "designation", "Value": "confidential" }]}'

이 명령은 출력을 생성하지 않습니다.

다음 put-object-tagging 예제에서는 지정된 객체에 여러 태그 세트를 설정합니다.

aws s3api put-object-tagging \ --bucket my-bucket-example \ --key doc3.rtf \ --tagging '{"TagSet": [{ "Key": "designation", "Value": "confidential" }, { "Key": "department", "Value": "finance" }, { "Key": "team", "Value": "payroll" } ]}'

이 명령은 출력을 생성하지 않습니다.

  • API 세부 정보는 AWS CLI 명령 참조PutObjectTagging를 참조하세요.

다음 코드 예시에서는 put-object을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 예시에서는 put-object 명령을 사용하여 Amazon S3에 객체를 업로드합니다.

aws s3api put-object --bucket text-content --key dir-1/my_images.tar.bz2 --body my_images.tar.bz2

다음 예시에서는 비디오 파일의 업로드를 보여줍니다(비디오 파일은 Windows 파일 시스템 구문을 사용하여 지정됨).

aws s3api put-object --bucket text-content --key dir-1/big-video-file.mp4 --body e:\media\videos\f-sharp-3-data-services.mp4

객체 업로드에 대한 자세한 내용은 Amazon S3 개발자 안내서의 객체 업로드를 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조PutObject를 참조하세요.

다음 코드 예시에서는 put-public-access-block을 사용하는 방법을 보여 줍니다.

AWS CLI

버킷에 대한 퍼블릭 액세스 차단 구성을 설정하려면

다음 put-public-access-block 예제에서는 지정된 버킷에 대한 제한적인 블록 퍼블릭 액세스 구성을 설정합니다.

aws s3api put-public-access-block \ --bucket my-bucket \ --public-access-block-configuration "BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true"

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 rb을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: 버킷 삭제

다음 rb 명령은 버킷을 제거합니다. 이 예제에서 사용자의 버킷은 입니다mybucket. 제거하려면 버킷이 비어 있어야 합니다.

aws s3 rb s3://mybucket

출력:

remove_bucket: mybucket

예제 2: 버킷 강제 삭제

다음 rb 명령은 --force 파라미터를 사용하여 먼저 버킷의 모든 객체를 제거한 다음 버킷 자체를 제거합니다. 이 예제에서 사용자의 버킷은 mybucket 이고의 객체mybuckettest1.txt 및 입니다test2.txt.

aws s3 rb s3://mybucket \ --force

출력:

delete: s3://mybucket/test1.txt delete: s3://mybucket/test2.txt remove_bucket: mybucket
  • API 세부 정보는 AWS CLI 명령 참조Rb를 참조하세요.

다음 코드 예시에서는 restore-object을 사용하는 방법을 보여 줍니다.

AWS CLI

객체에 대한 복원 요청을 생성하는 방법

다음 restore-object 예시에서는 my-glacier-bucket 버킷의 지정된 Amazon S3 Glacier 객체를 10일 동안 복원합니다.

aws s3api restore-object \ --bucket my-glacier-bucket \ --key doc1.rtf \ --restore-request Days=10

이 명령은 출력을 생성하지 않습니다.

  • API 세부 정보는 AWS CLI 명령 참조RestoreObject를 참조하세요.

다음 코드 예시에서는 rm을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: S3 객체 삭제

다음 rm 명령은 단일 s3 객체를 삭제합니다.

aws s3 rm s3://mybucket/test2.txt

출력:

delete: s3://mybucket/test2.txt

예제 2: 버킷의 모든 콘텐츠 삭제

다음 rm 명령은 파라미터와 함께 전달될 때 지정된 버킷 및 접두사 아래의 모든 객체를 재귀적으로 삭제합니다--recursive. 이 예제에서 버킷에는 객체 test1.txt 및가 mybucket 포함되어 있습니다test2.txt.

aws s3 rm s3://mybucket \ --recursive

출력:

delete: s3://mybucket/test1.txt delete: s3://mybucket/test2.txt

예제 3: ``.jpg` 파일을 제외한 버킷의 모든 콘텐츠 삭제

다음 rm 명령은 파라미터를 사용하여 일부 객체를 제외--recursive하면서 --exclude 파라미터와 함께 전달될 때 지정된 버킷 및 접두사 아래의 모든 객체를 재귀적으로 삭제합니다. 이 예제에서 버킷mybucket에는 객체test1.txt와가 있습니다test2.jpg.

aws s3 rm s3://mybucket/ \ --recursive \ --exclude "*.jpg"

출력:

delete: s3://mybucket/test1.txt

예제 4: 지정된 접두사 아래의 객체를 제외한 버킷의 모든 콘텐츠 삭제

다음 rm 명령은 파라미터를 사용하여 특정 접두사 아래의 모든 객체를 제외--recursive하면서 --exclude 파라미터와 함께 전달될 때 지정된 버킷 및 접두사 아래의 모든 객체를 재귀적으로 삭제합니다. 이 예제에서 버킷mybucket에는 객체test1.txt와가 있습니다another/test.txt.

aws s3 rm s3://mybucket/ \ --recursive \ --exclude "another/*"

출력:

delete: s3://mybucket/test1.txt

예제 5: S3 액세스 포인트에서 객체 삭제

다음 rm 명령은 액세스 포인트(mykey)에서 단일 객체()를 삭제합니다myaccesspoint. :: 다음 rm 명령은 액세스 포인트(mykey)에서 단일 객체()를 삭제합니다myaccesspoint.

aws s3 rm s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey

출력:

delete: s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/mykey
  • API 세부 정보는 AWS CLI 명령 참조Rm을 참조하세요.

다음 코드 예시에서는 select-object-content을 사용하는 방법을 보여 줍니다.

AWS CLI

SQL 문을 기반으로 Amazon S3 객체의 콘텐츠를 필터링하려면

다음 select-object-content 예제에서는 지정된 SQL 문my-data-file.csv으로 객체를 필터링하고 출력을 파일로 전송합니다.

aws s3api select-object-content \ --bucket my-bucket \ --key my-data-file.csv \ --expression "select * from s3object limit 100" \ --expression-type 'SQL' \ --input-serialization '{"CSV": {}, "CompressionType": "NONE"}' \ --output-serialization '{"CSV": {}}' "output.csv"

이 명령은 출력을 생성하지 않습니다.

다음 코드 예시에서는 sync을 사용하는 방법을 보여 줍니다.

AWS CLI

예제 1: 모든 로컬 객체를 지정된 버킷에 동기화

다음 sync 명령은 로컬 파일을 S3에 업로드하여 로컬 디렉터리의 객체를 지정된 접두사 및 버킷으로 동기화합니다. 로컬 파일의 크기가 S3 객체의 크기와 다르거나, 로컬 파일의 마지막 수정 시간이 S3 객체의 마지막 수정 시간보다 빠르거나, 지정된 버킷 및 접두사 아래에 로컬 파일이 없는 경우 로컬 파일을 업로드해야 합니다. 이 예제에서 사용자는 버킷을 로컬 현재 디렉터리mybucket에 동기화합니다. 로컬 현재 디렉터리에는 test.txt 및 파일이 포함되어 있습니다test2.txt. 버킷에는 객체mybucket가 없습니다.

aws s3 sync . s3://mybucket

출력:

upload: test.txt to s3://mybucket/test.txt upload: test2.txt to s3://mybucket/test2.txt

예제 2: 지정된 S3 버킷의 모든 S3 객체를 다른 버킷으로 동기화

다음 sync 명령은 S3 객체를 복사하여 지정된 접두사 및 버킷 아래의 객체를 다른 지정된 접두사 및 버킷 아래의 객체와 동기화합니다. 두 S3 객체의 크기가 S3 다르거나, 소스의 마지막 수정 시간이 대상의 마지막 수정 시간보다 빠르거나, 지정된 버킷 및 접두사 대상 아래에 S3 객체가 없는 경우 S3 객체를 복사해야 합니다.

이 예제에서는 사용자가 버킷을 버킷 mybucket에 동기화합니다mybucket2. 버킷에는 객체 test.txt 및가 mybucket 포함되어 있습니다test2.txt. 버킷에는 객체mybucket2가 없습니다.

aws s3 sync s3://mybucket s3://mybucket2

출력:

copy: s3://mybucket/test.txt to s3://mybucket2/test.txt copy: s3://mybucket/test2.txt to s3://mybucket2/test2.txt

예제 3: 지정된 S3 버킷의 모든 S3 객체를 로컬 디렉터리로 동기화

다음 sync 명령은 S3 객체를 다운로드하여 지정된 S3 버킷의 파일을 로컬 디렉터리로 동기화합니다. S3 객체의 크기가 로컬 파일 크기와 다르거나, S3 S3 객체의 마지막 수정 시간이 로컬 파일의 마지막 수정 시간보다 빠르거나, S3 객체가 로컬 디렉터리에 없는 경우 S3 객체를 다운로드해야 합니다. 객체를 S3에서 다운로드할 때 로컬 파일의 마지막 수정 시간이 S3 객체의 마지막 수정 시간으로 변경됩니다. 이 예제에서는 사용자가 버킷을 현재 로컬 디렉터리mybucket와 동기화합니다. 버킷에는 객체 test.txt 및가 mybucket 포함되어 있습니다test2.txt. 현재 로컬 디렉터리에는 파일이 없습니다.

aws s3 sync s3://mybucket .

출력:

download: s3://mybucket/test.txt to test.txt download: s3://mybucket/test2.txt to test2.txt

예제 4: 모든 로컬 객체를 지정된 버킷에 동기화하고 일치하지 않는 모든 파일을 삭제합니다.

다음 sync 명령은 지정된 접두사 및 버킷 아래의 객체를 로컬 파일을 S3에 업로드하여 로컬 디렉터리의 파일에 동기화합니다. --delete 파라미터로 인해 지정된 접두사 및 버킷 아래에 있지만 로컬 디렉터리에는 없는 모든 파일이 삭제됩니다. 이 예제에서는 사용자가 버킷을 로컬 현재 디렉터리mybucket에 동기화합니다. 로컬 현재 디렉터리에는 test.txt 및 파일이 포함되어 있습니다test2.txt. 버킷에는 객체가 mybucket 포함되어 있습니다test3.txt.

aws s3 sync . s3://mybucket \ --delete

출력:

upload: test.txt to s3://mybucket/test.txt upload: test2.txt to s3://mybucket/test2.txt delete: s3://mybucket/test3.txt

예제 5: ``.jpg` 파일을 제외한 모든 로컬 객체를 지정된 버킷에 동기화

다음 sync 명령은 지정된 접두사 및 버킷 아래의 객체를 로컬 파일을 S3에 업로드하여 로컬 디렉터리의 파일에 동기화합니다. --exclude 파라미터로 인해 S3 및 로컬 모두에 존재하는 패턴과 일치하는 모든 파일은 동기화에서 제외됩니다. 이 예제에서는 사용자가 버킷을 로컬 현재 디렉터리mybucket에 동기화합니다. 로컬 현재 디렉터리에는 test.jpg 및 파일이 포함되어 있습니다test2.txt. 버킷에는 로컬 test.jpg과 다른 크기의 객체가 mybucket 포함되어 있습니다test.jpg.

aws s3 sync . s3://mybucket \ --exclude "*.jpg"

출력:

upload: test2.txt to s3://mybucket/test2.txt

예제 6: ``.jpg`` 파일을 제외한 모든 로컬 객체를 지정된 버킷에 동기화

다음 sync 명령은 S3 객체를 다운로드하여 로컬 디렉터리의 파일을 지정된 접두사 및 버킷의 객체와 동기화합니다. 이 예제에서는 --exclude 파라미터 플래그를 사용하여 sync 명령에서 지정된 디렉터리와 S3 접두사를 제외합니다. 이 예제에서 사용자는 로컬 현재 디렉터리를 버킷에 동기화합니다mybucket. 로컬 현재 디렉터리에는 test.txt 및 파일이 포함되어 있습니다another/test2.txt. 버킷에는 객체 another/test5.txt 및가 mybucket 포함되어 있습니다test1.txt.

aws s3 sync s3://mybucket/ . \ --exclude "*another/*"

출력:

download: s3://mybucket/test1.txt to test1.txt

예제 7: 서로 다른 리전의 버킷 간에 모든 객체 동기화

다음 sync 명령은 서로 다른 리전의 두 버킷 간에 파일을 동기화합니다.

aws s3 sync s3://my-us-west-2-bucket s3://my-us-east-1-bucket \ --source-region us-west-2 \ --region us-east-1

출력:

download: s3://my-us-west-2-bucket/test1.txt to s3://my-us-east-1-bucket/test1.txt

예제 8: S3 액세스 포인트에 동기화

다음 sync 명령은 현재 디렉터리를 액세스 포인트(myaccesspoint)와 동기화합니다.

aws s3 sync . s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/

출력:

upload: test.txt to s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/test.txt upload: test2.txt to s3://arn:aws:s3:us-west-2:123456789012:accesspoint/myaccesspoint/test2.txt
  • API 세부 정보는 AWS CLI 명령 참조동기화를 참조하세요.

다음 코드 예시에서는 upload-part-copy을 사용하는 방법을 보여 줍니다.

AWS CLI

기존 객체의 데이터를 데이터 소스로 복사하여 객체의 일부를 업로드하려면

다음 upload-part-copy 예제에서는 기존 객체의 데이터를 데이터 소스로 복사하여 파트를 업로드합니다.

aws s3api upload-part-copy \ --bucket my-bucket \ --key "Map_Data_June.mp4" \ --copy-source "my-bucket/copy_of_Map_Data_June.mp4" \ --part-number 1 \ --upload-id "bq0tdE1CDpWQYRPLHuNG50xAT6pA5D.m_RiBy0ggOH6b13pVRY7QjvLlf75iFdJqp_2wztk5hvpUM2SesXgrzbehG5hViyktrfANpAD0NO.Nk3XREBqvGeZF6U3ipiSm"

출력:

{ "CopyPartResult": { "LastModified": "2019-12-13T23:16:03.000Z", "ETag": "\"711470fc377698c393d94aed6305e245\"" } }
  • API 세부 정보는 AWS CLI 명령 참조UploadPartCopy를 참조하세요.

다음 코드 예시에서는 upload-part을 사용하는 방법을 보여 줍니다.

AWS CLI

다음 명령은 create-multipart-upload 명령으로 시작된 멀티파트 업로드의 첫 번째 파트를 업로드합니다.

aws s3api upload-part --bucket my-bucket --key 'multipart/01' --part-number 1 --body part01 --upload-id "dfRtDYU0WWCCcH43C3WFbkRONycyCpTJJvxu2i5GYkZljF.Yxwh6XG7WfS2vC4to6HiV6Yjlx.cph0gtNBtJ8P3URCSbB7rjxI5iEwVDmgaXZOGgkk5nVTW16HOQ5l0R"

body 옵션은 업로드할 로컬 파일의 이름 또는 경로를 사용합니다. file:// 접두사는 사용하지 마세요. 최소 파트 크기는 5MB입니다. create-multipart-upload에서 업로드 ID를 반환하며 list-multipart-uploads를 사용하여 검색할 수도 있습니다. 멀티파트 업로드를 생성할 때 버킷과 키가 지정됩니다.

출력:

{ "ETag": "\"e868e0f4719e394144ef36531ee6824c\"" }

나중에 사용할 수 있도록 각 부분의 ETag 값을 저장합니다. 멀티파트 업로드를 완료하는 데 필요합니다.

  • API 세부 정보는 AWS CLI 명령 참조UploadPart를 참조하세요.

다음 코드 예시에서는 website을 사용하는 방법을 보여 줍니다.

AWS CLI

정적 웹 사이트로 S3 버킷 구성

다음 명령은 정적 웹 사이트my-bucket라는 버킷을 구성합니다. 인덱스 문서 옵션은 방문자my-bucket가 웹 사이트 URL로 이동할 때 로 연결되는 파일을 지정합니다. 이 경우 버킷은 us-west-2 리전에 있으므로 사이트는에 표시됩니다http://my-bucket.s3-website-us-west-2.amazonaws.com.

정적 사이트에 표시되는 버킷의 모든 파일은 방문자가 파일을 열 수 있도록 구성해야 합니다. 파일 권한은 버킷 웹 사이트 구성과 별도로 구성됩니다.

aws s3 website s3://my-bucket/ \ --index-document index.html \ --error-document error.html

Amazon S3에서 정적 웹 사이트를 호스팅하는 방법에 대한 자세한 내용은 Amazon Simple Storage Service 개발자 안내서정적 웹 사이트 호스팅을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 참조웹 사이트를 참조하세요.