You need to enable JavaScript to run this app.
导航
恢复对象(.Net SDK)
最近更新时间:2024.07.24 16:10:35首次发布时间:2024.07.24 16:10:35

对冷归档对象进行恢复,恢复之后可以通过下载对象接口获取到对象。通过参数可以指定不同的取回方式。

注意事项

  • 第一次调用 RestoreObject 接口,返回 202。如果文件正在恢复中,再次调用 RestoreObject 接口,会返回 409 错误。如果对象已完成恢复,再次调用 RestoreObject 接口返回 200 OK。
  • 对于开启多版本的桶,可以通过指定 VersionId 恢复指定版本的对象,如果未指定 VersionId,默认恢复当前对象。

示例代码

以下代码用于恢复对象。

using System;
using TOS;
using TOS.Error;
using TOS.Model;

namespace ConsoleApp
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            var ak = Environment.GetEnvironmentVariable("TOS_ACCESS_KEY");
            var sk = Environment.GetEnvironmentVariable("TOS_SECRET_KEY");
            // endpoint 若没有指定HTTP协议(HTTP/HTTPS),默认使用 HTTPS
            // Bucket 的 Endpoint,以华北2(北京)为例:https://tos-cn-beijing.volces.com
            var endpoint = "https://tos-cn-beijing.volces.com";
            var region = "cn-beijing";
            // 填写 BucketName
            var bucketName = "*** Provide your bucket name ***";
            // 填写对象名
            var objectKey = "*** Provide your object key ***";

            // 创建TOSClient实例
            var client = TosClientBuilder.Builder().SetAk(ak).SetSk(sk).SetEndpoint(endpoint).SetRegion(region).Build();

            try
            {
                // 设置对象恢复
                var restoreObjectInput = new RestoreObjectInput
                {
                    Bucket = bucketName,
                    Key = objectKey,
                    // 指定对象的恢复天数
                    Days = 1,
                    // 如果桶开启的多版本,通过设置 VersionID 来设置指定版本
                    VersionID = "",
                };

                var restoreObjectOutput = client.RestoreObject(restoreObjectInput);
                Console.WriteLine("RestoreObject succeeded, Request ID {0}", restoreObjectOutput.RequestID);
            }
            catch (TosServerException ex)
            {
                Console.WriteLine("RestoreObject failed, Request ID {0}", ex.RequestID);
                Console.WriteLine("RestoreObject failed, Status Code {0}", ex.StatusCode);
                Console.WriteLine("RestoreObject failed, Response Error Code {0}", ex.Code);
                Console.WriteLine("RestoreObject failed, Response Error Message {0}", ex.Message);
            }
            catch (TosClientException ex)
            {
                Console.WriteLine("RestoreObject failed, Error Message {0}", ex.Message);
            }
            catch (Exception ex)
            {
                Console.WriteLine("RestoreObject failed, {0}", ex.Message);
            }
        }
    }
}

相关文档

关于恢复对象接口的详细介绍,请参见 RestoreObject