Есть ли быстрый способ определить, какой файл gsutil cp не удалось скопировать? - PullRequest
0 голосов
/ 03 апреля 2019

Когда я выполняю эту команду ...

$ cat sending.csv | gsutil -m cp -I gs://my-bucket/

Я получаю вывод, подобный этому ...

Copying file://000000000077.jpg [Content-Type=image/jpeg]...                    
CommandException: No URLs matched:                                              
Copying file://000000000086.jpg [Content-Type=image/jpeg]...

...
Copying file://000000002536.jpg [Content-Type=image/jpeg]... ETA 00:00:00       
| [261/261 files][ 41.1 MiB/ 41.1 MiB] 100% Done   3.7 MiB/s ETA 00:00:00       
Operation completed over 261 objects/41.1 MiB.                                   
CommandException: 1 file/object could not be transferred.

Мне нужно знать, какой файл не удалось передать, но я не знаюне вижу простого способа получить эту информацию.

Файл как до, так и после сообщения об ошибке был успешно передан

$ gsutil ls gs://my-bucket/000000000077.jpg
gs://my-bucket/000000000077.jpg
$ gsutil ls gs://my-bucket/000000000086.jpg
gs://my-bucket/000000000086.jpg

, и между ними не было никакого файла в sending .csvfile.

$ cat sending.csv | nl | head
...
     5  000000000077.jpg
     6  000000000086.jpg

Я попытался передать опцию -D в gsutil, но слишком много выходных данных, чтобы быстро найти отдельные файлы, которые не удалось скопировать.

Я сделал следующее, чтобы сравнить списокфайлов для отправки со списком, фактически сохраненным в корзине:

gsutil ls gs://my-bucket/*.jpg | sort | sed 's!.*/!!' > sent.csv
diff sending.csv sent.csv

, но различий не обнаружено.
Я хотел бы знать, какой файл gsutil считает, что он не смог передать.

1 Ответ

1 голос
/ 04 апреля 2019

Вы можете использовать gsutil cp -L cp.log ..., который будет записывать журнал каждой операции в формате, описанном здесь .

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

...