Options de ligne de commande de premier niveau

Description

gsutil accepte différentes options pour la commande gsutil de premier niveau et les sous-commandes individuelles (cp, rm, etc.). Les options de premier niveau contrôlent le comportement de gsutil qui s'applique à toutes les commandes. Prenons l'exemple de la commande suivante :

gsutil -m cp -p file gs://bucket/obj

L'option -m s'applique à gsutil, tandis que l'option -p s'applique à la sous-commande cp.

Options

-D

Affiche les requêtes/en-têtes HTTP et d'autres informations de débogage nécessaires lors de la publication de demandes d'assistance, y compris les traces de la pile d'exception.

-DD Identique à -D, avec la charge utile HTTP en amont.
-h

Permet de spécifier certains en-têtes HTTP. Exemple :


gsutil -h "Cache-Control:public,max-age=3600" \
       -h "Content-Type:text/html" cp ...

Notez que vous devez mettre les en-têtes/valeurs contenant des espaces entre guillemets (par exemple, "Content-Disposition: attachment; filename=filename.ext") pour éviter que l'interface système ne les interprète en arguments distincts.

Les en-têtes suivants sont stockés en tant que métadonnées d'objets et sont utilisés dans les requêtes ultérieures sur l'objet :


Cache-Control
Content-Disposition
Content-Encoding
Content-Language
Content-Type

Les en-têtes suivants permettent de vérifier l'intégrité des données :


Content-MD5

gsutil accepte également les en-têtes de métadonnées personnalisés avec un préfixe de fournisseur Cloud Storage correspondant, tel que le suivant :


x-goog-meta-

Notez que l'en-tête Cache Control des URL gs:// est spécifique à l'API utilisée. L'API XML acceptera tous les en-têtes de contrôle du cache et les renvoie lors des téléchargements d'objets. L'API JSON ne respecte que les en-têtes de contrôle de cache public, private, no-cache, max-age et no-transform.

Consultez la page consacrée à gsutil help setmeta pour savoir comment définir des champs de métadonnées sur des objets après leur importation.

-i

Permet d'usurper l'identité d'un compte de service à l'aide des identifiants configurés. Exemple :


gsutil -i "service-account@google.com" ls gs://pub

Notez que ce paramètre est ignoré par l'API XML et S3. Pour en savoir plus sur l'usurpation d'identité des comptes de service, consultez la page sur gsutil help cred.

-m

Entraîne l'exécution d'opérations acceptées (acl ch, acl set, cp, mv, rm, rsync et setmeta) en parallèle. Cela permet d'améliorer considérablement les performances si vous effectuez des opérations sur un grand nombre de fichiers via une connexion réseau relativement rapide.

gsutil effectue l'opération spécifiée en combinant le multithread et le mutitraitement. Le nombre de threads et de processeurs est déterminé par parallel_thread_count et parallel_process_count, respectivement. Ces valeurs sont définies dans le fichier de configuration .boto ou spécifiées dans des requêtes individuelles avec l'option de premier niveau -o. gsutil n'étant pas compatible avec la limitation des requêtes, vous devez tester ces valeurs. Les valeurs optimales peuvent varier en fonction d'un certain nombre de facteurs, dont la vitesse du réseau, le nombre de processeurs et la mémoire disponible.

L'option -m peut consommer une grande quantité de bande passante réseau et entraîner des problèmes ou nuire à vos performances si vous utilisez un réseau plus lent. Par exemple, si vous lancez une opération rsync volumineuse sur un lien réseau également utilisé par un certain nombre d'autres tâches importantes, les performances de ces tâches risquent d'être affectées. De même, l'option -m peut nuire à vos performances, en particulier dans les cas où toutes les opérations effectueront localement des opérations, car cela peut "épuiser" votre disque local.

Pour éviter de tels problèmes, réduisez les valeurs de parallel_thread_count et de parallel_process_count, ou cessez d'utiliser complètement l'option -m. Vous pouvez utiliser l'outil ionice (intégré à de nombreux systèmes Linux) pour limiter la quantité d'E/S utilisée par gsutil et l'empêcher de monopoliser votre disque local Par exemple, la commande suivante réduit la priorité d'E/S de gsutil afin de ne pas monopoliser votre disque local :


ionice -c 2 -n 7 gsutil -m rsync -r ./dir gs://some bucket

Si une opération de téléchargement ou d'importation utilisant le transfert parallèle échoue avant la fin du transfert (par exemple, après le transfert de 300 fichiers sur 1 000), vous devez relancer le transfert.

En outre, bien que la plupart des commandes échouent normalement en cas d'erreur lorsque l'indicateur -m est désactivé, toutes les commandes continuent à essayer toutes les opérations lorsque -m est activé avec plusieurs threads ou processus, et le nombre d'opérations ayant échoué (le cas échéant) est signalé en tant qu'exception à la fin de l'exécution de la commande.

-o Définissez ou remplacez les valeurs du fichier de configuration boto, au format <section>:<nom>=<valeur>, tel que gsutil -o "Boto:proxy=host". [...]. Cela permet de ne pas transmettre l'option aux tests d'intégration gsutil qui s'exécutent dans un processus distinct.
-q Permet à gsutil d'effectuer des opérations en mode silencieux, c'est-à-dire sans signaler les indicateurs de progression des fichiers copiés ou supprimés. Les erreurs sont toujours signalées. Cette option peut être utile pour exécuter gsutil à partir d'une tâche Cron qui enregistre le résultat dans un fichier dont les seules informations souhaitées sont les échecs.
-u

Permet de spécifier un projet utilisateur à facturer pour la requête. Exemple :


gsutil -u "bill-this-project" cp ...