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à a foo.txt dato un URL come gs://bucket/*/nested/*. Lo shim non corrisponderà a foo.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 a 1. In particolare, può essere utile sulla riga di comando (CMD) di Windows.