using COSXML.Common; using System; namespace COSXML.Model.Object { public sealed class GetObjectBytesRequest : ObjectRequest { /// /// 下载进度回调 /// private COSXML.Callback.OnProgressCallback progressCallback; public GetObjectBytesRequest(string bucket, string key) : base(bucket, key) { this.method = CosRequestMethod.GET; } /// /// 下载进度回调 /// /// public void SetCosProgressCallback(COSXML.Callback.OnProgressCallback progressCallback) { this.progressCallback = progressCallback; } internal COSXML.Callback.OnProgressCallback GetCosProgressCallback() { return progressCallback; } /// /// 下载内容范围 /// /// /// public void SetRange(long start, long end) { if (start < 0) return; if (end < start) end = -1; SetRequestHeader(CosRequestHeaderKey.RANGE, String.Format("bytes={0}-{1}", start, (end == -1 ? "" : end.ToString()))); } /// /// 下载内容的起始偏移量 /// /// public void SetRange(long start) { SetRange(start, -1); } /// /// 下载特定版本的对象 /// /// public void SetVersionId(string versionId) { if (versionId != null) { SetQueryParameter(CosRequestHeaderKey.VERSION_ID, versionId); } } /// /// 响应头部中的 Content-Type 参数 /// /// public void SetResponseContentType(string responseContentType) { if (responseContentType != null) { SetQueryParameter(CosRequestHeaderKey.RESPONSE_CONTENT_TYPE, responseContentType); } } /// /// 响应头部中的 Content-Language 参数 /// /// public void SetResponseContentLanguage(string responseContentLanguage) { if (responseContentLanguage != null) { SetQueryParameter(CosRequestHeaderKey.RESPONSE_CONTENT_LANGUAGE, responseContentLanguage); } } /// /// 响应头部中的 Cache-Control 参数 /// /// public void SetResponseCacheControl(string responseCacheControl) { if (responseCacheControl != null) { SetQueryParameter(CosRequestHeaderKey.RESPONSE_CACHE_CONTROL, responseCacheControl); } } /// /// 响应头部中的 Content-Disposition 参数 /// /// public void SetResponseContentDisposition(string responseDisposition) { if (responseDisposition != null) { SetQueryParameter(CosRequestHeaderKey.RESPONSE_CONTENT_DISPOSITION, responseDisposition); } } /// /// 响应头部中的 Content-Encoding 参数 /// /// public void SetResponseContentEncoding(string responseContentEncoding) { if (responseContentEncoding != null) { SetQueryParameter(CosRequestHeaderKey.RESPONSE_CONTENT_ENCODING, responseContentEncoding); } } /// /// 响应头部中的 Content-Expires 参数 /// /// public void SetResponseExpires(string responseExpires) { if (responseExpires != null) { SetQueryParameter(CosRequestHeaderKey.RESPONSE_EXPIRES, responseExpires); } } } }