/* * Copyright (C) Alibaba Cloud Computing * All rights reserved. * * 版权所有 (C)阿里云计算有限公司 */ using System; using System.Collections.Generic; namespace Aliyun.OSS { /// <summary> /// 指定以某一Object作为上传某分块数据源的请求。 /// </summary> public class UploadPartCopyRequest { private readonly IList<string> _matchingETagConstraints = new List<string>(); private readonly IList<string> _nonmatchingETagConstraints = new List<string>(); /// <summary> /// 获取或者设置<see cref="OssObject" />所在<see cref="Bucket" />的名称。 /// </summary> public string TargetBucket { get; private set; } /// <summary> /// 获取或者设置<see cref="OssObject" />的值。 /// </summary> public string TargetKey { get; private set; } /// <summary> /// 获取或设置上传Multipart上传事件的Upload ID。 /// </summary> public string UploadId { get; private set; } /// <summary> /// 获取或设置返回上传分块(Part)的标识号码(Part Number)。 /// 每一个上传分块(Part)都有一个标识它的号码(范围1~10000)。 /// 对于同一个Upload ID,该号码不但唯一标识这一块数据,也标识了这块数据在整个文件中的 /// 相对位置。如果你用同一个Part号码上传了新的数据,那么OSS上已有的这个号码的Part数据将被覆盖。 /// </summary> public int? PartNumber { get; set; } /// <summary> /// 获取或设置返回分块(Part)数据的字节数。 /// 除最后一个Part外,其他Part最小为5MB。 /// </summary> public long? PartSize { get; set; } /// <summary> /// 获取或设置分块(Part)数据的MD5校验值。 /// </summary> public string Md5Digest { get; set; } /// <summary> /// 获取或设置拷贝源Object。 /// </summary> public string SourceKey { get; set; } /// <summary> /// 获取或设置拷贝源Bucket。 /// </summary> public string SourceBucket { get; set; } /// <summary> /// 获取或设置拷贝源Object的起始位置。 /// </summary> public long? BeginIndex { get; set; } /// <summary> /// 如果源Object的ETAG值和用户提供的ETAG相等,则执行拷贝操作; /// 否则返回412 HTTP错误码(预处理失败)。 /// </summary> public IList<string> MatchingETagConstraints { get { return _matchingETagConstraints; } } /// <summary> /// 如果源Object的ETAG值和用户提供的ETAG不相等,则执行拷贝操作; /// 否则返回412 HTTP错误码(预处理失败)。 /// </summary> public IList<string> NonmatchingETagConstraints { get { return _nonmatchingETagConstraints; } } /// <summary> /// 如果传入参数中的时间等于或者晚于文件实际修改时间,则正常传输文件,并返回200 OK; /// 否则返回412 precondition failed错误 /// </summary> public DateTime? UnmodifiedSinceConstraint { get; set; } /// <summary> /// 如果源Object自从用户指定的时间以后被修改过,则执行拷贝操作; /// 否则返回412 HTTP错误码(预处理失败)。 /// </summary> public DateTime? ModifiedSinceConstraint { get; set; } public UploadPartCopyRequest(string targetBucket, string targetKey, string sourceBucket, string sourceKey, string uploadId) { TargetBucket = targetBucket; TargetKey = targetKey; SourceBucket = sourceBucket; SourceKey = sourceKey; UploadId = uploadId; } } }