public void SetResult(CopyObjectResult result) { this.eTag = result.copyObject.eTag; this.httpCode = result.httpCode; this.httpMessage = result.httpMessage; this.responseHeaders = result.responseHeaders; }
public void CopyObject() { try { CopySourceStruct copySource = new CopySourceStruct(QCloudServer.Instance().appid, bucket, QCloudServer.Instance().region, copykey); CopyObjectRequest request = new CopyObjectRequest(bucket, multiKey); //设置拷贝源 request.SetCopySource(copySource); //设置是否拷贝还是更新 request.SetCopyMetaDataDirective(COSXML.Common.CosMetaDataDirective.COPY); //执行请求 CopyObjectResult result = cosXml.CopyObject(request); Console.WriteLine(result.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); } }
public void MarshalResponse(IConfig config, CopyObjectResponse response, IDictionary <string, string> headers, Stream responseStream) { response.NewVersionId = headers.GetHeader(AmzHeaders.XAmzCopySourceVersionId); if (HeaderParserHelper.TryParseExpiration(headers, out (DateTimeOffset expiresOn, string ruleId)data)) { response.LifeCycleExpiresOn = data.expiresOn; response.LifeCycleRuleId = data.ruleId; } response.RequestCharged = headers.ContainsKey(AmzHeaders.XAmzRequestCharged); response.SseAlgorithm = headers.GetHeaderEnum <SseAlgorithm>(AmzHeaders.XAmzSse); response.SseKmsKeyId = headers.GetHeader(AmzHeaders.XAmzSseAwsKmsKeyId); response.SseContext = headers.GetHeader(AmzHeaders.XAmzSseContext); response.SseCustomerAlgorithm = headers.GetHeaderEnum <SseCustomerAlgorithm>(AmzHeaders.XAmzSseCustomerAlgorithm); response.SseCustomerKeyMd5 = headers.GetHeaderByteArray(AmzHeaders.XAmzSseCustomerKeyMd5, BinaryEncoding.Base64); response.VersionId = headers.GetHeader(AmzHeaders.XAmzVersionId); XmlSerializer s = new XmlSerializer(typeof(CopyObjectResult)); using (XmlTextReader r = new XmlTextReader(responseStream)) { r.Namespaces = false; CopyObjectResult deleteResult = (CopyObjectResult)s.Deserialize(r); response.LastModified = deleteResult.LastModified; response.ETag = deleteResult.ETag; } }
public static void CopyObject(COSXML.CosXml cosXml, string bucket, string key, COSXML.Model.Tag.CopySourceStruct copySource) { try { CopyObjectRequest request = new CopyObjectRequest(bucket, key); //设置签名有效时长 request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600); //设置拷贝源 request.SetCopySource(copySource); //设置是否拷贝还是更新 request.SetCopyMetaDataDirective(COSXML.Common.CosMetaDataDirective.COPY); //执行请求 CopyObjectResult result = cosXml.CopyObject(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 AsynCopyObject(COSXML.CosXml cosXml, string bucket, string key, COSXML.Model.Tag.CopySourceStruct copySource) { CopyObjectRequest request = new CopyObjectRequest(bucket, key); //设置签名有效时长 request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600); //设置拷贝源 request.SetCopySource(copySource); //设置是否拷贝还是更新 request.SetCopyMetaDataDirective(COSXML.Common.CosMetaDataDirective.COPY); cosXml.CopyObject(request, delegate(CosResult cosResult) { CopyObjectResult result = cosResult as CopyObjectResult; Console.WriteLine(result.GetResultInfo()); manualResetEvent.Set(); }, delegate(CosClientException clientEx, CosServerException serverEx) { if (clientEx != null) { Console.WriteLine("CosClientException: " + clientEx.Message); } if (serverEx != null) { Console.WriteLine("CosServerException: " + serverEx.GetInfo()); } manualResetEvent.Set(); }); }
public async Task <bool> CopyObjectAsync(string bucketName, string objectName, string destBucketName, string destObjectName = null) { if (string.IsNullOrEmpty(bucketName)) { throw new ArgumentNullException(nameof(bucketName)); } if (string.IsNullOrEmpty(objectName)) { throw new ArgumentNullException(nameof(objectName)); } if (string.IsNullOrEmpty(destBucketName)) { destBucketName = bucketName; } if (string.IsNullOrEmpty(destObjectName)) { destObjectName = objectName; } bucketName = ConvertBucketName(bucketName); CopySourceStruct copySource = new CopySourceStruct(Options.Endpoint, bucketName, Options.Region, objectName); string bucket = ConvertBucketName(destBucketName); CopyObjectRequest request = new CopyObjectRequest(bucket, destObjectName); //设置拷贝源 request.SetCopySource(copySource); //设置是否拷贝还是更新,此处是拷贝 request.SetCopyMetaDataDirective(COSXML.Common.CosMetaDataDirective.Copy); //执行请求 CopyObjectResult result = _client.CopyObject(request); return(await Task.FromResult(result.IsSuccessful())); }
private void SimpleCopy() { copyObjectRequest = new CopyObjectRequest(bucket, key); copyObjectRequest.SetCopyMetaDataDirective(Common.CosMetaDataDirective.Copy); copyObjectRequest.SetCopySource(copySource); cosXmlServer.CopyObject(copyObjectRequest, delegate(CosResult cosResult) { lock (syncExit) { if (isExit) { if (taskState == TaskState.Cancel) { DeleteObject(); } return; } } if (UpdateTaskState(TaskState.Completed)) { CopyObjectResult result = cosResult as CopyObjectResult; CopyTaskResult copyTaskResult = new CopyTaskResult(); copyTaskResult.SetResult(result); if (successCallback != null) { successCallback(copyTaskResult); } } }, delegate(CosClientException clientEx, CosServerException serverEx) { lock (syncExit) { if (isExit) { return; } } if (UpdateTaskState(TaskState.Failed)) { if (failCallback != null) { failCallback(clientEx, serverEx); } } } ); }
public void ParseXml() { string xmlText = @"<CopyObjectResult xmlns=""http://s3.amazonaws.com/doc/2006-03-01/""> <LastModified>2008-02-20T22:13:01</LastModified> <ETag>""7e9c608af58950deeb370c98608ed097""</ETag> </CopyObjectResult>" ; var result = CopyObjectResult.ParseXml(xmlText); Assert.Equal(new DateTime(2008, 02, 20, 22, 13, 01, DateTimeKind.Utc), result.LastModified); Assert.Equal(@"""7e9c608af58950deeb370c98608ed097""", result.ETag); }
private void SimpleCopy() { copyObjectRequest = new CopyObjectRequest(bucket, key); copyObjectRequest.SetCopyMetaDataDirective(Common.CosMetaDataDirective.COPY); copyObjectRequest.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600); copyObjectRequest.SetCopySource(copySource); cosXmlServer.CopyObject(copyObjectRequest, delegate(CosResult cosResult) { lock (syncExit) { if (isExit) { if (taskState == TaskState.CANCEL) { DeleteObject(); } return; } } if (UpdateTaskState(TaskState.COMPLETED)) { CopyObjectResult result = cosResult as CopyObjectResult; CopyTaskResult copyTaskResult = new CopyTaskResult(); copyTaskResult.SetResult(result); if (successCallback != null) { successCallback(copyTaskResult); } } }, delegate(CosClientException clientEx, CosServerException serverEx) { lock (syncExit) { if (isExit) { return; } } if (UpdateTaskState(TaskState.FAILED)) { if (failCallback != null) { failCallback(clientEx, serverEx); } } }); }
public void TestCopyObject() { if (init()) { CopyObjectRequest copyObjectRequest = new CopyObjectRequest(); copyObjectRequest.SourceObject = objKeyNameFileData; copyObjectRequest.SourceBucket = bucketName; copyObjectRequest.DestinationBucket = "test2-zzy-jr"; copyObjectRequest.DestinationObject = objKeyNameFileData; //CannedAccessControlList cannedAcl=new CannedAccessControlList(CannedAccessControlList.PUBLICK_READ_WRITE); //copyObjectRequest.CannedAcl = cannedAcl; CopyObjectResult result = ks3Client.copyObject(copyObjectRequest); Assert.IsNotNull(result); } }
/// 复制对象时替换对象属性 public void CopyObjectReplaced() { //.cssg-snippet-body-start:[copy-object-replaced] try { string sourceAppid = "1250000000"; //账号 appid string sourceBucket = "sourcebucket-1250000000"; //"源对象所在的存储桶 string sourceRegion = "COS_REGION"; //源对象的存储桶所在的地域 string sourceKey = "sourceObject"; //源对象键 //构造源对象属性 CopySourceStruct copySource = new CopySourceStruct(sourceAppid, sourceBucket, sourceRegion, sourceKey); string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID string key = "exampleobject"; //对象键 CopyObjectRequest request = new CopyObjectRequest(bucket, key); //设置拷贝源 request.SetCopySource(copySource); //设置是否拷贝还是更新,此处是拷贝 request.SetCopyMetaDataDirective(COSXML.Common.CosMetaDataDirective.Replaced); // 替换元数据 request.SetRequestHeader("Content-Disposition", "attachment; filename=example.jpg"); //执行请求 CopyObjectResult result = cosXml.CopyObject(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 void Rename(string oldname, string newname) { try { cosXml = GetCosXml(); string sourceAppid = _cosOptions.Appid; string sourceBucket = _cosOptions.Bucket; string sourceRegion = _cosOptions.Region; string sourceKey = GetFullKey(oldname); CopySourceStruct copySource = new CopySourceStruct(sourceAppid, sourceBucket, sourceRegion, sourceKey); string bucket = _cosOptions.Bucket; string key = GetFullKey(newname); CopyObjectRequest request = new CopyObjectRequest(bucket, key); request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), KEY_DURATION_SECOND); request.SetCopySource(copySource); request.SetCopyMetaDataDirective(COSXML.Common.CosMetaDataDirective.COPY); CopyObjectResult result = cosXml.CopyObject(request); //Console.WriteLine(result.GetResultInfo()); Delete(oldname); } catch (COSXML.CosException.CosClientException clientEx) { Logging.Log.WriteErrorMessage(LOGTAG, "Rename", clientEx, "Rename failed: {0} to {1}", oldname, newname); throw; } catch (COSXML.CosException.CosServerException serverEx) { Logging.Log.WriteErrorMessage(LOGTAG, "Rename", serverEx, "Rename failed: {0} to {1}, {2}", oldname, newname, serverEx.GetInfo()); throw; } }
/// 修改对象元数据 public void ModifyObjectMetadata() { //.cssg-snippet-body-start:[modify-object-metadata] try { string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID string key = "exampleobject"; //对象键 string appId = "1250000000"; //账号 appid string region = "COS_REGION"; //源对象的存储桶所在的地域 //构造对象属性 CopySourceStruct copySource = new CopySourceStruct(appId, bucket, region, key); CopyObjectRequest request = new CopyObjectRequest(bucket, key); //设置拷贝源 request.SetCopySource(copySource); //设置是否拷贝还是更新,此处是拷贝 request.SetCopyMetaDataDirective(COSXML.Common.CosMetaDataDirective.REPLACED); // 替换元数据 request.SetRequestHeader("Content-Disposition", "attachment; filename=example.jpg"); request.SetRequestHeader("Content-Type", "image/png"); //执行请求 CopyObjectResult result = cosXml.CopyObject(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 void ModifyObjectStorageClass() { //.cssg-snippet-body-start:[modify-object-storage-class] try { string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID string key = "exampleobject"; //对象键 string appId = "1250000000"; //账号 appid string region = "COS_REGION"; //源对象的存储桶所在的地域 //构造对象属性 CopySourceStruct copySource = new CopySourceStruct(appId, bucket, region, key); CopyObjectRequest request = new CopyObjectRequest(bucket, key); //设置拷贝源 request.SetCopySource(copySource); //设置是否拷贝还是更新,此处是拷贝 request.SetCopyMetaDataDirective(COSXML.Common.CosMetaDataDirective.REPLACED); // 修改为归档存储 request.SetCosStorageClass("ARCHIVE"); //执行请求 CopyObjectResult result = cosXml.CopyObject(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 bool copyObject() { try { Console.WriteLine("--- copyObject: ---"); CopyObjectRequest copyObjectRequest = new CopyObjectRequest(); copyObjectRequest.SourceObject = objKeyNameFileData; copyObjectRequest.SourceBucket = bucketName; copyObjectRequest.DestinationBucket = "test2-zzy-jr"; copyObjectRequest.DestinationObject = objKeyNameFileData; //CannedAccessControlList cannedAcl=new CannedAccessControlList(CannedAccessControlList.PUBLICK_READ_WRITE); //copyObjectRequest.CannedAcl = cannedAcl; CopyObjectResult result = ks3Client.copyObject(copyObjectRequest); Console.WriteLine("---------------------\n"); } catch (System.Exception e) { Console.WriteLine(e.ToString()); return(false); } return(true); }
public static void AsynCopyObject(COSXML.CosXml cosXml, string bucket, string key, COSXML.Model.Tag.CopySourceStruct copySource) { QLog.D("XIAO", String.Format("currentThread id = {0}", Thread.CurrentThread.ManagedThreadId)); CopyObjectRequest request = new CopyObjectRequest(bucket, key); //设置签名有效时长 request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600); //设置拷贝源 request.SetCopySource(copySource); //设置是否拷贝还是更新 request.SetCopyMetaDataDirective(COSXML.Common.CosMetaDataDirective.COPY); cosXml.CopyObject(request, delegate(CosResult cosResult) { CopyObjectResult result = cosResult as CopyObjectResult; Console.WriteLine(result.GetResultInfo()); Console.WriteLine(String.Format("currentThread id = {0}", Thread.CurrentThread.ManagedThreadId)); }, 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()); } Console.WriteLine(String.Format("currentThread id = {0}", Thread.CurrentThread.ManagedThreadId)); }); }