Opciones de línea de comandos de nivel superior

Descripción

gsutil admite opciones separadas para el comando de gsutil de nivel superior y los subcomandos individuales (como cp, rm, etc.). Las opciones de nivel superior controlan el comportamiento de gsutil que se aplica en los comandos. Por ejemplo:

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

En el comando anterior, la opción -m se aplica a gsutil, mientras que la opción -p se aplica al subcomando cp.

Opciones

-D

Muestra encabezados y solicitudes HTTP, y la información de depuración adicional necesaria cuando se publican las solicitudes de asistencia, incluidos los seguimientos de pila de excepciones.

-DD Igual que -D, más la carga útil HTTP ascendente.
-h

Te permite especificar ciertos encabezados HTTP, por ejemplo:


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

Ten en cuenta que debes citar los encabezados o valores que contienen espacios (como “Content-Disposition: attachment; filename=filename.ext”), para evitar que la shell los divida en argumentos separados.

Los siguientes encabezados se almacenan como metadatos de objeto y se usan en solicitudes futuras del objeto:


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

Los siguientes encabezados se usan para verificar la integridad de los datos:


Content-MD5

gsutil también admite encabezados de metadatos personalizados con un prefijo de proveedor de Cloud Storage coincidente, como los siguientes:


x-goog-meta-

Ten en cuenta que, para las URL gs://, el encabezado de control de caché es específico de la API que se usa. La API de XML acepta encabezados de control de caché y los muestra durante las descargas de objetos. La API de JSON solo admite los encabezados de control de caché public, private, no-cache, max-age y no-transform.

Consulta también gsutil help setmeta para conocer la capacidad de establecer campos de metadatos en los objetos después de subirlos.

-i

Te permite usar las credenciales configuradas para actuar en nombre de una cuenta de servicio, por ejemplo:


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

Ten en cuenta que la API de XML y de S3 ignorarán esta configuración. Consulta gsutil help y gsutil creds para obtener más información sobre cómo actuar en nombre de cuentas de servicio.

-m

Hace que las operaciones admitidas (acl ch, acl set, cp, mv, rm, rsync y setmeta) se ejecuten en paralelo. Esto puede mejorar de manera significativa el rendimiento si realizas operaciones en una gran cantidad de archivos a través de una conexión de red bastante rápida.

gsutil realiza la operación especificada mediante una combinación de varios subprocesos y varios procesamientos. La cantidad de subprocesos y procesos se determina mediante parallel_thread_count y parallel_process_count, respectivamente. Estos valores se establecen en el archivo de configuración .boto o se especifican en solicitudes individuales con la marca de nivel superior -o. Debido a que gsutil no tiene compatibilidad integrada para las solicitudes de regulación, deberías experimentar con estos valores. Los valores óptimos pueden variar según una serie de factores, incluida la velocidad de la red, la cantidad de CPU y la memoria disponible.

El uso de la opción -m puede consumir una cantidad significativa de ancho de banda de red y causar problemas, o empeorar tu rendimiento si usas una red más lenta. Por ejemplo, si inicias una operación de rsync grande por medio de un vínculo de red que también la usan varios trabajos importantes, podría haber un rendimiento degradado en esos trabajos. Del mismo modo, la opción -m puede disminuir el rendimiento, en especial en los casos que realizan todas las operaciones de manera local, ya que puede generar “hiperpaginación” en el disco local.

A fin de evitar este tipo de problemas, reduce los valores de parallel_thread_count y parallel_process_count, o deja de usar la opción -m por completo. Una herramienta que puedes usar es ionice (integrada en muchos sistemas Linux), que te permitirá limitar la capacidad de E/S que consume gsutil para evitar que monopolice el disco local. Por ejemplo, el siguiente comando reduce la prioridad de E/S de gsutil para que no monopolice tu disco local:


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

Si una operación de carga o descarga mediante transferencia paralela falla antes de que se complete toda la transferencia (p. ej., una falla después de transferir 300 archivos de 1,000), deberás reiniciar toda la transferencia.

Además, aunque la mayoría de los comandos suele fallar al encontrar un error cuando está inhabilitada la marca -m, todos los comandos continúan probando todas las operaciones cuando está habilitado -m con varios subprocesos o procesos, y la cantidad de las operaciones con errores (si las hay) se informa como una excepción al final de la ejecución del comando.

-o Establece o anula valores del valor de configuración boto, en el formato <section>:<name>=<value>, p. ej., gsutil -o “Boto:proxy=host”… Esto no pasará la opción a las pruebas de integración de gsutil, que se ejecutan en un proceso separado.
-q Hace que gsutil realice operaciones de forma silenciosa, es decir, sin informar que los indicadores de progreso de los archivos se copian o quitan, etc. Aún se informan los errores. Esta opción puede ser útil para ejecutar gsutil desde un trabajo cron que registra su resultado en un archivo, en el que la única información deseada en el registro son fallas.
-u

Te permite especificar el proyecto de usuario que se facturará para la solicitud. Por ejemplo:


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