프로젝트에서 스토리지 객체 업로드 및 다운로드

이 페이지에서는 Google Distributed Cloud (GDC) 오프라인 스토리지 버킷에 객체를 업로드하고 다운로드하는 방법을 설명합니다.

시작하기 전에

프로젝트 네임스페이스는 관리 API 서버에서 버킷 리소스를 관리합니다. 버킷 및 객체로 작업하려면 프로젝트가 있어야 합니다.

다음 작업을 수행하려면 적절한 버킷 권한도 있어야 합니다. 버킷 액세스 권한 부여를 참고하세요.

객체 이름 지정 가이드라인

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

  • 객체 이름을 지정할 때는 UTF-8 문자를 사용하세요.
  • 개인 식별 정보 (PII)를 포함하지 마세요.

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

콘솔

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

CLI

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

gdcloud storage cp LOCAL_PATH s3://REMOTE_PATH
gdcloud storage cp s3://REMOTE_SOURCE_PATH s3://REMOTE_MOVE_DESTINATION_PATH
gdcloud storage mv s3://REMOTE_SOURCE_PATH s3://REMOTE_MOVE_DESTINATION_PATH

다음 명령어에는 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 dir s3://FULLY_QUALIFIED_BUCKET_NAME --recursive

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

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

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

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

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

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

콘솔

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

CLI

버킷에서 객체를 가져오려면 다음을 실행하세요.

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로 구성되어 있는지 확인합니다.