我已经设置了一些Nearline存储桶并启用了版本控制和对象生命周期管理。用例是替换我当前的备份解决方案Crashplan。
使用gsutil我可以使用gsutil ls -al gs://backup/test.txt
之类的命令查看文件的不同版本。
首先,是否有任何方法可以找到不具有实时版本(例如已删除)但仍附带版本的文件?
其次,有没有更简单的方法来管理版本?例如,如果我从我的PC中删除一个文件,它将不再在我的存储桶中有一个实时版本,但仍然会关联旧版本。比如说,如果我不知道文件名,我只需要对整个存储桶执行递归ls
并筛选输出?
非常喜欢支持版本控制的用户界面。
感谢。
答案 0 :(得分:0)
要检查对象当前是否没有生命版本,请使用x-goog-if-generation-match
标题等于0
,例如:
gsutil -h x-goog-if-generation-match:0 cp file.txt gs://bucket/file.txt
将失败(PreconditionException: 412 Precondition Failed
),如果文件只有存档版本,则会失败。
为了自动同步存储桶中的本地文件夹和文件夹(或其他方式),请使用gcloud rsync
:
gcloud rsync -r -d ./test gs:// bucket / test /
/
中的结尾gs://bucket/test/
,如果没有它,您将收到CommandException:arg(gs:// graham-dest / test)没有命名目录,存储桶或存储桶子目录。
-r
以递归方式将./test
中的所有目录同步到gs:// bucket / test /`
-d
将删除gs:// bucket / test / that are not found in
中的所有文件./test`
关于用户界面,已经存在future request。但是,我对第三方应用程序一无所知。