Shim per l'esecuzione di gcloud storage
Google Cloud CLI include una CLI per Cloud Storage, gcloud storage, che può essere
molto più veloce di gsutil quando esegue caricamenti e download con meno modifiche ai parametri. I comandi gcloud storage hanno una sintassi e una struttura di comando che sono
familiari agli utenti di gsutil, ma fondamentalmente diverse in molti modi importanti. Per semplificare
la transizione alla gcloud CLI, gsutil fornisce uno shim che traduce i comandi gsutil
in comandi gcloud storage se esiste un equivalente e ripristina
il comportamento abituale di gsutil se non esiste un equivalente.
Per abilitare
Imposta use_gcloud_storage=True nel file di configurazione .boto nella sezione
[GSUtil]:
[GSUtil] use_gcloud_storage=True
Puoi anche impostare il flag per i singoli comandi utilizzando il flag -o di primo livello:
gsutil -o "GSUtil:use_gcloud_storage=True" -m cp -p file gs://bucket/obj
Comandi disponibili
gcloud storage CLI supporta solo un sottoinsieme di comandi gsutil. Di seguito è riportato un elenco di comandi supportati dallo shim con eventuali differenze di comportamento.
acl
Il sottocomando
chnon è supportato.
autoclass
Funziona come previsto.
bucketpolicyonly
Funziona come previsto.
gatto
Stampa i dati dell'oggetto per un secondo oggetto anche se il primo non è valido.
compose
Funziona come previsto.
cors
Il comando secondario
getstampa "[]" anziché "gs://[nome bucket] has no CORS configuration".
cp
Copia un secondo oggetto anche se il primo non è valido.
Non supporta le copie da file a file.
Supporta la copia di oggetti cloud-to-cloud con barre finali nel nome.
Il flag per tutte le versioni (
-A) attiva l'esecuzione sequenziale in modo invisibile anziché generare un errore.
defacl
Il sottocomando
chnon è supportato.
defstorageclass
Funziona come previsto.
hash
In gsutil, i flag
-me-cche influiscono sugli hash visualizzati vengono ignorati per gli oggetti cloud. Questo comportamento è stato corretto per lo shim e gcloud storage.
iam
Il sottocomando
chnon è supportato.Il flag
-fcontinuerà in caso di errore, non solo di errori API.
kms
Il comando secondario authorize restituisce messaggi informativi in un formato diverso.
Il sottocomando encryption restituisce messaggi informativi in un formato diverso.
etichette
Il comando secondario
getstampa "[]" anziché "gs://[nome bucket] has no labels configuration."
ciclo di vita
Funziona come previsto.
logging
Il comando secondario get ha una spaziatura JSON diversa e non stampa un messaggio informativo se non viene trovata alcuna configurazione.
ls
Funziona come previsto.
mb
Funziona come previsto.
mv
Vedi le note su cp.
notifica
Il comando secondario list stampa le informazioni di configurazione in formato YAML.
Il comando secondario delete offre il monitoraggio dell'avanzamento e la parallelizzazione.
pap
Funziona come previsto.
rb
Funziona come previsto.
requesterpays
Funziona come previsto.
rewrite
Il flag -k non genera un errore se chiamato senza una nuova chiave. Sia nel caso di shim che in quello di unshim, la vecchia chiave viene mantenuta.
rm
I marcatori di eliminazione
$folder$non sono supportati.
rpo
Funziona come previsto.
setmeta
Non genera un errore se non vengono modificate intestazioni.
stat
Include un campo "Ora aggiornamento classe di archiviazione:" che potrebbe interrompere la tabulazione.
ubla
Funziona come previsto.
controllo delle versioni
Funziona come previsto.
web
Il comando secondario get ha una spaziatura JSON diversa e non stampa un messaggio informativo se non viene trovata alcuna configurazione.
Configurazione di Boto
La configurazione trovata nel file boto viene mappata 1:1 alle variabili di ambiente gcloud, se appropriato.
[Credenziali]
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
Note generali sulla compatibilità
Grazie alla sua compatibilità con tutte le principali piattaforme, l'elaborazione parallela è attivata per impostazione predefinita per tutti i comandi (equivalente all'opzione -m sempre inclusa in gsutil).
Una sequenza di asterischi maggiore di 2 (ad es.
***) viene sempre trattata come un singolo asterisco.A differenza di gsutil, gcloud non è progettato per essere utilizzato in invocazioni parallele e farlo (ovvero eseguire lo shim da due terminali contemporaneamente) può portare a un comportamento imprevedibile.
Supponendo che un bucket contenga un oggetto
gs://bucket/nested/foo.txt, l'iteratore con caratteri jolly di gsutil corrisponderà afoo.txtdato un URL comegs://bucket/*/nested/*. Il shim non corrisponderà afoo.txtdato lo stesso URL.Se Unicode ha problemi, prova a impostare la variabile di ambiente
PYTHONUTF8su1. In particolare, questo può essere utile nella riga di comando (CMD) di Windows.