Shim per l'esecuzione di gcloud storage
Panoramica
Cloud SDK include una nuova interfaccia a riga di comando, gcloud storage, che può essere notevolmente più veloce di gsutil quando esegui caricamenti e download con meno parametri di ottimizzazione. Questa nuova interfaccia a riga di comando ha una sintassi e una struttura dei comandi familiari agli utenti di gsutil, ma è fondamentalmente diversa in molti modi 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 attivare
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 di primo livello -o
:
gsutil -o "GSUtil:use_gcloud_storage=True" -m cp -p file gs://bucket/obj
Comandi disponibili
L'interfaccia a riga di comando gcloud storage 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 le copie da file a 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 authorize restituisce messaggi informativi in un formato diverso.
Il sottocomando 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
$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 spaziature JSON diverse 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 dell'ambiente gcloud, se opportuno.
[Credentials]
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
file_certificati_CA: 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, il multiprocessing è attivo 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 (ad es. eseguire lo shim da 2 terminali contemporaneamente) può comportare un comportamento imprevedibile.
Supponendo che un bucket contenga un oggetto
gs://bucket/nested/foo.txt
, l'iteratore dei caratteri jolly di gsutil corrisponderà afoo.txt
se viene fornito un URL comegs://bucket/*/nested/*
. Lo shim non corrisponderà afoo.txt
se viene fornito lo stesso URL.Questo documento verrà aggiornato man mano che i nuovi comandi vengono supportati sia da gcloud storage sia dallo shim.
Se Unicode presenta problemi, prova a impostare la variabile di ambiente
PYTHONUTF8
su1
. In particolare, può essere utile sulla riga di comando (CMD) di Windows.