为什么gsutil rsync会重新下载我们所有的文件?

Igo*_*ark 6 google-cloud-storage gsutil google-cloud-platform osx-elcapitan

我们一直在使用gsutil -m rsync -r开发和部署盒子与GCS桶同步近两年没有任何问题.桶中有大约85k个物体.

直到最近,这完美地运行了:我们每隔15分左右运行一个部署框 - > GCS rsync,以备份所有新上传的资源,然后每当我们想要刷新本地时再使用GCS - > dev框rsync dev数据(在OSX El Capitan上运行).

然而,在过去的几个月里,GCS-> dev rsync开始膨胀,下载越来越多的图像.

最初我只是觉得"很棒,我们上传了更多的资源",但它的增长速度比数据快,直到今天它似乎正在下载整个85k图像.

我已经仔细检查过我在正确的位置,命令是否正确,路径是否正确等等.对于所有gsutil输出都是通过"复制..."和"正在下载... "消息,好好并行使用我们的100mbps连接,当我find . -type f | wc -l每隔10秒去另一个终端并在目标目录上运行时,它表明每分钟只添加2或3个新文件.我看一下gsutil说它现在正在下载的文件的修改时间,大多数时候它们都已经过时了,很多都没有在一年或更长时间内发生变化.含义:它使用大量的时间和带宽下载所有数据,所有这些都是为了几百个文件.

最近的OSX gsutil版本有什么变化吗?可能有错误吗?我怎么会开始跟踪这个呢?还是报道呢?新闻组gsutil-discussgs-discussion已存档,并在谈话gce-discussion是所有关于使用gsutil从GCE实例.

谢谢!

ale*_*xtk 5

我有一个类似的问题,即一遍又一遍地同步相同的文件。我没有那么多文件,因此您可能需要检查性能,但是我决定使用该-c选项来强制使用校验和,而不是在构建过程中在本地修改的mtime。我认为(并希望)该文档略有错误,指出

如果源和目标的大小以及mtime匹配,则比较文件的校验和

因为它似乎使用校验和,即使mtime不匹配


Tra*_*rla 1

gsutil 4.20(2016-07-20发布)修改了rsync的更改检测算法。现在,它不再只比较本地文件与其云对应文件的大小,而是比较本地文件的大小和文件修改时间。当使用 rsync 上传文件时,文件修改时间存储在文件的自定义用户元数据中。如果不存在,则使用对象创建时间。