revert(恢复版本)

revert命令用于在开启版本控制的存储空间(Bucket)中,将已删除的文件(Object)恢复至最近的版本。

注意事项

命令格式

ossutil revert oss://bucket[/prefix] version-directive [flags]

参数

类型

说明

version-directive

string

版本信息。取值:

  • 版本ID,例如CAEQIBiBgICAr6yv9hgiIDZiNmUzNjM5Njg0ZDRhOWQ4Yj。

  • 版本索引,HEAD~n,即恢复到第n-1个有效版本 (不包括删除标记)。

    • 当HEAD~0时,即恢复到最近的有效版本,如果最新版本是删除标记,则通过删除删除标记恢复。

    • 当HEAD~n, n > 0 时,通过拷贝方式把指定版本拷贝成最新版本。

  • 时间索引,NOW~相对时间或NOW~绝对时间,即恢复到不大于该时间的第一个版本 (不包括删除标记)。

    • NOW~相对时间:NOW~1d,即恢复到1天前的版本。单位后缀支持:ms毫秒、s秒、m分钟、h小时、d天、w星期、M月、y年。

    • NOW~绝对时间 :NOW~2024-04-12T14:00:00,即恢复到2024-04-12T14:00:00 UTC 时间前的版本。

-d, --dirs

/

返回当前目录下的文件和子目录,而非递归显示所有子目录下的所有文件。

--encoding-type

string

输入的对象名或文件名的编码方式。取值:url。

--end-with

string

按字母排序,返回设定值之前的对象,包含设定值。

--exclude

stringArray

路径或文件名的排除规则。

--exclude-from

stringArray

从规则文件里读取排除规则。

--files-from

stringArray

从文件中读取源文件名列表,忽略空行或注释行。

--files-from-raw

stringArray

从文件中读取源文件名列表。

--filter

stringArray

路径或文件名过滤规则。

--filter-from

stringArray

从规则文件读取过滤规则。

-f, --force

/

强制操作,不进行询问提示。

--ignore-version-not-exist

/

进行批量操作时,如果版本不存在,默认报错,也可以通过--ignore-version-not-exist忽略错误。

--include

stringArray

路径或文件名的包含规则。

--include-from

stringArray

从规则文件里读取包含规则。

--max-age

Duration

不传输任何比此更早的文件,默认是秒,或单位后缀形式 ms|s|m|h|d|w|M|y(默认值off)。

--min-mtime

Time

不传输任何比此更早的文件,UTC时间格式(默认值off)。

--page-size

int

返回对象或文件的最大数(默认值1000),取值范围1~1000。

-r, --recursive

/

递归进行操作。当指定该选项时,命令会对存储空间下所有符合条件的对象进行操作,否则只对路径指定的对象进行操作。

--request-payer

string

请求的支付方式,如果为请求者付费模式,请设置该值。取值:requester。

--start-after

string

按字母排序,返回设定值之后的对象,不包含设定值。

说明

关于支持的全局命令行选项,请参见支持的全局命令行选项

更多说明:该命令不支持通过删除方式恢复到指定版本。如果您需要通过删除版本方式来恢复数据,可以通过rm命令来完成,例如:删除 key123 的前三个版本。

ossutil rm oss://bucket/key123 --end-with key123 --limited-num 3 -rf --all-versions 

使用示例

  • 对存储空间examplebucket里的example.txt对象恢复到版本号为123的状态。

    ossutil revert oss://examplebucket/example.txt 123
  • 对存储空间examplebucket里的example.txt对象恢复到最近的版本状态。

    ossutil revert oss://examplebucket/example.txt HEAD~0
  • 对存储空间examplebucket里的example.txt对象恢复到第4个旧版本状态。

    ossutil revert oss://examplebucket/example.txt HEAD~4
  • 对存储空间examplebucket里的example.txt对象恢复到一天前的第一个版本状态。

    ossutil revert oss://examplebucket/example.txt NOW~1d
  • 对存储空间examplebucket里的example.txt对象恢复到2024-04-12T14:00:00前的第一个版本状态。

    ossutil revert oss://examplebucket/example.txt NOW~2024-04-12T14:00:00
  • 对存储空间examplebucket里的dir目录下的对象恢复到第4个旧版本状态。

    ossutil revert oss://examplebucket/dir -r HEAD~4
  • 对存储空间examplebucket里的dir目录下的对象恢复到第4个旧版本状态并忽略版本不存在的错误。

    ossutil revert oss://examplebucket/dir -r HEAD~4 --ignore-version-not-exist