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 스토리지 CLI는 gsutil 명령어의 하위 집합만 지원합니다. 다음은 shim에서 지원하는 명령어 목록이며 명시된 동작에 차이가 있습니다.
acl
ch
하위 명령어는 지원되지 않습니다.
autoclass
예상대로 작동합니다.
bucketpolicyonly
예상대로 작동합니다.
cat
첫 번째 객체가 잘못된 경우에도 두 번째 객체에 대한 객체 데이터를 출력합니다.
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 하위 명령어는 다른 형식의 정보 메시지를 반환합니다.
labels
get
하위 명령어는 'gs://[bucket name] has no labels configuration' 대신 '[]'를 출력합니다.
lifecycle
예상대로 작동합니다.
logging
get 하위 명령어는 JSON 간격이 다르며 구성이 발견되지 않으면 정보 메시지를 인쇄하지 않습니다.
ls
예상대로 작동합니다.
mb
예상대로 작동합니다.
mv
CP에 대한 참고 사항을 참조하세요.
notification
list 하위 명령어는 구성 정보를 YAML로 출력합니다.
delete 하위 명령어는 진행 상태 추적 및 동시 처리를 제공합니다.
pap
예상대로 작동합니다.
rb
예상대로 작동합니다.
requesterpays
예상대로 작동합니다.
rewrite
-k 플래그는 새 키 없이 호출해도 오류가 발생하지 않습니다. shim 및 shim되지 않은 경우 모두 이전 키는 유지됩니다.
rm
$folder$
삭제 마커는 지원되지 않습니다.
rpo
예상대로 작동합니다.
setmeta
헤더가 변경되지 않으면 오류가 발생하지 않습니다.
stat
탭 이동이 발생할 수 있는 '스토리지 클래스 업데이트 시간' 필드가 포함됩니다.
ubla
예상대로 작동합니다.
versioning
예상대로 작동합니다.
web
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)에 도움이 될 수 있습니다.