/** * 获取已经上传的分块列表 * **/ private static bool listMultipartUploads(string bucket, string objKey, string uploadId) { ListMultipartUploadsRequest request = new ListMultipartUploadsRequest(bucket, objKey, uploadId); ListMultipartUploadsResult result = ks3Client.getListMultipartUploads(request); return(true); }
internal GetMultipartUploadsListResponse(HttpStatusCode statusCode, string responseContent) : base(statusCode, responseContent) { ListMultipartUploadsResult uploadsResult = null; using (var stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseContent))) { uploadsResult = (ListMultipartUploadsResult) new XmlSerializer(typeof(ListMultipartUploadsResult)).Deserialize(stream); } XDocument root = XDocument.Parse(responseContent); var itemCheck = root.Root.Descendants("{http://s3.amazonaws.com/doc/2006-03-01/}Upload").FirstOrDefault(); if (uploadsResult == null || itemCheck == null || !itemCheck.HasElements) { return; } var uploads = from c in root.Root.Descendants("{http://s3.amazonaws.com/doc/2006-03-01/}Upload") select new Upload { Key = c.Element("{http://s3.amazonaws.com/doc/2006-03-01/}Key").Value, UploadId = c.Element("{http://s3.amazonaws.com/doc/2006-03-01/}UploadId").Value, Initiated = c.Element("{http://s3.amazonaws.com/doc/2006-03-01/}Initiated").Value }; this.UploadResult = new Tuple <ListMultipartUploadsResult, List <Upload> >(uploadsResult, uploads.ToList()); }
public void TestlistMultipartUploads() { if (!init()) { ListMultipartUploadsRequest request = new ListMultipartUploadsRequest(bucketName, objKeyNameFileData, "uploadid"); ListMultipartUploadsResult result = ks3Client.getListMultipartUploads(request); Assert.IsNotNull(result); } }
private Tuple <ListMultipartUploadsResult, List <Upload> > GetMultipartUploadsList(string bucketName, string prefix, string keyMarker, string uploadIdMarker, string delimiter) { var queries = new List <string>(); queries.Add("uploads"); if (prefix != null) { queries.Add("prefix=" + Uri.EscapeDataString(prefix)); } if (keyMarker != null) { queries.Add("key-marker=" + Uri.EscapeDataString(keyMarker)); } if (uploadIdMarker != null) { queries.Add("upload-id-marker=" + uploadIdMarker); } if (delimiter != null) { queries.Add("delimiter=" + delimiter); } queries.Add("max-uploads=1000"); string query = string.Join("&", queries); string path = bucketName; path += "?" + query; var request = new RestRequest(path, Method.GET); var response = client.Execute(request); if (response.StatusCode == HttpStatusCode.OK) { var contentBytes = System.Text.Encoding.UTF8.GetBytes(response.Content); var stream = new MemoryStream(contentBytes); ListMultipartUploadsResult listBucketResult = (ListMultipartUploadsResult)(new XmlSerializer(typeof(ListMultipartUploadsResult)).Deserialize(stream)); XDocument root = XDocument.Parse(response.Content); var uploads = (from c in root.Root.Descendants("{http://s3.amazonaws.com/doc/2006-03-01/}Upload") select new Upload() { Key = c.Element("{http://s3.amazonaws.com/doc/2006-03-01/}Key").Value, UploadId = c.Element("{http://s3.amazonaws.com/doc/2006-03-01/}UploadId").Value, Initiated = c.Element("{http://s3.amazonaws.com/doc/2006-03-01/}Initiated").Value }); return(new Tuple <ListMultipartUploadsResult, List <Upload> >(listBucketResult, uploads.ToList())); } throw ParseError(response); }
/// <summary> /// Get list of multi-part uploads matching particular uploadIdMarker /// </summary> /// <param name="bucketName">bucketName</param> /// <param name="prefix">prefix</param> /// <param name="keyMarker"></param> /// <param name="uploadIdMarker"></param> /// <param name="delimiter"></param> /// <param name="cancellationToken">Optional cancellation token to cancel the operation</param> /// <returns></returns> private async Task <Tuple <ListMultipartUploadsResult, List <Upload> > > GetMultipartUploadsListAsync(string bucketName, string prefix, string keyMarker, string uploadIdMarker, string delimiter, CancellationToken cancellationToken) { var queries = new List <string>(); queries.Add("uploads"); if (prefix != null) { queries.Add("prefix=" + Uri.EscapeDataString(prefix)); } if (keyMarker != null) { queries.Add("key-marker=" + Uri.EscapeDataString(keyMarker)); } if (uploadIdMarker != null) { queries.Add("upload-id-marker=" + uploadIdMarker); } if (delimiter != null) { queries.Add("delimiter=" + delimiter); } queries.Add("max-uploads=1000"); string query = string.Join("&", queries); var request = await this.CreateRequest(Method.GET, bucketName, resourcePath : "?" + query); var response = await this.ExecuteTaskAsync(this.NoErrorHandlers, request, cancellationToken); var contentBytes = System.Text.Encoding.UTF8.GetBytes(response.Content); ListMultipartUploadsResult listBucketResult = null; using (var stream = new MemoryStream(contentBytes)) listBucketResult = (ListMultipartUploadsResult)(new XmlSerializer(typeof(ListMultipartUploadsResult)).Deserialize(stream)); XDocument root = XDocument.Parse(response.Content); var uploads = (from c in root.Root.Descendants("{http://s3.amazonaws.com/doc/2006-03-01/}Upload") select new Upload() { Key = c.Element("{http://s3.amazonaws.com/doc/2006-03-01/}Key").Value, UploadId = c.Element("{http://s3.amazonaws.com/doc/2006-03-01/}UploadId").Value, Initiated = c.Element("{http://s3.amazonaws.com/doc/2006-03-01/}Initiated").Value }); return(new Tuple <ListMultipartUploadsResult, List <Upload> >(listBucketResult, uploads.ToList())); }
static async void MultipartUploadInitiate() { try { OssClient temp = new OssClient("bm9crcnr0rtnuw8bnrfvq7w8", "RbtJoExTnA8vYLynUfDh7Ior+oM="); string result = await temp.MultipartUploadInitiate("devdoc", "c# 5.0.pdf"); FileStream fs = new FileStream(@"c# 5.0.pdf", FileMode.Open); byte[] buffer = new byte[6291456]; ReadChunk(fs, buffer); MemoryStream ms = new MemoryStream(buffer); MultiUploadRequestData arg = new MultiUploadRequestData() { Bucket = "devdoc", Key = "c# 5.0.pdf", Content = ms, PartNumber = "1", UploadId = result }; MultipartUploadResult result1 = await temp.MultipartUpload(arg, callback); ListMultipartUploadsResult listMultipart = await temp.ListMultipartUploads("devdoc"); // temp.DeleteMultipartUpload(arg); //fs.Position = 6291456; //arg = new MultiUploadRequestData() { Bucket = "devdoc", Key = "c# 5.0.pdf", Content = fs, PartNumber = "2", UploadId = result }; //MultipartUploadResult result2 = await temp.MultipartUpload(arg); //ListPartsResult parts = await temp.ListMultiUploadParts("devdoc", "c# 5.0.pdf", result); //CompleteMultipartUploadModel model = new CompleteMultipartUploadModel(); //model.Parts = new List<MultipartUploadPartModel>(); //model.Parts.Add(new MultipartUploadPartModel(1, result1.ETag)); //model.Parts.Add(new MultipartUploadPartModel(2, result2.ETag)); //model.Bucket = "devdoc"; //model.Key = "c# 5.0.pdf"; //model.UploadId = result; //temp.CompleteMultipartUpload(model); // fs.Dispose(); } catch (AggregateException ex) { Console.WriteLine(ex.Message); } }
public async Task <ListMultipartUploadsResult> ListMultipartUploads(string bucketName) { ListMultipartUploadsResult result = null; OssHttpRequestMessage httpRequestMessage = null; HttpResponseMessage response = null; try { Dictionary <string, string> parameters = new Dictionary <string, string>(); parameters.Add("uploads", null); httpRequestMessage = new OssHttpRequestMessage(bucketName, null, parameters); httpRequestMessage.Method = HttpMethod.Get; httpRequestMessage.Headers.Date = DateTime.UtcNow; OssRequestSigner.Sign(httpRequestMessage, networkCredential); response = await httpClient.SendAsync(httpRequestMessage); if (response.IsSuccessStatusCode == false) { await ErrorResponseHandler.Handle(response); } var temp = DeserializerFactory.GetFactory().CreateListMultipartUploadsDeserializer(); result = await temp.Deserialize(response); } catch (Exception ex) { throw ex; } finally { if (httpRequestMessage != null) { httpRequestMessage.Dispose(); } if (response != null) { response.Dispose(); } } return(result); }
public void MarshalResponse(IConfig config, ListMultipartUploadsRequest request, ListMultipartUploadsResponse response, IDictionary <string, string> headers, Stream responseStream) { XmlSerializer s = new XmlSerializer(typeof(ListMultipartUploadsResult)); using (XmlTextReader r = new XmlTextReader(responseStream)) { r.Namespaces = false; ListMultipartUploadsResult listResult = (ListMultipartUploadsResult)s.Deserialize(r); if (listResult.EncodingType != null) { response.EncodingType = ValueHelper.ParseEnum <EncodingType>(listResult.EncodingType); } response.KeyMarker = config.AutoUrlDecodeResponses && response.EncodingType == EncodingType.Url ? WebUtility.UrlDecode(listResult.KeyMarker) : listResult.KeyMarker; response.NextKeyMarker = config.AutoUrlDecodeResponses && response.EncodingType == EncodingType.Url ? WebUtility.UrlDecode(listResult.NextKeyMarker) : listResult.NextKeyMarker; response.Prefix = config.AutoUrlDecodeResponses && response.EncodingType == EncodingType.Url ? WebUtility.UrlDecode(listResult.Prefix) : listResult.Prefix; response.Delimiter = config.AutoUrlDecodeResponses && response.EncodingType == EncodingType.Url ? WebUtility.UrlDecode(listResult.Delimiter) : listResult.Delimiter; response.Bucket = listResult.Bucket; response.UploadIdMarker = listResult.UploadIdMarker; response.NextUploadIdMarker = listResult.NextUploadIdMarker; response.MaxUploads = listResult.MaxUploads; response.IsTruncated = listResult.IsTruncated; if (listResult.CommonPrefixes != null) { response.CommonPrefixes = new List <string>(listResult.CommonPrefixes.Count); foreach (CommonPrefix prefix in listResult.CommonPrefixes) { response.CommonPrefixes.Add(prefix.Prefix); } } else { response.CommonPrefixes = Array.Empty <string>(); } if (listResult.Uploads != null) { response.Uploads = new List <S3Upload>(listResult.Uploads.Count); foreach (Upload listUpload in listResult.Uploads) { S3Upload s3Upload = new S3Upload(); s3Upload.ObjectKey = config.AutoUrlDecodeResponses && response.EncodingType == EncodingType.Url ? WebUtility.UrlDecode(listUpload.Key) : listUpload.Key; s3Upload.UploadId = listUpload.UploadId; if (listUpload.StorageClass != null) { s3Upload.StorageClass = ValueHelper.ParseEnum <StorageClass>(listUpload.StorageClass); } s3Upload.Initiated = listUpload.Initiated; if (listUpload.Owner != null) { s3Upload.Owner = new S3Identity(); s3Upload.Owner.Name = listUpload.Owner.DisplayName; s3Upload.Owner.Id = listUpload.Owner.Id; } if (listUpload.Initiator != null) { s3Upload.Initiator = new S3Identity(); s3Upload.Initiator.Name = listUpload.Initiator.DisplayName; s3Upload.Initiator.Id = listUpload.Initiator.Id; } response.Uploads.Add(s3Upload); } } else { response.Uploads = Array.Empty <S3Upload>(); } } }
public void MarshalResponse(ListMultipartUploadsRequest request, ListMultipartUploadsResponse response, IDictionary <string, string> headers, Stream responseStream) { XmlSerializer s = new XmlSerializer(typeof(ListMultipartUploadsResult)); using (XmlTextReader r = new XmlTextReader(responseStream)) { r.Namespaces = false; ListMultipartUploadsResult listResult = (ListMultipartUploadsResult)s.Deserialize(r); response.Bucket = listResult.Bucket; response.KeyMarker = listResult.KeyMarker; response.UploadIdMarker = listResult.UploadIdMarker; response.NextKeyMarker = listResult.NextKeyMarker; response.NextUploadIdMarker = listResult.NextUploadIdMarker; if (listResult.EncodingType != null) { response.EncodingType = EnumsNET.Enums.Parse <EncodingType>(listResult.EncodingType, EnumFormat.EnumMemberValue); } response.MaxUploads = listResult.MaxUploads; response.IsTruncated = listResult.IsTruncated; response.Prefix = listResult.Prefix; response.Delimiter = listResult.Delimiter; if (listResult.CommonPrefixes != null) { response.CommonPrefixes = new List <string>(listResult.CommonPrefixes.Count); foreach (CommonPrefix prefix in listResult.CommonPrefixes) { response.CommonPrefixes.Add(prefix.Prefix); } } else { response.CommonPrefixes = Array.Empty <string>(); } if (listResult.Uploads != null) { response.Uploads = new List <S3Upload>(listResult.Uploads.Count); foreach (Upload listUpload in listResult.Uploads) { S3Upload s3Upload = new S3Upload(); s3Upload.Name = listUpload.Key; s3Upload.UploadId = listUpload.UploadId; if (listUpload.StorageClass != null) { s3Upload.StorageClass = EnumsNET.Enums.Parse <StorageClass>(listUpload.StorageClass, EnumFormat.EnumMemberValue); } s3Upload.Initiated = listUpload.Initiated; if (listUpload.Owner != null) { s3Upload.Owner = new S3ObjectIdentity(); s3Upload.Owner.Name = listUpload.Owner.DisplayName; s3Upload.Owner.Id = listUpload.Owner.Id; } if (listUpload.Initiator != null) { s3Upload.Initiator = new S3ObjectIdentity(); s3Upload.Initiator.Name = listUpload.Initiator.DisplayName; s3Upload.Initiator.Id = listUpload.Initiator.Id; } response.Uploads.Add(s3Upload); } } else { response.Uploads = Array.Empty <S3Upload>(); } } }