동시 복합 업로드 (original) (raw)

대용량 파일을 업로드하는 한 가지 방법은 _동시 복합 업로드_입니다. 이러한 업로드에서 파일은 최대 32개의 청크로 분할되고, 청크가 임시 객체에 동시에 업로드된 다음, 최종 객체가 임시 객체를 사용하여 다시 생성되고, 임시 객체가 삭제됩니다.

네트워크 및 디스크 속도가 제한 요소가 아닌 경우 동시 복합 업로드 속도가 훨씬 빨라질 수 있습니다. 하지만 버킷에 저장된 최종 객체는 _복합 객체_이며, MD5 해시가 아닌 crc32c 해시만 있습니다. 따라서 Python 애플리케이션으로 객체를 다운로드할 때 crcmod를 사용하여 무결성 검사를 수행해야 합니다. 다음이 적용되는 경우에만 동시 복합 업로드를 수행해야 합니다.

도구 및 API에서 동시 복합 업로드를 사용하는 방법

Cloud Storage와 상호작용하는 방법에 따라 동시 복합 업로드가 자동으로 대신 관리될 수 있습니다. 이 섹션에서는 다양한 도구의 병렬 복합 업로드 동작을 설명하고 동작을 수정하는 방법에 대한 정보를 제공합니다.

콘솔

Google Cloud 콘솔은 동시 복합 업로드를 실행하지 않습니다.

명령줄

다음 속성을 수정하여 gcloud storage cp에서 동시 복합 업로드를 수행하는 방법과 시기를 구성할 수 있습니다.

이름이 지정된 구성을 만들고--configuration project-wide 플래그를 사용하여 명령별로 구성을 적용하거나 gcloud config set 명령어를 사용하여 모든 gcloud CLI 명령어에 대해 구성을 적용하여 이러한 속성을 수정할 수 있습니다.

gcloud CLI를 사용하여 동시 복합 업로드를 수행하면 로컬 디스크 공간이 추가로 필요하지 않습니다. 조합하기 전에 동시 복합 업로드가 실패하면 gcloud CLI 명령어를 다시 실행하여 실패한 임시 객체에 재개 가능한 업로드를 활용합니다. 업로드가 실패하기 전에 성공적으로 업로드된 임시 객체는 업로드를 재개할 때 다시 업로드되지 않습니다.

임시 객체의 이름은 다음과 같은 방식으로 지정됩니다.

TEMPORARY_PREFIX/RANDOM_VALUE_HEX_DIGEST_COMPONENT_ID

각 항목의 의미는 다음과 같습니다.

일반적으로 임시 객체는 동시 복합 업로드 종료 시 삭제되지만, 임시 객체가 주변에 남지 않도록 하려면 gcloud CLI 명령어에서 종료 상태를 확인한 후 중단된 업로드의 일부로 업로드된 임시 객체를 수동으로 삭제해야 합니다.

클라이언트 라이브러리

REST API

JSON APIXML API 모두 객체 청크를 동시에 업로드하고 compose 작업을 사용하여 단일 객체로 다시 통합할 수 있습니다.

동시 복합 업로드의 코드를 설계할 때는 다음 사항에 유의하세요.