2012-07-21 35 views
7

Quiero sincronizar un directorio local con un segmento en Google Cloud Storage. Quiero copiar los archivos locales que no existen de forma remota, omitiendo archivos que ya existen tanto remotos como locales. ¿Es esto posible hacer esto con GSUtil? Parece que no puedo encontrar una opción de "sincronización" para GSUtil o un "no sobrescribir". ¿Es posible escribir esto?Google Cloud Storage - GSUtil - Copiar archivos, omitir existente, no sobrescribir

Estoy en Linux (Ubuntu 12.04)?

Respuesta

9

gsutil ahora admite la marca noclobber (-n) en el comando cp. Actualice su gsutil a la última versión (usando gsutil update) y luego use el indicador -n cuando realice una copia.

Este indicador omitirá los archivos que ya existen en el destino.

+6

ACTUALIZACIÓN: gsutil ahora (mayo de 2014) admite la opción rsync. –

1

gsutil no es compatible con una operación de sincronización, pero puede guiarlo usando gsutil ls para encontrar los archivos que existen de forma remota.

+0

alguna idea de cómo escribir esto? – ECII

4

es necesario agregar (-n) al comando, se menciona oficialmente el Google Cloud Platform:

-n: n-clobber. Cuando se especifica, los archivos u objetos existentes en el destino no se sobrescribirán. Todos los artículos omitidos por esta opción serán reportados como salteados. Esta opción realizará una solicitud GET adicional para verificar si existe un artículo antes de intentar cargar los datos. Esto ahorrará la retransmisión de datos, pero las solicitudes HTTP adicionales pueden hacer que las transferencias de objetos pequeños sean más lentas y costosas.

Ejemplo (El uso de múltiples hilos):

gsutil -m cp -n -a public-read -R large_folder gs://bucket_name 
1

Usando rsync, puede copiar desaparecidos/modificados archivos/objetos:

gsutil -m rsync -r <local_folderpath> gs://<bucket_id>/<cloud_folderpath> 

Además, si se utiliza la opción -d, se quiere también elimine archivos/objetos en su contenedor que ya no estén presentes localmente.

Otra opción podría ser usar Object Versioning, por lo que reemplazará los archivos/objetos en su depósito con sus datos locales, pero siempre puede volver a la versión anterior.

Cuestiones relacionadas