Shim pour l'exécution de gcloud storage
Présentation
Le SDK Cloud inclut une nouvelle CLI, gcloud storage, qui peut être considérablement plus rapide que gsutil lorsque vous effectuez des importations et des téléchargements avec moins d'ajustement de paramètres. Cette nouvelle CLI présente une syntaxe et une structure de commandes familières aux utilisateurs de gsutil, mais elle est fondamentalement différente à de nombreux égards. Pour faciliter la transition vers cette nouvelle CLI, gsutil fournit un shim qui traduit vos commandes gsutil en commandes gcloud storage si un équivalent existe, et revient au comportement habituel de gsutil si aucun équivalent n'existe.
Pour activer
Définissez use_gcloud_storage=True
dans le fichier de configuration .boto
, sous la section [GSUtil]
:
[GSUtil] use_gcloud_storage=True
Vous pouvez également définir l'option pour des commandes individuelles à l'aide de l'option de niveau supérieur -o
:
gsutil -o "GSUtil:use_gcloud_storage=True" -m cp -p file gs://bucket/obj
Commandes disponibles
La CLI gcloud storage n'accepte qu'un sous-ensemble de commandes gsutil. Vous trouverez ci-dessous la liste des commandes compatibles avec le shim, avec les différences de comportement indiquées.
acl
La sous-commande
ch
n'est pas acceptée.
autoclass
Fonctionne comme prévu.
bucketpolicyonly
Fonctionne comme prévu.
chat
Affiche les données d'objet d'un deuxième objet, même si le premier objet n'est pas valide.
compose
Fonctionne comme prévu.
cors
La sous-commande
get
affiche "[]" au lieu de "gs://[nom du bucket] ne dispose pas d'une configuration CORS".
cp
Copie un deuxième objet, même si le premier objet n'est pas valide.
Il n'est pas possible d'effectuer des copies de fichiers à des fins de fichiers.
Compatible avec la copie d'objets de cloud à cloud, avec des barres obliques dans le nom.
L'option "toutes les versions" (
-A
) permet d'exécuter silencieusement une tâche séquentielle plutôt que de générer une erreur.
defacl
La sous-commande
ch
n'est pas acceptée.
defstorageclass
Fonctionne comme prévu.
hash
Dans gsutil, les options
-m
et-c
qui affectent l'affichage des hachages sont ignorées pour les objets cloud. Ce comportement est corrigé pour le shim et gcloud storage.
iam
La sous-commande
ch
n'est pas acceptée.L'option
-f
continue de traiter toutes les erreurs, pas seulement celles des API.
kms
La sous-commande "authorize" renvoie des messages d'information dans un format différent.
La sous-commande "encryption" renvoie des messages d'information dans un format différent.
labels
La sous-commande
get
affiche "[]" au lieu de "gs://[nom du bucket] ne dispose pas d'une configuration pour les étiquettes".
lifecycle
Fonctionne comme prévu.
journalisation
La sous-commande "get" possède un espace JSON différent et n'affiche pas de message d'informations si aucune configuration n'est trouvée.
ls
Fonctionne comme prévu.
mb
Fonctionne comme prévu.
mv
Voir les remarques sur "cp".
notification
La sous-commande "list" affiche les informations de configuration au format YAML.
La sous-commande "delete" offre un suivi de la progression et l'exécution en parallèle.
pap
Fonctionne comme prévu.
rb
Fonctionne comme prévu.
requesterpays
Fonctionne comme prévu.
rewrite
L'option "-k" ne génère pas d'erreur si elle est appelée sans nouvelle clé. Dans les deux cas, l'ancienne clé est conservée.
rm
Les repères de suppression de
$folder$
ne sont pas acceptés.
rpo
Fonctionne comme prévu.
setmeta
Ne génère pas d'erreur si aucun en-tête n'est modifié.
stat
Inclut un champ "Heure de mise à jour de la classe de stockage :", qui peut déclencher la tabulation.
ubla
Fonctionne comme prévu.
gestion des versions
Fonctionne comme prévu.
web
La sous-commande "get" possède un espace JSON différent et n'affiche pas de message d'informations si aucune configuration n'est trouvée.
Configuration boto
La configuration trouvée dans le fichier boto est mappée avec des variables d'environnement gcloud (1:1), le cas échéant.
[Identifiants]
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
Remarques générales sur la compatibilité
En raison de sa compatibilité sur les principales plates-formes, le multitraitement est activé par défaut pour toutes les commandes (ce qui équivaut à l'option "-m" toujours incluse dans gsutil).
Une séquence d'astérisques supérieure à 2 (c'est-à-dire
***
) est toujours traitée comme un seul astérisque.Contrairement à gsutil, gcloud n'est pas conçu pour être utilisé dans des appels parallèles. Cela peut entraîner un comportement imprévisible.
En supposant qu'un bucket contient un objet
gs://bucket/nested/foo.txt
, l'itérateur générique de gsutil correspond àfoo.txt
avec une URL telle quegs://bucket/*/nested/*
. Le shim ne correspondra pas àfoo.txt
avec la même URL.Celui-ci sera mis à jour à mesure que les nouvelles commandes seront compatibles avec gcloud storage et avec le shim.
Si Unicode rencontre des problèmes, essayez de définir la variable d'environnement
PYTHONUTF8
sur1
. Plus précisément, cela peut être utile avec la ligne de commande Windows (CMD).