/// 完成分片拷贝任务 public void CompleteMultiUpload() { //.cssg-snippet-body-start:[complete-multi-upload] try { string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID string key = "exampleobject"; //对象键 string uploadId = "exampleUploadId"; //初始化分块上传返回的uploadId CompleteMultipartUploadRequest request = new CompleteMultipartUploadRequest(bucket, key, uploadId); //设置已上传的parts,必须有序,按照partNumber递增 request.SetPartNumberAndETag(1, this.eTag); //执行请求 CompleteMultipartUploadResult result = cosXml.CompleteMultiUpload(request); //请求成功 Console.WriteLine(result.GetResultInfo()); } catch (COSXML.CosException.CosClientException clientEx) { //请求失败 Console.WriteLine("CosClientException: " + clientEx); } catch (COSXML.CosException.CosServerException serverEx) { //请求失败 Console.WriteLine("CosServerException: " + serverEx.GetInfo()); } //.cssg-snippet-body-end }
public static void AsynCompleteMultiUpload(COSXML.CosXml cosXml, string bucket, string key, string uploadId, Dictionary <int, string> partNumberAndEtags) { CompleteMultipartUploadRequest request = new CompleteMultipartUploadRequest(bucket, key, uploadId); //设置签名有效时长 request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600); //设置已上传的parts request.SetPartNumberAndETag(partNumberAndEtags); //执行请求 cosXml.CompleteMultiUpload(request, delegate(CosResult result) { CompleteMultipartUploadResult getObjectResult = result as CompleteMultipartUploadResult; Console.WriteLine(getObjectResult.GetResultInfo()); QLog.D("XIAO", result.GetResultInfo()); }, delegate(CosClientException clientEx, CosServerException serverEx) { if (clientEx != null) { QLog.D("XIAO", clientEx.Message); Console.WriteLine("CosClientException: " + clientEx.StackTrace); } if (serverEx != null) { QLog.D("XIAO", serverEx.Message); Console.WriteLine("CosServerException: " + serverEx.GetInfo()); } }); }
public static void CompleteMultiUpload(COSXML.CosXml cosXml, string bucket, string key, string uploadId, Dictionary <int, string> partNumberAndEtags) { try { CompleteMultipartUploadRequest request = new CompleteMultipartUploadRequest(bucket, key, uploadId); //设置签名有效时长 request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600); //设置已上传的parts request.SetPartNumberAndETag(partNumberAndEtags); //执行请求 CompleteMultipartUploadResult result = cosXml.CompleteMultiUpload(request); Console.WriteLine(result.GetResultInfo()); } catch (COSXML.CosException.CosClientException clientEx) { QLog.D("XIAO", clientEx.Message); Console.WriteLine("CosClientException: " + clientEx.StackTrace); } catch (COSXML.CosException.CosServerException serverEx) { QLog.D("XIAO", serverEx.Message); Console.WriteLine("CosServerException: " + serverEx.GetInfo()); } }
public void PartCopyObject(COSXML.CosXml cosXml, string bucket, string key, COSXML.Model.Tag.CopySourceStruct copySource) { try { InitMultipartUploadRequest initMultipartUploadRequest = new InitMultipartUploadRequest(bucket, key); //设置签名有效时长 initMultipartUploadRequest.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600); //执行请求 InitMultipartUploadResult initMultipartUploadResult = cosXml.InitMultipartUpload(initMultipartUploadRequest); Console.WriteLine(initMultipartUploadResult.GetResultInfo()); string uploadId = initMultipartUploadResult.initMultipartUpload.uploadId; int partNumber = 1; UploadPartCopyRequest uploadPartCopyRequest = new UploadPartCopyRequest(bucket, key, partNumber, uploadId); //设置签名有效时长 uploadPartCopyRequest.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600); //设置拷贝源 uploadPartCopyRequest.SetCopySource(copySource); //设置拷贝范围 uploadPartCopyRequest.SetCopyRange(0, 10); //执行请求 UploadPartCopyResult uploadPartCopyResult = cosXml.PartCopy(uploadPartCopyRequest); Console.WriteLine(uploadPartCopyResult.GetResultInfo()); string eTag = uploadPartCopyResult.copyObject.eTag; CompleteMultipartUploadRequest completeMultiUploadRequest = new CompleteMultipartUploadRequest(bucket, key, uploadId); //设置签名有效时长 completeMultiUploadRequest.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600); //设置已上传的parts completeMultiUploadRequest.SetPartNumberAndETag(partNumber, eTag); //执行请求 CompleteMultipartUploadResult completeMultiUploadResult = cosXml.CompleteMultiUpload(completeMultiUploadRequest); Console.WriteLine(completeMultiUploadResult.GetResultInfo()); } catch (COSXML.CosException.CosClientException clientEx) { Console.WriteLine("CosClientException: " + clientEx.Message); Assert.True(false); } catch (COSXML.CosException.CosServerException serverEx) { Console.WriteLine("CosServerException: " + serverEx.GetInfo()); Assert.True(false); } }
public void PartCopyObject() { string key = commonKey; CopySourceStruct copySource = new CopySourceStruct(QCloudServer.Instance().appid, bucket, QCloudServer.Instance().region, copykey); try { InitMultipartUploadRequest initMultipartUploadRequest = new InitMultipartUploadRequest(bucket, key); //执行请求 InitMultipartUploadResult initMultipartUploadResult = cosXml.InitMultipartUpload(initMultipartUploadRequest); Console.WriteLine(initMultipartUploadResult.GetResultInfo()); string uploadId = initMultipartUploadResult.initMultipartUpload.uploadId; int partNumber = 1; UploadPartCopyRequest uploadPartCopyRequest = new UploadPartCopyRequest(bucket, key, partNumber, uploadId); //设置拷贝源 uploadPartCopyRequest.SetCopySource(copySource); //设置拷贝范围 uploadPartCopyRequest.SetCopyRange(0, 10); //执行请求 UploadPartCopyResult uploadPartCopyResult = cosXml.PartCopy(uploadPartCopyRequest); Console.WriteLine(uploadPartCopyResult.GetResultInfo()); string eTag = uploadPartCopyResult.copyObject.eTag; CompleteMultipartUploadRequest completeMultiUploadRequest = new CompleteMultipartUploadRequest(bucket, key, uploadId); //设置已上传的parts completeMultiUploadRequest.SetPartNumberAndETag(partNumber, eTag); //执行请求 CompleteMultipartUploadResult completeMultiUploadResult = cosXml.CompleteMultiUpload(completeMultiUploadRequest); Console.WriteLine(completeMultiUploadResult.GetResultInfo()); } catch (COSXML.CosException.CosClientException clientEx) { Console.WriteLine("CosClientException: " + clientEx.Message); Assert.True(false); } catch (COSXML.CosException.CosServerException serverEx) { Console.WriteLine("CosServerException: " + serverEx.GetInfo()); Assert.True(false); } }
public void MultiUpload() { string key = multiKey; try { InitMultipartUploadRequest initMultipartUploadRequest = new InitMultipartUploadRequest(bucket, multiKey); //执行请求 InitMultipartUploadResult initMultipartUploadResult = cosXml.InitMultipartUpload(initMultipartUploadRequest); Console.WriteLine(initMultipartUploadResult.GetResultInfo()); string uploadId = initMultipartUploadResult.initMultipartUpload.uploadId; ListPartsRequest listPartsRequest = new ListPartsRequest(bucket, key, uploadId); //执行请求 ListPartsResult listPartsResult = cosXml.ListParts(listPartsRequest); Console.WriteLine(listPartsResult.GetResultInfo()); int partNumber = 1; UploadPartRequest uploadPartRequest = new UploadPartRequest(bucket, key, partNumber, uploadId, bigFileSrcPath); //设置进度回调 uploadPartRequest.SetCosProgressCallback(delegate(long completed, long total) { Console.WriteLine(String.Format("{0} progress = {1} / {2} : {3:##.##}%", DateTime.Now.ToString(), completed, total, completed * 100.0 / total)); }); //执行请求 UploadPartResult uploadPartResult = cosXml.UploadPart(uploadPartRequest); Console.WriteLine(uploadPartResult.GetResultInfo()); string eTag = uploadPartResult.eTag; CompleteMultipartUploadRequest completeMultiUploadRequest = new CompleteMultipartUploadRequest(bucket, key, uploadId); //设置已上传的parts completeMultiUploadRequest.SetPartNumberAndETag(partNumber, eTag); //执行请求 CompleteMultipartUploadResult completeMultiUploadResult = cosXml.CompleteMultiUpload(completeMultiUploadRequest); Console.WriteLine(completeMultiUploadResult.GetResultInfo()); } catch (COSXML.CosException.CosClientException clientEx) { Console.WriteLine("CosClientException: " + clientEx.StackTrace); Assert.True(false); } catch (COSXML.CosException.CosServerException serverEx) { Console.WriteLine("CosServerException: " + serverEx.GetInfo()); Assert.True(false); } }