如何通过gsutil CLI复制Google Cloud Storage的指定非最新版Blob
Google Cloud Storage 指定版本文件复制方法
完全可以直接复制GCS中特定版本的文件,无需先恢复旧版本,你提到的通过-v获取版本信息再复制的思路是可行的,具体操作如下:
1. 获取文件的所有版本列表
用gsutil ls -v命令列出目标文件的所有版本,命令如下:
gsutil ls -v gs://my-bucket/foo-bar.py
执行后会输出每个版本的详细信息,格式类似:
gs://my-bucket/foo-bar.py#1620000000000000 2021-05-03T12:00:00Z gs://my-bucket/foo-bar.py#1610000000000000 2021-01-08T09:30:00Z ...
其中#后面的字符串是版本ID,列表中从上到下对应版本从新到旧。如果文件有30个版本,第29个版本就是列表里倒数第2个条目(最新版本是第1个)。
2. 复制指定版本的文件
拿到目标版本的ID后,直接在复制命令中通过#版本ID的格式指定该版本,无需恢复,命令格式:
gsutil -m cp gs://my-bucket/foo-bar.py#你的目标版本ID ./
举个例子,要复制版本ID为1610000000000000的文件,命令就是:
gsutil -m cp gs://my-bucket/foo-bar.py#1610000000000000 ./
补充说明:-A选项用于批量复制所有版本,但如果只需要单个特定版本,上述方法更高效,全程不需要修改原文件的版本状态,直接复制指定版本到目标位置即可。
内容的提问来源于stack exchange,提问作者Stickleback
相关产品推荐
相关产品推荐

