gcloud 스토리지 실행용 Shim
개요
Cloud SDK에는 더 적은 매개변수 조정으로 업로드 및 다운로드 수행 시 gsutil보다 훨씬 빠를 수 있는 새 CLI, gcloud 저장소가 포함되어 있습니다. 이 새 CLI에는 gsutil 사용자에게 익숙한 구문과 명령어 구조가 있지만 근본적으로 여러 중요한 차이점이 있습니다. 이 새로운 CLI로 쉽게 전환할 수 있도록 gsutil은 gsutil 명령어를 동등한 명령어가 있는 경우 gcloud 스토리지 명령어로 변환하는 shim을 제공하고 이에 상응하는 명령어가 없는 경우 gsutil의 일반적인 동작으로 되돌아갑니다.
사용 설정
[GSUtil] 섹션 아래의 .boto 구성 파일에서 use_gcloud_storage=True를 설정합니다.
[GSUtil] use_gcloud_storage=True
최상위 -o 플래그를 사용하여 개별 명령어에 대해 플래그를 설정할 수도 있습니다.
gsutil -o "GSUtil:use_gcloud_storage=True" -m cp -p file gs://bucket/obj
사용할 수 있는 명령
gcloud storage CLI는 gsutil 명령어의 일부만 지원합니다. 다음은 shim에서 지원하는 명령어 목록이며 명시된 동작에 차이가 있습니다.
acl
- ch하위 명령어는 지원되지 않습니다.
autoclass
- 예상대로 작동합니다. 
bucketpolicyonly
- 예상대로 작동합니다. 
고양이
- 첫 번째 객체가 잘못된 경우에도 두 번째 객체에 대한 객체 데이터를 출력합니다. 
compose
- 예상대로 작동합니다. 
cors
- get하위 명령어는 'gs://[bucket name] has no CORS configuration' 대신 '[]'를 출력합니다.
cp
- 첫 번째 객체가 잘못된 경우에도 두 번째 객체를 복사합니다. 
- 파일 간 복사를 지원하지 않습니다. 
- 이름에 후행 슬래시가 있는 클라우드 간 객체 복사를 지원합니다. 
- all-version 플래그( - -A)는 오류를 발생시키지 않고 자동으로 순차적 실행을 사용 설정합니다.
defacl
- ch하위 명령어는 지원되지 않습니다.
defstorageclass
- 예상대로 작동합니다. 
hash
- gsutil에서 표시되는 해시에 영향을 미치는 - -m및- -c플래그는 클라우드 객체에 대해 무시됩니다. 이 동작은 shim 및 gcloud 스토리지에 대해 수정되었습니다.
iam
- ch하위 명령어는 지원되지 않습니다.
- -f플래그는 API 오류뿐만 아니라 모든 오류에서 계속됩니다.
kms
- authorize 하위 명령어는 다른 형식의 정보 메시지를 반환합니다. 
- encryption 하위 명령어는 다른 형식의 정보 메시지를 반환합니다. 
라벨
- get하위 명령어는 'gs://[bucket name] has no labels configuration' 대신 '[]'를 출력합니다.
lifecycle
- 예상대로 작동합니다. 
logging
- get 하위 명령어는 JSON 간격이 다르며 구성이 발견되지 않으면 정보 메시지를 인쇄하지 않습니다. 
ls
- 예상대로 작동합니다. 
mb
- 예상대로 작동합니다. 
mv
- cp에 관한 참고를 확인하세요. 
알림
- list 하위 명령어는 구성 정보를 YAML로 출력합니다. 
- delete 하위 명령어는 진행 상태 추적 및 동시 처리를 제공합니다. 
pap
- 예상대로 작동합니다. 
rb
- 예상대로 작동합니다. 
requesterpays
- 예상대로 작동합니다. 
rewrite
- -k 플래그는 새 키 없이 호출해도 오류가 발생하지 않습니다. shim 및 shim되지 않은 경우 모두 이전 키는 유지됩니다. 
rm
- $folder$삭제 마커는 지원되지 않습니다.
rpo
- 예상대로 작동합니다. 
setmeta
- 헤더가 변경되지 않으면 오류가 발생하지 않습니다. 
stat
- 탭 이동이 발생할 수 있는 '스토리지 클래스 업데이트 시간' 필드가 포함됩니다. 
ubla
- 예상대로 작동합니다. 
versioning
- 예상대로 작동합니다. 
웹
- get 하위 명령어는 JSON 간격이 다르며 구성이 발견되지 않으면 정보 메시지를 인쇄하지 않습니다. 
Boto 구성
boto 파일에서 발견된 구성은 적절한 경우 gcloud 환경 변수에 1:1로 매핑됩니다.
[사용자 인증 정보]
- aws_access_key_id: AWS_ACCESS_KEY_ID 
- aws_secret_access_key: AWS_SECRET_ACCESS_KEY 
- use_client_certificate: CLOUDSDK_CONTEXT_AWARE_USE_CLIENT_CERTIFICATE 
[Boto]
- proxy: CLOUDSDK_PROXY_ADDRESS 
- proxy_type: CLOUDSDK_PROXY_TYPE 
- proxy_port: CLOUDSDK_PROXY_PORT 
- proxy_user: CLOUDSDK_PROXY_USERNAME 
- proxy_pass: CLOUDSDK_PROXY_PASSWORD 
- proxy_rdns: CLOUDSDK_PROXY_RDNS 
- http_socket_timeout: CLOUDSDK_CORE_HTTP_TIMEOUT 
- ca_certificates_file: CLOUDSDK_CORE_CUSTOM_CA_CERTS_FILE 
- max_retry_delay: CLOUDSDK_STORAGE_BASE_RETRY_DELAY 
- num_retries: CLOUDSDK_STORAGE_MAX_RETRIES 
[GSUtil]
- check_hashes: CLOUDSDK_STORAGE_CHECK_HASHES 
- default_project_id: CLOUDSDK_CORE_PROJECT 
- disable_analytics_prompt: CLOUDSDK_CORE_DISABLE_USAGE_REPORTING 
- use_magicfile: CLOUDSDK_STORAGE_USE_MAGICFILE 
- parallel_composite_upload_threshold: CLOUDSDK_STORAGE_PARALLEL_COMPOSITE_UPLOAD_THRESHOLD 
- resumable_threshold: CLOUDSDK_STORAGE_RESUMABLE_THRESHOLD 
[OAuth2]
- client_id: CLOUDSDK_AUTH_CLIENT_ID 
- client_secret: CLOUDSDK_AUTH_CLIENT_SECRET 
- provider_authorization_uri: CLOUDSDK_AUTH_AUTH_HOST 
- provider_token_uri: CLOUDSDK_AUTH_TOKEN_HOST 
일반 호환성 참고사항
- 모든 주요 플랫폼 간의 호환성으로 인해 기본적으로 모든 명령어에 멀티 처리가 사용 설정됩니다(-m 옵션이 항상 gsutil에 포함되는 것과 동일). 
- 3개 이상의 별표(예: - ***)는 항상 하나의 별표로 처리됩니다.
- gsutil과 달리 gcloud는 동시 호출에서 사용하도록 설계되지 않았으며, 따라서 동시 호출(예: 2개 터미널에서 shim을 동시에 실행)하면 예기치 않은 동작이 발생할 수 있습니다. 
- 버킷에 - gs://bucket/nested/foo.txt객체가 포함되어 있다고 가정하면 gsutil의 와일드 카드 반복자는- gs://bucket/*/nested/*와 같은 URL이 지정된- foo.txt와 일치합니다. shim은 동일한 URL이 지정되면- foo.txt와 일치하지 않습니다.
- 새 명령어가 gcloud 스토리지 및 shim에서 모두 지원되므로 업데이트됩니다. 
- 유니코드에 문제가 있는 경우 환경 변수 - PYTHONUTF8을- 1로 설정해 보세요. 특히 Windows 명령줄(CMD)에 도움이 될 수 있습니다.