using System;
using System.Collections.Generic;
using System.Text;
using COSXML.Model.Tag;
using COSXML.Common;
using COSXML.Network;
namespace COSXML.Model.Object
{
///
/// 对一个通过 COS 归档为 archive 类型的对象进行恢复
///
///
public sealed class RestoreObjectRequest : ObjectRequest
{
///
/// 用于恢复数据的配置
///
///
private RestoreConfigure restoreConfigure;
public RestoreObjectRequest(string bucket, string key)
: base(bucket, key)
{
this.method = CosRequestMethod.POST;
this.queryParameters.Add("restore", null);
restoreConfigure = new RestoreConfigure();
restoreConfigure.casJobParameters = new RestoreConfigure.CASJobParameters();
}
///
/// 设置临时副本的过期时间
///
///
public void SetExpireDays(int days)
{
if (days < 0)
{
days = 0;
}
restoreConfigure.days = days;
}
///
/// 恢复数据时,Tier 可以指定为 CAS 支持的三种恢复类型,分别为 Expedited、Standard、Bulk
///
///
///
public void SetTier(RestoreConfigure.Tier tier)
{
restoreConfigure.casJobParameters.tier = tier;
}
public void SetVersionId(string versionId)
{
if (versionId != null)
{
SetQueryParameter(CosRequestHeaderKey.VERSION_ID, versionId);
}
}
public override Network.RequestBody GetRequestBody()
{
return GetXmlRequestBody(restoreConfigure);
}
}
}