На резюме gsutil кажется для повторной загрузки файлов

Я пытаюсь загрузить данные в Google Cloud Storage с диска с ~3000 файлов общим объемом 1 ТБ. Я использую gsutil cp -R <disk-top-directory> <bucket>. Мое понимание таково, если gsutil возобновить/перезапустить, он использует контрольные суммы, чтобы определить, когда файл уже загружен и пропускает его.

похоже, что это не так: похоже, что он возобновляет загрузку сверху и снова заменяет файлы. Когда я бегу последовательно gsutil ls -Rl <bucket/disk-top-directory> десять минут друг от друга и сравнивать их с diff, Я вижу, что это те же файлы с теми же размерами, но измененной (более новой) датой. (т. е. согласуется с тем же файлом, который повторно загружается.)

например:

<  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

машина, которую я использую для чтения диска и передачи файлов, работает под управлением Ubuntu 13.10. Я установил gsutil, используя инструкции pip для Debian и Ubuntu.

я неправильно понимаю, как возобновляемые переводы gsutil должны работать? Если нет, любой диагноз и исправление, чтобы получить правильный возобновить поведение? Заранее спасибо!

2 ответов


вам нужно использовать переключатель-n (No-clobber), чтобы предотвратить повторную загрузку объектов, которые уже существуют в месте назначения.

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

из справки (gsutil help cp)

-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.

и по этому, при передаче файлов через 2 МБ, gsutil автоматически использует возобновляемый режим передачи.


Если вы открыты для работы с (все еще бета-версией) gsutil v4, эта версия gsutil имеет команду rsync. Вы можете получить это, запустив:

gsutil update gs:/ / предварительная версия / gsutil_4.0beta2pre_minus_m_sugg.смола.gz

пожалуйста, не забудьте прочитать заметки о выпуске перед переключением на этот основной новый выпуск, особенно если вы используете gsutil v3 в скриптах.