2012-07-21 30 views
7

Desidero sincronizzare una directory locale con un bucket in Google Cloud Storage. Voglio copiare i file locali che non esistono in remoto, saltando i file che esistono già sia remoti che locali. È possibile farlo con GSUtil? Non riesco a trovare un'opzione di "sincronizzazione" per GSUtil o un "non sovrascrivere". È possibile scrivere questo?Google Cloud Storage - GSUtil - Copia file, ignora esistenti, non sovrascrivere

Sono su Linux (Ubuntu 12.04)?

risposta

9

gsutil ora supporta il flag noclobber (-n) nel comando cp. Aggiorna il tuo gsutil all'ultima versione (usando gsutil update) e poi usa il flag -n quando esegui una copia.

Questo flag salterà i file già esistenti a destinazione.

+6

AGGIORNAMENTO: gsutil ora (maggio 2014) supporta l'opzione rsync. –

1

gsutil non supporta un'operazione di sincronizzazione, ma è possibile copiarlo utilizzando gsutil ls per trovare i file esistenti in remoto.

+0

qualche idea su come scrivere questo? – ECII

4

è necessario aggiungere (-n) al comando, citato ufficialmente il Google Cloud Platform:

-n: No-clobber. Se specificato, i file o gli oggetti esistenti nella destinazione non verranno sovrascritti. Qualsiasi elemento che viene saltato da questa opzione verrà segnalato come saltato. Questa opzione eseguirà un'ulteriore richiesta GET per verificare se esiste un elemento prima di tentare di caricare i dati. Ciò salverà la ritrasmissione dei dati, ma le richieste HTTP aggiuntive potrebbero rendere i trasferimenti di piccoli oggetti più lenti e più costosi.

Esempio (Usando multithreading):

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

Utilizzando rsync, è possibile copiare mancanti/modificati file/oggetti:

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

Inoltre, se si utilizza l'opzione -d, sarà elimina anche file/oggetti nel bucket che non sono più presenti localmente.

Un'altra opzione potrebbe essere quella di utilizzare Object Versioning, in modo da sostituire i file/oggetti nel bucket con i dati locali, ma è sempre possibile tornare alla versione precedente.

Problemi correlati