2014-04-08 9 views
6

Verileri, 1 TB'lık toplamda ~ 3000 dosya içeren bir diskten Google Cloud Storage'a yüklemeye çalışıyorum. gsutil cp -R <disk-top-directory> <bucket> kullanıyorum. Anladığım kadarıyla, gsutil yeniden başlatılırsa/yeniden başlatılırsa, bir dosyanın ne zaman yüklendiğini ve atladığını belirlemek için sağlama toplamlarını kullanır.Devam etmekte gsutil, dosyaları yeniden yüklüyor gibi görünüyor

Bunu yapmıyor gibi görünüyor: Yüklemeyi en baştan devam ettiriyor ve dosyaları yeniden değiştiriyor görünüyor. On dakika arayla birbirini takip eden gsutil ls -Rl <bucket/disk-top-directory> koştuğumda ve bunları diff ile karşılaştırdığımda, aynı boyutta görünen ancak aynı (yeni) bir tarihle aynı dosyaların görünmesini görüyorum. (Aynı dosya ile yani tutarlı yeniden yükleniyor.)

Örneğin: Ben dosyalarını disk okuma ve aktarmak için kullanıyorum

< 404104811 2014-04-08T14:13:44Z gs://my-bucket/disk-top-directory/dir1/dir2/dir3/dir4/dir5/file-20.tsv.bz2 
--- 
> 404104811 2014-04-08T14:43:48Z gs://my-bucket/disk-top-directory/dir1/dir2/dir3/dir4/dir5/file-20.tsv.bz2 

makine Ubuntu 13.10 çalışıyor. Debian ve Ubuntu için pip talimatlarını kullanarak gsutil'i kurdum.

Gsutil'in devam eden transferlerinin nasıl çalışması gerektiğini yanlış anlıyor muyum? Aksi takdirde, doğru özgeçmişini almak için herhangi bir tanı ve düzeltme? Şimdiden teşekkürler!

cevap

5

Hedefte önceden var olan nesnelerin yeniden yüklenmesini önlemek için -n (No-clobber) anahtarını kullanmanız gerekir. 2MB üzerinden dosya aktarma yaparken yardımı (gsutil yardım cp) Gönderen

gsutil cp -Rn <disk-top-directory> <bucket> 

Ayrıca according to this

-n   No-clobber. When specified, existing files or objects at the 
       destination will not be overwritten. Any items that are skipped 
       by this option will be reported as being skipped. This option 
       will perform an additional HEAD request to check if an item 
       exists before attempting to upload the data. This will save 
       retransmitting data, but the additional HTTP requests may make 
       small object transfers slower and more expensive. 

, gsutil otomatik olarak devam ettirilebilir aktarım modunu kullanır.

+0

Teşekkürler! Bu benim sorunumu çözdü. Bu dosyalar 2MB'nin üzerindeydi, bu yüzden ya aktarılabilir aktarım modu benim düşündüğüm bir şey değildi, ya da bir şeyler ters gitti ya da gsutil sürümüm çevrimiçi belgelerle güncelliğini yitirdi (belki de pip kullanmam nedeniyle) . Çözüme sahip olmaktan memnun oldum! – MPBall

0

(Hala beta) gsutil v4 ile çalışmaya açık iseniz, gsutil'in bu sürümü rsync komutuna sahiptir.

gsutil güncelleme gs: Sen çalıştırarak bu alabilirsiniz

bu önemli yeni sürüme geçiş yapmadan önce sürüm notlarını okumak emin olun //prerelease/gsutil_4.0beta2pre_minus_m_sugg.tar.gz, özellikle eğer' scriptlerde gsutil v3'ü kullanıyor.