TOS中如何恢复到上一个版本的对象

问题描述

在开启版本控制的TOS桶中,一个对象的当前版本不是目前所需要的,或者当前版本对象发生错误,想要恢复至上一个版本,如何恢复?

问题分析

可以使用版本控制来保存对象的早期版本,以便需要之前版本对象时,可以进行恢复。

要恢复之前版本,有两种方法:

  1. 将对象的之前版本复制到同一存储桶中。复制的对象将成为该对象的当前版本
  2. 永久删除对象的当前版本。当删除当前对象版本时,实际上会将先前版本转换为该对象的当前版本。
解决方案

方法1

复制特定版本到相同存储桶

测试对象为alb1.pcap

1.先查看对象的版本情况:

┌──(root)-[/home/kali]
└─# aws s3api list-object-versions --bucket xxxx --endpoint-url=http://tos-s3-cn-beijing.volces.com

{
           "ETag": "\"980a3fcda3a1e8b303eff2be2ed04d78\"",
           "Size": 198882,
           "StorageClass": "STANDARD",
           "Key": "alb1.pcap",
           "VersionId": "583191D520036D96BFD6",
           "IsLatest": true,
           "LastModified": "2021-10-09T02:12:05.000Z",
           "Owner": {
               "DisplayName": "2100046944",
               "ID": "2100046944"
           }
       },
       {
           "ETag": "\"980a3fcda3a1e8b303eff2be2ed04d78\"",
           "Size": 198882,
           "StorageClass": "STANDARD",
           "Key": "alb1.pcap",
           "VersionId": "5831DEA178974C2D7B89",
           "IsLatest": false,
           "LastModified": "2021-10-08T02:44:44.000Z",
           "Owner": {
               "DisplayName": "2100046944",
               "ID": "2100046944"
           }
       },

2.执行aws s3api copy-object

┌──(rootkali)-[/home/kali]
└─# aws s3api copy-object --copy-source xxxx/alb1.pcap?versionId=5831DEA178974C2D7B89 --key alb1.pcap --bucket xxxx --endpoint-url=http://tos-s3-cn-beijing.volces.com
{
   "CopySourceVersionId": "5831DEA178974C2D7B89",// 可以看到copy的是之前版本
   "VersionId": "583190A07F3F9BF7D0D5",// 新生成的版本ID
   "CopyObjectResult": {
       "ETag": "\"980a3fcda3a1e8b303eff2be2ed04d78\"",
       "LastModified": "2021-10-09T02:34:10.000Z"
   }
}

3.查看最新版本信息

┌──(rootkali)-[/home/kali]
└─# aws s3api list-object-versions --bucket xxxx --endpoint-url=http://tos-s3-cn-beijing.volces.com
{
           "ETag": "\"980a3fcda3a1e8b303eff2be2ed04d78\"",
           "Size": 198882,
           "StorageClass": "STANDARD",
           "Key": "alb1.pcap",
           "VersionId": "583190A07F3F9BF7D0D5",// 可以看到最新版本为上面的copy
           "IsLatest": true,
           "LastModified": "2021-10-09T02:34:10.000Z",
           "Owner": {
               "DisplayName": "xxxxxxxx",
               "ID": "xxxxxxxx"
           }
       },

方法2

删除当前版本,使上一个版本变为当前版本

┌──(rootkali)-[/home/kali]
└─# aws s3api delete-object --bucket wanyix-support --key alb1.pcap --version-id 583190A07F3F9BF7D0D5 --endpoint-url=http://tos-s3-cn-beijing.volces.com
{
   "VersionId": "583190A07F3F9BF7D0D5"
}
 
┌──(rootkali)-[/home/kali]
└─# aws s3api list-object-versions --bucket xxxx --endpoint-url=http://tos-s3-cn-beijing.volces.com
 
{
           "ETag": "\"980a3fcda3a1e8b303eff2be2ed04d78\"",
           "Size": 198882,
           "StorageClass": "STANDARD",
           "Key": "alb1.pcap",
           "VersionId": "58319100C6CB64F2EAC6",// 此版本变为当前版本
           "IsLatest": true,
           "LastModified": "2021-10-09T02:27:17.000Z",
           "Owner": {
               "DisplayName": "xxxxxxxx",
               "ID": "xxxxxxxx"
           }
       },

如果您有其他问题,欢迎您联系火山引擎技术支持服务

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论