文档

revert-versioning(恢复版本)

更新时间:

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

注意事项

  • 要恢复文件的版本,您必须具有oss:ListObjectVersionsoss:DeleteObjectVersion权限。具体操作,请参见为RAM用户授权自定义的权限策略

  • 从ossutil 1.6.16版本开始,命令行中Binary名称支持直接使用ossutil,您无需根据系统刷新Binary名称。如果您的ossutil版本低于1.6.16,则需要根据系统刷新Binary名称。更多信息,请参见命令行工具ossutil命令参考

  • 关于版本控制的更多信息,请参见版本控制概述

  • 关于删除标记的更多信息,请参见删除标记

  • 当您在OSS ON云盒中使用该命令时:

    1. 将配置文件中的Endpoint替换为云盒Endpoint。更多信息,请参见云盒Endpoint

    2. 在本文已有示例的基础上添加--sign-version--region以及--cloudbox-id选项。关于这三个选项的具体用法,请参见通用选项

命令格式

ossutil revert-versioning oss://bucketname[/prefix]
[--encoding-type <value>]
[-r,--recursive]
[--start-time <value> ]
[--end-time <value>]
[--include <value>]
[--exclude <value>]
[--payer <value>]

参数及选项说明如下:

配置项

说明

bucketname

Bucket名称。

prefix

Bucket下的资源、例如目录、文件等。

--encoding-type

oss://bucket_name之后的prefix进行编码,取值为url。如果不指定该选项,则表示prefix未经过编码。

-r,--recursive

如果指定该选项时,ossutil将恢复Bucket下所有符合prefix条件的Object为最近的版本。如果不指定该选项,则ossutil只恢复指定Object为最近的版本。

--start-time

值为Linux或Unix系统下的时间戳。如果输入该选项,则删除时间早于该时间的Object会被忽略。

--end-time

值为Linux或Unix系统下的时间戳。如果输入该选项,则删除时间晚于该时间的Object会被忽略。

--include

包含符合指定条件的所有Object。

更多信息,请参见include和exclude选项

--exclude

不包含任何符合指定条件的Object。

更多信息,请参见include和exclude选项

--payer

请求的支付方式。如果希望访问指定路径下的资源产生的流量、请求次数等费用由请求者支付,请将此选项的值设置为requester

使用示例

  • 恢复示例

    • 将目标存储空间examplebucket下处于删除状态的exampleobject.jpg恢复为最近的版本。

      ossutil revert-versioning oss://examplebucket/exampleobject.jpg
    • 结合-r选项,将目标存储空间examplebucket下匹配指定前缀destdir且处于删除状态的多个Object恢复为最近的版本。

      ossutil revert-versioning oss://examplebucket/destdir -r
    • 结合-r选项,将目标存储空间examplebucket内所有处于删除状态的Object恢复为最近的版本

      ossutil revert-versioning oss://examplebucket  -r
    • 将在指定时间范围内删除的Object恢复为最近的版本

      结合-r选项,将目标存储空间examplebucket下于北京时间2020年6月16日16:22:58至2020年6月16日16:39:38内删除的Object恢复至最近的版本。

      ossutil revert-versioning oss://examplebucket -r --start-time 1592295778 --end-time 1592296778
    • 将所有匹配指定条件且已删除的Object恢复为最近的版本

      • 结合-r选项,将目标存储空间examplebucket下所有格式为TXT且已删除的Object恢复为最近的版本。

        ossutil revert-versioning oss://examplebucket --include "*.txt" -r
      • 结合-r选项,将目标存储空间examplebucket下所有格式不为JPG且已删除的Object恢复为最近的版本。

        
        ossutil revert-versioning oss://examplebucket --exclude "*.jpg" -r
  • 返回结果

    恢复成功后,返回结果中将包含恢复的Object个数以及完成恢复操作所用时长,示例如下:

    revert versioning object count is 10, batch list count is 10
    
    0.066413(s) elapsed

通用选项

当您需要通过命令行工具ossutil切换至另一个地域的Bucket时,可以通过-e选项指定该Bucket所属的Endpoint。当您需要通过命令行工具ossutil切换至另一个阿里云账号下的Bucket时,可以通过-i选项指定该账号的AccessKey ID,并通过-k选项指定该账号的AccessKey Secret。

例如您需要将另一个阿里云账号下,华东2(上海)地域下目标存储空间testbucket内处于删除状态的exampletest.png文件恢复为最近的版本,命令如下:

ossutil revert-versioning oss://testbucket/exampletest.png -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA****  -k 67DLVBkH7EamOjy2W5RVAHUY9H****

关于此命令的其他通用选项的更多信息,请参见通用选项