revert命令用于在开启版本控制的存储空间(Bucket)中,将已删除的文件(Object)恢复至最近的版本。
注意事项
要恢复文件的版本,您必须具有
oss:GetObject
、oss:PutObject
、oss:ListObjectVersions
和oss:DeleteObject
权限。具体操作,请参见为RAM用户授权自定义的权限策略。
命令格式
ossutil revert oss://bucket[/prefix] version-directive [flags]
参数 | 类型 | 说明 |
version-directive | string | 版本信息。取值:
|
-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