Google 云存储:gsutil cp -n 不 "skip existing" 或显示正在上传的文件
Google cloud storage: gsutil cp -n doesn't "skip existing" or display files being uploaded
恢复上传时(已经有大约 2GB,从 40Gb 的 7,000 个文件中上传了 2,000 个文件)cp
不会像以前一样显示 "skipping existing files" 的列表。此外,gsutil 消息 [xx/7.3k files][xx MiB/ 40GiB]
不会从停止时离开的地方开始(ei:[2k/7.3k files][2GiB/ 40GiB]
),而是从头开始:[00/7.3k files][00 MiB/ 40GiB]
。
我检查了 https://console.cloud.google.com/storage/browser
上的上传:没有什么奇怪的,正在上传新文件,昨天发送的文件还在。那为什么gsutil不说网上已经有2GiB和2k的文件了?
此外,cp
命令不会像以前那样显示当前正在上传的文件。知道为什么吗? (虽然 rsync 可以)
这是我的cp命令gsutil -m cp -r -n "MyLocalFolder" gs://my_bucket/Backup
我也没有修改我的本地文件夹,也没有修改它包含的文件。
我 运行 遇到的另一个问题是 -m rsync -r
命令试图上传已经存在的文件而不是跳过它们。为了进行调试,我在 cp
和 rsync
命令之间切换了几次,而 rsync
没有完全考虑到 cp
命令已经上传的内容:它不断上传现有的文件。那么 cp
和 rsync
是否有不同的校验和?如果不是,如何解释这种行为?
第二个问题的解决方法:
事实上,我对 cp 和 rsync 使用了相同的目标,但构建方式不同:
如果 cp 命令是 gsutil -m cp -r -n "MyLocalFolder" gs://my_bucket/Backup
那么 rsync 命令是 gsutil -m rsync -r "MyLocalFolder" gs://my_bucket/Backup/MyLocalFolder
gsutil cp -n
仍然需要发现它需要上传的本地文件夹中的哪些文件(因为文件夹的内容可能已更改),因此如果您重复该命令并且目标中有一些现有文件bucket,它仍然需要枚举本地文件,即使它要跳过它们。这就是为什么它不以 [2k / 7.3k files] [2GiB / 40GiB]
.
这样的开头
不过,对于已经存在的项目,它仍应输出“Skipping existing item
”。
rsync
使用与 cp 相同的校验和逻辑,因此我怀疑您没有将文件上传到完全相同的目的地。
gsutil
4.21 版更改了 cp
和 rsync
命令以显示摘要信息,而不是每个文件的单独进度打印,这往往会打印大量信息终端,特别是当使用 -m
标志时。
恢复上传时(已经有大约 2GB,从 40Gb 的 7,000 个文件中上传了 2,000 个文件)cp
不会像以前一样显示 "skipping existing files" 的列表。此外,gsutil 消息 [xx/7.3k files][xx MiB/ 40GiB]
不会从停止时离开的地方开始(ei:[2k/7.3k files][2GiB/ 40GiB]
),而是从头开始:[00/7.3k files][00 MiB/ 40GiB]
。
我检查了 https://console.cloud.google.com/storage/browser
上的上传:没有什么奇怪的,正在上传新文件,昨天发送的文件还在。那为什么gsutil不说网上已经有2GiB和2k的文件了?
此外,cp
命令不会像以前那样显示当前正在上传的文件。知道为什么吗? (虽然 rsync 可以)
这是我的cp命令gsutil -m cp -r -n "MyLocalFolder" gs://my_bucket/Backup
我也没有修改我的本地文件夹,也没有修改它包含的文件。
我 运行 遇到的另一个问题是 -m rsync -r
命令试图上传已经存在的文件而不是跳过它们。为了进行调试,我在 cp
和 rsync
命令之间切换了几次,而 rsync
没有完全考虑到 cp
命令已经上传的内容:它不断上传现有的文件。那么 cp
和 rsync
是否有不同的校验和?如果不是,如何解释这种行为?
第二个问题的解决方法:
事实上,我对 cp 和 rsync 使用了相同的目标,但构建方式不同:
如果 cp 命令是 gsutil -m cp -r -n "MyLocalFolder" gs://my_bucket/Backup
那么 rsync 命令是 gsutil -m rsync -r "MyLocalFolder" gs://my_bucket/Backup/MyLocalFolder
gsutil cp -n
仍然需要发现它需要上传的本地文件夹中的哪些文件(因为文件夹的内容可能已更改),因此如果您重复该命令并且目标中有一些现有文件bucket,它仍然需要枚举本地文件,即使它要跳过它们。这就是为什么它不以 [2k / 7.3k files] [2GiB / 40GiB]
.
不过,对于已经存在的项目,它仍应输出“Skipping existing item
”。
rsync
使用与 cp 相同的校验和逻辑,因此我怀疑您没有将文件上传到完全相同的目的地。
gsutil
4.21 版更改了 cp
和 rsync
命令以显示摘要信息,而不是每个文件的单独进度打印,这往往会打印大量信息终端,特别是当使用 -m
标志时。