디렉터리 버킷에 객체 복사 - Amazon Simple Storage Service

디렉터리 버킷에 객체 복사

복사 작업은 Amazon S3에 이미 저장되어 있는 객체의 복사본을 만듭니다. 디렉터리 버킷과 범용 버킷 간에 객체를 복사할 수 있습니다. 또한 버킷 내 및 동일한 유형의 버킷 간(예: 디렉터리 버킷에서 디렉터리 버킷으로)에 객체를 복사할 수 있습니다.

단일 원자성 작업으로 최대 5GB의 객체 복사본을 만들 수 있습니다. 그러나 5GB보다 큰 객체를 복사하려면 멀티파트 업로드 API 작업을 사용해야 합니다. 자세한 내용은 디렉터리 버킷에 멀티파트 업로드 사용 단원을 참조하십시오.

권한

객체를 복사하려면 다음 권한이 있어야 합니다.

  • 한 디렉터리 버킷에서 다른 디렉터리 버킷으로 객체를 복사하려면 s3express:CreateSession 권한이 있어야 합니다.

  • 디렉터리 버킷에서 범용 버킷으로 객체를 복사하려면 대상 버킷에 객체 사본을 쓸 수 있도록 s3express:CreateSession 권한과 s3:PutObject 권한이 있어야 합니다.

  • 범용 버킷에서 디렉터리 버킷으로 객체를 복사하려면 복사되는 소스 객체를 읽을 수 있도록 s3express:CreateSession 권한과 s3:GetObject 권한이 있어야 합니다.

    자세한 내용은 Amazon Simple Storage Service API 참조에서 CopyObject를 참조하십시오.

암호화(Encryption)

Amazon S3는 S3 버킷에 업로드되는 모든 새 객체를 자동으로 암호화합니다. S3 버킷의 기본 암호화 구성은 항상 활성화되어 있으며, 최소한 Amazon S3 관리형 키를 통한 서버 측 암호화(SSE-S3)로 설정되어 있습니다.

디렉터리 버킷의 경우 SSE-S3만 지원됩니다. 범용 버킷의 경우 SSE-S3(기본값), AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS), AWS KMS 키를 사용한 이증 계층 서버 측 암호화(DSSE-KMS) 또는 고객 제공 키를 사용한 서버 측 암호화(SSE-C)를 사용할 수 있습니다.

디렉터리 버킷의 SSE-C, SSE-KMS 또는 DSSE-KMS 파라미터를 소스 또는 대상으로 설정하는 복사 요청을 하면 응답에서 오류가 반환됩니다.

Tags

디렉터리 버킷은 태그를 지원하지 않습니다. 범용 버킷의 태그가 있는 객체를 디렉터리 버킷으로 복사하면 HTTP 501 (Not Implemented) 응답이 표시됩니다. 자세한 내용은 Amazon Simple Storage Service API 참조에서 CopyObject를 참조하십시오.

ETag

S3 Express One Zone의 엔터티 태그(ETag)는 임의의 영숫자 문자열이며 MD5 체크섬이 아닙니다. 객체 무결성을 보장하려면 추가 체크섬을 사용하세요.

추가 체크섬

S3 Express One Zone은 업로드 또는 다운로드 중에 데이터를 검증하는 데 사용하는 체크섬 알고리즘을 선택할 수 있는 옵션을 제공합니다. SHA(보안 해시 알고리즘) 또는 CRC(순환 중복 검사) 데이터 무결성 확인 알고리즘(CRC32, CRC32C, SHA-1, SHA-256) 중 하나를 선택할 수 있습니다. MD5 기반 체크섬은 S3 Express One Zone 스토리지 클래스에서 지원되지 않습니다.

자세한 내용은 S3 추가 체크섬 모범 사례 단원을 참조하십시오.

지원되는 기능

S3 Express One Zone에 지원되는 Amazon S3 기능에 대한 자세한 내용은 S3 Express One Zone의 차이점 섹션을 참조하세요.

범용 버킷 또는 디렉토리 버킷에서 디렉토리 버킷으로 개체를 복사하는 방법
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 버킷(Buckets)을 선택합니다.

  3. 객체를 복사하려는 버킷을 선택합니다.

    • 범용 버킷에서 복사하려면 범용 버킷 탭을 선택합니다.

    • 범용 버킷에서 복사하려면 디렉터리 버킷 탭을 선택합니다.

  4. 복사할 객체가 포함된 범용 버킷 또는 디렉터리 버킷을 선택합니다.

  5. 객체(Objects) 탭을 선택합니다. 객체 페이지에서 복사할 객체 이름 왼쪽에 있는 확인란을 선택합니다.

  6. 작업 메뉴에서 복사를 선택합니다.

    복사 페이지가 나타납니다.

  7. 대상에서 대상 유형에 맞는 디렉터리 버킷을 선택합니다. 대상 경로를 지정하려면 S3 찾아보기를 선택하고 대상으로 이동한 후 대상 왼쪽에 있는 옵션 버튼을 선택합니다. 오른쪽 하단 모서리에서 대상 선택(Choose destination)을 선택합니다.

    또는 대상 경로를 입력합니다.

  8. 체크섬에서 기존 체크섬 함수를 사용하여 객체를 복사할지 아니면 기존 체크섬 함수를 새 체크섬 함수로 교체할지를 선택합니다. 객체를 업로드할 때 데이터 무결성을 확인하는 데 사용된 체크섬 알고리즘을 지정하는 옵션이 있었습니다. 객체를 복사할 때는 새 함수를 선택할 수 있는 옵션이 있습니다. 원래 추가 체크섬을 지정하지 않은 경우 체크섬 섹션을 사용하여 체크섬을 추가할 수 있습니다.

    참고

    동일한 체크섬 함수를 사용하도록 선택하더라도 객체 크기가 16MB를 초과하면 체크섬 값이 변경될 수 있습니다. 멀티파트 업로드에 대해 체크섬이 계산되는 방식 때문에 체크섬 값이 변경될 수 있습니다. 객체를 복사할 때 어떻게 하면 체크섬이 변경될 수 있는지에 대한 자세한 내용은 멀티파트 업로드에 부분 수준의 체크섬 사용 단원을 참조하십시오.

    체크섬 함수를 변경하려면 새 체크섬 함수로 교체(Replace with a new checksum function)를 선택합니다. 드롭다운 목록에서 새 체크섬 함수를 선택합니다. 객체를 복사하면 지정된 알고리즘을 사용하여 새 체크섬이 계산되고 저장됩니다.

  9. 오른쪽 하단 모서리에서 복사(Copy)를 선택합니다. Amazon S3가 객체를 대상에 복사합니다.

디렉터리 버킷의 객체를 범용 버킷으로 복사하는 방법
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 버킷(Buckets)을 선택합니다.

  3. 디렉터리 버킷 탭을 선택합니다.

  4. 삭제할 객체가 포함된 디렉터리 버킷을 선택합니다.

  5. 객체(Objects) 탭을 선택합니다. 객체 페이지에서 복사할 객체 이름 왼쪽에 있는 확인란을 선택합니다.

  6. 작업 메뉴에서 복사를 선택합니다.

  7. 대상에서 대상 유형에 맞는 범용 버킷을 선택합니다. 대상 경로를 지정하려면 S3 찾아보기를 선택하고 대상으로 이동한 후 대상 왼쪽에 있는 옵션 버튼을 선택합니다. 오른쪽 하단 모서리에서 대상 선택(Choose destination)을 선택합니다.

    또는 대상 경로를 입력합니다.

  8. 체크섬에서 기존 체크섬 함수를 사용하여 객체를 복사할지 아니면 기존 체크섬 함수를 새 체크섬 함수로 교체할지를 선택합니다. 객체를 업로드할 때 데이터 무결성을 확인하는 데 사용된 체크섬 알고리즘을 지정하는 옵션이 있었습니다. 객체를 복사할 때는 새 함수를 선택할 수 있는 옵션이 있습니다. 원래 추가 체크섬을 지정하지 않은 경우 체크섬 섹션을 사용하여 체크섬을 추가할 수 있습니다.

    참고

    동일한 체크섬 함수를 사용하도록 선택하더라도 객체 크기가 16MB를 초과하면 체크섬 값이 변경될 수 있습니다. 멀티파트 업로드에 대해 체크섬이 계산되는 방식 때문에 체크섬 값이 변경될 수 있습니다. 객체를 복사할 때 어떻게 하면 체크섬이 변경될 수 있는지에 대한 자세한 내용은 멀티파트 업로드에 부분 수준의 체크섬 사용 단원을 참조하십시오.

    체크섬 함수를 변경하려면 새 체크섬 함수로 교체(Replace with a new checksum function)를 선택합니다. 드롭다운 목록에서 새 체크섬 함수를 선택합니다. 객체를 복사하면 지정된 알고리즘을 사용하여 새 체크섬이 계산되고 저장됩니다.

  9. 오른쪽 하단 모서리에서 복사(Copy)를 선택합니다. Amazon S3가 객체를 대상에 복사합니다.

SDK for Java 2.x
public static void copyBucketObject (S3Client s3, String sourceBucket, String objectKey, String targetBucket) { CopyObjectRequest copyReq = CopyObjectRequest.builder() .sourceBucket(sourceBucket) .sourceKey(objectKey) .destinationBucket(targetBucket) .destinationKey(objectKey) .build(); String temp = ""; try { CopyObjectResponse copyRes = s3.copyObject(copyReq); System.out.println("Successfully copied " + objectKey +" from bucket " + sourceBucket +" into bucket "+targetBucket); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

다음 copy-object 예시 명령은 AWS CLI를 사용하여 버킷의 객체를 다른 버킷으로 복사하는 방법을 보여 줍니다. 버킷 유형 간에 객체를 복사할 수 있습니다. 이 명령을 실행하려면 사용자 입력 자리 표시자를 사용자의 정보로 대체합니다.

aws s3api copy-object --copy-source bucket SOURCE_BUCKET/SOURCE_KEY_NAME --key TARGET_KEY_NAME --bucket TARGET_BUCKET_NAME

자세한 내용은 AWS CLI 명령 레퍼런스copy-object 섹션을 참조하세요.