当我执行这个命令时......
$ 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.csv文件中它们之间没有文件。
$ 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认为哪个文件无法传输。
您可以使用gsutil cp -L cp.log ...
,它将以here描述的格式记录每个操作的日志。
或者,如果您只想重新运行操作以复制未成功传输的文件,则可以考虑改为使用gsutil rsync command。