스토리지 객체 업로드 및 다운로드

이 페이지에서는 Google Distributed Cloud (GDC) 에어 갭 스토리지 버킷에 객체를 업로드하고 다운로드하는 방법을 보여줍니다.

시작하기 전에

스토리지 버킷은 특정 프로젝트의 범위가 지정된 리소스입니다. 프로젝트는 컨테이너 역할을 하며 버킷을 그룹화하고 Management API 서버를 통해 버킷을 관리할 수 있도록 합니다. 이 페이지의 작업을 수행하려면 새 프로젝트를 만들거나 충분한 권한이 있는 기존 프로젝트를 선택해야 합니다.

필요한 IAM 역할

IAM 프로젝트 관리자에게 문의하여 프로젝트 네임스페이스에서 다음 역할을 요청하세요.

  • 프로젝트 버킷 관리자 (project-bucket-admin): 스토리지 버킷을 만들고, 업데이트하고, 삭제합니다.
  • 프로젝트 버킷 객체 뷰어 (project-bucket-object-viewer): 스토리지 버킷 및 객체의 세부정보를 보고 확인합니다.

자세한 내용은 버킷 액세스 권한 부여를 참조하세요.

개발 환경 준비

관리 API 서버 또는 전역 API 서버에 대해 명령어를 실행하려면 다음을 수행하세요.

  1. 로그인하고 생성합니다. 영역 관리 API 서버의 kubeconfig 파일이 없는 경우 kubeconfig 파일을 생성합니다.
  2. 이중 영역 버킷의 경우 다음을 수행합니다.

객체 이름 지정 가이드라인

다음 가이드라인에 따라 객체 이름을 지정하세요.

  • 객체 이름을 지정할 때는 UTF-8 문자를 사용합니다.
  • 길이는 1~55자 사이여야 합니다.
  • 개인 식별 정보 (PII)를 포함하지 않습니다.

스토리지 버킷에 객체 업로드

Console

  1. 탐색 메뉴에서 객체 스토리지 를 클릭합니다.
  2. 객체를 업로드할 버킷의 이름을 클릭합니다.
  3. 선택사항: 객체를 저장할 폴더를 만들려면 폴더 만들기 를 클릭하고 폴더 이름을 입력한 후 만들기 를 클릭합니다.
  4. 파일 업로드 를 직접 클릭하거나 방금 만든 폴더로 이동한 후 파일 업로드 를 클릭합니다.
  5. 원하는 파일을 선택하고 열기 를 클릭합니다.
  6. 업로드가 완료되었다는 확인 메시지가 표시될 때까지 기다립니다.

gdcloud

객체를 업로드하려면 다음 명령어를 실행합니다.

gdcloud storage cp LOCAL_PATH s3://REMOTE_PATH
gdcloud storage cp s3://FULLY_QUALIFIED_SOURCE_BUCKET_NAME s3://FULLY_QUALIFIED_DESTINATION_BUCKET_NAME
gdcloud storage mv s3://FULLY_QUALIFIED_SOURCE_BUCKET_NAME s3://FULLY_QUALIFIED_DESTINATION_BUCKET_NAME

다음 명령어에는 FULLY_QUALIFIED_BUCKET_NAME이 필요합니다. 버킷 구성 보기 섹션의 GET 또는 DESCRIBE 명령어를 사용하여 정규화된 버킷 이름을 가져옵니다.

다음 명령어는 로컬 디렉터리의 모든 텍스트 파일을 버킷에 업로드합니다.

gdcloud storage cp *.txt s3://FULLY_QUALIFIED_BUCKET_NAME

다음 명령어는 로컬 디렉터리의 여러 파일을 버킷에 업로드합니다.

gdcloud storage cp abc1.txt abc2.txt s3://FULLY_QUALIFIED_BUCKET_NAME

버킷에 폴더를 업로드하려면 --recursive 옵션을 사용하여 전체 디렉터리 트리를 복사합니다. 다음 명령어는 디렉터리 트리 dir을 업로드합니다.

gdcloud storage cp DIRECTORY_NAME s3://FULLY_QUALIFIED_BUCKET_NAME --recursive

대용량 객체의 경우 멀티파트 업로드를 수행하거나 업로드할 파일이 15MB보다 큰 경우 멀티파트 업로드를 자동으로 사용합니다. 이 경우 파일은 여러 부분으로 분할되며 각 부분의 크기는 15MB입니다. 마지막 부분은 더 작습니다. 각 부분은 개별적으로 업로드되고 전송이 완료되면 대상에서 재구성됩니다.

한 부분의 업로드가 실패하면 이미 업로드된 다른 부분에 영향을 주지 않고 업로드를 다시 시작할 수 있습니다.

멀티파트 업로드와 관련된 두 가지 옵션이 있습니다.

  • --disable-multipart: 모든 파일의 멀티파트 업로드를 사용 중지합니다.
  • --multipart-chunk-size-mb=SIZE: 멀티파트 업로드의 각 청크 크기를 설정합니다.

SIZE보다 큰 파일은 자동으로 다중 스레드 멀티파트로 업로드됩니다. 더 작은 파일은 기존 메서드를 사용하여 업로드됩니다. SIZE는 메가바이트 단위입니다. 기본 청크 크기는 15MB입니다. 허용되는 최소 청크 크기는 5MB이고 최대 청크 크기는 5GB입니다.

스토리지 버킷에서 객체 다운로드

Console

  1. 탐색 메뉴에서 객체 스토리지 를 클릭합니다.
  2. 객체가 포함된 버킷의 이름을 클릭합니다.
  3. 다운로드할 객체의 이름 옆에 있는 체크박스를 선택합니다.
  4. 다운로드 를 클릭합니다.

gdcloud

버킷에서 객체를 가져오려면 다음을 수행합니다.

gdcloud storage cp s3://FULLY_QUALIFIED_BUCKET_NAME/OBJECT LOCAL_FILE_TO_SAVE

버킷의 모든 텍스트 파일을 현재 디렉터리로 다운로드하려면 다음을 수행합니다.

gdcloud storage cp s3://FULLY_QUALIFIED_BUCKET_NAME/*.txt .

버킷의 텍스트 파일 abc.txt를 현재 디렉터리로 다운로드하려면 다음을 수행합니다.

gdcloud storage cp s3://FULLY_QUALIFIED_BUCKET_NAME/abc.txt .

이전 버전의 파일을 다운로드하려면 먼저 파일의 모든 버전을 나열합니다.

gdcloud storage ls s3://FULLY_QUALIFIED_BUCKET_NAME/abc.txt --all-versions

출력 예시:

s3://my-bucket/abc.txt#OEQxNTk4MUEtMzEzRS0xMUVFLTk2N0UtQkM4MjAwQkJENjND
s3://my-bucket/abc.txt#ODgzNEYzQ0MtMzEzRS0xMUVFLTk2NEItMjI1MTAwQkJENjND
s3://my-bucket/abc.txt#ODNCNDEzNzgtMzEzRS0xMUVFLTlDOUMtQzRDOTAwQjg3RTg3

그런 다음 버킷의 텍스트 파일 abc.txt의 특정 버전을 현재 디렉터리로 다운로드합니다.

gdcloud storage cp s3://FULLY_QUALIFIED_BUCKET_NAME/abc.txt#OEQxNTk4MUEtMzEzRS0xMUVFLTk2N0UtQkM4MjAwQkJENjND .

커스텀 AEADKey 사용

더 많은 맞춤설정을 위해 자체 AEADKey를 만들고 버킷에서 객체를 암호화할 때 직접 사용할 수 있습니다. 이렇게 하면 기본값을 무시하고 암호화 키를 완전히 제어할 수 있습니다. 키 만들기에 따라 새 AEADKey를 만들고 사용할 버킷과 동일한 Namespace에 있는지 확인합니다. 그런 다음 요청을 보낼 때마다 HEADERx-amz-server-side-encryption: SSE-KMSx-amz-server-side-encryption-aws-kms-key-id: NAMESPACE_NAME/AEADKey_NAME으로 구성되어 있는지 확인합니다.