Shim per l'esecuzione di gcloud storage
Panoramica
Cloud SDK include una nuova interfaccia a riga di comando, gcloud storage, notevolmente più veloce rispetto a gsutil quando si eseguono caricamenti e download con meno parametri delle modifiche. Questa nuova interfaccia a riga di comando ha una sintassi e una struttura di comandi note gsutil è utente, ma è fondamentalmente diverso per molti aspetti importanti. Per semplificare la transizione a questa nuova CLI, gsutil fornisce uno shim che traduce i comandi gsutil in comandi gcloud storage se esiste un equivalente e passa al comportamento consueto di gsutil se non esiste un equivalente.
Per abilitare
Imposta use_gcloud_storage=True
nel file di configurazione .boto
nella sezione
Sezione [GSUtil]
:
[GSUtil] use_gcloud_storage=True
Puoi anche impostare il flag per singoli comandi utilizzando l'elemento -o
di primo livello
Segnala:
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 dei comandi supportati dallo shim con le eventuali differenze di comportamento.
acl
Il sottocomando
ch
non è 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 sottocomando
get
stampa "[]" anziché "gs://[nome del bucket] non ha configurazione CORS".
cp
Copia un secondo oggetto anche se il primo non è valido.
Non supporta copie di file in file.
Supporta la copia di oggetti da un cloud all'altro con barre finali nel nome.
Il flag all-version (
-A
) attiva in silenzio l'esecuzione sequenziale anziché generare un errore.
defacl
Il sottocomando
ch
non è supportato.
defstorageclass
Funziona come previsto.
hash
In gsutil, i flag
-m
e-c
che influiscono sugli hash visualizzati vengono ignorati per gli oggetti cloud. Questo comportamento è stato corretto per lo shim e lo spazio di archiviazione gcloud.
iam
Il sottocomando
ch
non è supportato.Il flag
-f
continuerà in caso di qualsiasi errore, non solo di errori dell'API.
kms
Il sottocomando di autorizzazione restituisce messaggi informativi in un formato.
Il sottocomando di crittografia restituisce messaggi informativi in un formato diverso.
etichette
Il sottocomando
get
stampa "[]" anziché "gs://[nome del bucket] non ha configurazione per le etichette".
ciclo di vita
Funziona come previsto.
logging
Il sottocomando get ha spaziature JSON diverse 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 sottocomando list stampa le informazioni di configurazione in formato YAML.
Il sottocomando 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 viene chiamato senza una nuova chiave. Sia nel caso di shim che in quello senza shim, la vecchia chiave viene mantenuta.
rm
Gli indicatori di eliminazione di
$folder$
non sono supportati.
rpo
Funziona come previsto.
setmeta
Non genera un errore se non vengono modificate le intestazioni.
stat
Include un campo "Data di aggiornamento della classe di archiviazione" che potrebbe causare errori di tabulazione.
ubla
Funziona come previsto.
controllo delle versioni
Funziona come previsto.
web
Il sottocomando get ha una spaziatura JSON diversa e non visualizza se non viene trovata alcuna configurazione.
Configurazione Boto
La configurazione trovata nel file boto è mappata 1:1 all'ambiente gcloud ove appropriato.
[Credentials]
aws_access_key_id: AWS_ACCESS_KEY_ID
chiave_accesso_segreto_aws: chiave_accesso_segreto_AWS
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
disattivare_analytics_prompt: CLOUDSDK_CORE_DISABLE_USAGE_REPORTING
use_magicfile: CLOUDSDK_STORAGE_USE_MAGICFILE
parallel_composite_upload_threshold: CLOUDSDK_STORAGE_PARALLEL_COMPOSITE_UPLOAD_THRESHOLD
soglia_ripristinabile: CLOUDSDK_STORAGE_RESUMABLE_THRESHOLD
[OAuth2]
client_id: CLOUDSDK_AUTH_CLIENT_ID
client_secret: CLOUDSDK_AUTH_CLIENT_SECRET
provider_autorizzazione_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, abilitata per tutti i comandi per impostazione predefinita (equivalente all'opzione -m) incluse 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 usato in chiamate parallele, Ciò (ad esempio facendo funzionare lo shim da 2 terminali contemporaneamente) può causare comportamenti imprevedibili.
Presumendo che un bucket contenga l'oggetto
gs://bucket/nested/foo.txt
, L'iteratore di caratteri jolly per gsutil corrisponderà afoo.txt
dato un URL comegs://bucket/*/nested/*
. Lo shim non corrisponderà afoo.txt
in base alla lo stesso URL.Questo documento verrà aggiornato man mano che i nuovi comandi vengono supportati sia da gcloud storage sia dallo shim.
Se Unicode ha problemi, prova a impostare la variabile di ambiente Da
PYTHONUTF8
a1
. In particolare, può essere utile sulla riga di comando (CMD) di Windows.