API | 작업명 | 작업 설명 |
객체 간편 업로드 | 하나의 객체를 버킷에 업로드 | |
폼을 사용한 객체 업로드 | 폼을 사용한 객체 업로드 요청 | |
객체 복사 설정(객체 속성 수정) | 파일을 타깃 경로에 복사 | |
객체 추가 업로드 | 멀티파트에 추가하는 방식으로 객체 업로드 |
API | 작업명 | 작업 설명 |
멀티파트 업로드 조회 | 현재 진행 중인 멀티파트 업로드 정보 조회 | |
멀티파트 업로드 초기화 | 멀티파트 업로드 작업 초기화 | |
멀티파트 업로드 | 객체 멀티파트 업로드 | |
멀티파트 복사 | 다른 객체를 한 파트로 복사 | |
업로드된 파트 조회 | 특정 멀티파트 업로드 작업에서 업로드된 파트 조회 | |
멀티파트 업로드 완료 | 전체 파일의 멀티파트 업로드 완료 | |
멀티파트 업로드 중지 | 하나의 멀티파트 업로드 작업 중지 및 이미 업로드한 파트 삭제 |
// TransferConfig 초기화TransferConfig transferConfig = new TransferConfig();//멀티파트 업로드 임계값은 수동으로 설정하며 기본값은 5MB입니다. 임계값보다 작은 객체는 간편 업로드를 사용하고 임계값보다 큰 객체는 멀티파트 업로드를 사용합니다.transferConfig.DivisionForUpload = 5242880;//고급 인터페이스의 자동 멀티파트 크기는 수동으로 설정하며 기본값은 1MB입니다.transferConfig.SliceSizeForUpload = 2097152;// TransferManager 초기화TransferManager transferManager = new TransferManager(cosXml, transferConfig);String bucket = "examplebucket-1250000000"; //버킷. 형식: BucketName-APPIDString cosPath = "exampleobject"; //버킷 내 객체 위치 식별자. 즉, 객체 키String srcPath = @"temp-source-file";//로컬 파일 절대 경로// 객체 업로드COSXMLUploadTask uploadTask = new COSXMLUploadTask(bucket, cosPath);uploadTask.SetSrcPath(srcPath);uploadTask.progressCallback = delegate (long completed, long total){Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));};try {COSXML.Transfer.COSXMLUploadTask.UploadTaskResult result = awaittransferManager.UploadAsync(uploadTask);Console.WriteLine(result.GetResultInfo());string eTag = result.eTag;} catch (Exception e) {Console.WriteLine("CosException: " + e);}
try{String bucket = "examplebucket-1250000000"; //버킷. 형식: BucketName-APPIDstring cosPath = "exampleObject"; // 객체 키.byte[] data = new byte[1024]; // 이진법 데이터.PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, cosPath, data);cosXml.PutObject(putObjectRequest);}catch (COSXML.CosException.CosClientException clientEx){//요청 실패Console.WriteLine("CosClientException: " + clientEx);}catch (COSXML.CosException.CosServerException serverEx){//요청 실패Console.WriteLine("CosServerException: " + serverEx.GetInfo());}
uploadTask.Pause();
uploadTask.Resume();
uploadTask.Cancel();
TransferConfig transferConfig = new TransferConfig();// TransferManager 초기화TransferManager transferManager = new TransferManager(cosXml, transferConfig);String bucket = "examplebucket-1250000000"; //버킷. 형식: BucketName-APPIDfor (int i = 0; i < 5; i++) {// 객체 업로드string cosPath = "exampleobject" + i; //버킷 내 객체 위치 식별자. 즉, 객체 키.string srcPath = @"temp-source-file";//로컬 파일 절대 경로COSXMLUploadTask uploadTask = new COSXMLUploadTask(bucket, cosPath);uploadTask.SetSrcPath(srcPath);await transferManager.UploadAsync(uploadTask);}
try{String bucket = "examplebucket-1250000000"; //버킷. 형식: BucketName-APPIDstring cosPath = "dir/"; // 객체 키.PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, cosPath, new byte[0]);cosXml.PutObject(putObjectRequest);}catch (COSXML.CosException.CosClientException clientEx){//요청 실패Console.WriteLine("CosClientException: " + clientEx);}catch (COSXML.CosException.CosServerException serverEx){//요청 실패Console.WriteLine("CosServerException: " + serverEx.GetInfo());}
// TransferConfig 초기화TransferConfig transferConfig = new TransferConfig();//멀티파트 복사 임계값은 수동으로 설정하며 기본값은 5MB입니다. 임계값보다 작은 객체는 간편 복사를 사용하고 임계값보다 큰 객체는 멀티파트 복사를 사용합니다.transferConfig.DivisionForCopy = 5242880;//고급 인터페이스의 자동 멀티파트 크기는 수동으로 설정하며 기본값은 2MB입니다.transferConfig.SliceSizeForCopy = 2097152;// TransferManager 초기화TransferManager transferManager = new TransferManager(cosXml, transferConfig);string sourceAppid = "1250000000"; //계정 appidstring sourceBucket = "sourcebucket-1250000000"; //"원본 객체가 있는 버킷string sourceRegion = "COS_REGION"; //원본 객체의 버킷이 있는 리전string sourceKey = "sourceObject"; //원본 객체 키//원본 객체 속성 구성CopySourceStruct copySource = new CopySourceStruct(sourceAppid, sourceBucket,sourceRegion, sourceKey);string bucket = "examplebucket-1250000000"; //타깃 버킷. 포맷: BucketName-APPIDstring key = "exampleobject"; //타깃 객체의 객체 키COSXMLCopyTask copytask = new COSXMLCopyTask(bucket, key, copySource);try {COSXML.Transfer.COSXMLCopyTask.CopyTaskResult result = awaittransferManager.CopyAsync(copytask);Console.WriteLine(result.GetResultInfo());string eTag = result.eTag;} catch (Exception e) {Console.WriteLine("CosException: " + e);}
/로 끝날 수 없습니다. 그렇지 않을 경우 폴더로 인식될 수 있습니다.try{String bucket = "examplebucket-1250000000"; //버킷. 형식: BucketName-APPIDstring key = "exampleobject"; //객체 키string srcPath = @"temp-source-file";//로컬 파일 절대 경로PutObjectRequest request = new PutObjectRequest(bucket, key, srcPath);//진행율 콜백 설정.request.SetCosProgressCallback(delegate (long completed, long total){Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));});//실행 요청PutObjectResult result = cosXml.PutObject(request);//객체의 eTag.string eTag = result.eTag;}catch (COSXML.CosException.CosClientException clientEx){//요청 실패Console.WriteLine("CosClientException: " + clientEx);}catch (COSXML.CosException.CosServerException serverEx){//요청 실패Console.WriteLine("CosServerException: " + serverEx.GetInfo());}
try{String bucket = "examplebucket-1250000000"; //버킷. 형식: BucketName-APPIDstring key = "exampleobject"; //객체 키string srcPath = @"temp-source-file";//로컬 파일 절대 경로PostObjectRequest request = new PostObjectRequest(bucket, key, srcPath);//진행률 콜백 설정.request.SetCosProgressCallback(delegate (long completed, long total){Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));});//실행 요청PostObjectResult result = cosXml.PostObject(request);//요청 완료Console.WriteLine(result.GetResultInfo());}catch (COSXML.CosException.CosClientException clientEx){//요청 실패Console.WriteLine("CosClientException: " + clientEx);}catch (COSXML.CosException.CosServerException serverEx){//요청 실패Console.WriteLine("CosServerException: " + serverEx.GetInfo());}
try{string sourceAppid = "1250000000"; //계정 appidstring sourceBucket = "sourcebucket-1250000000"; //"원본 객체가 있는 버킷string sourceRegion = "COS_REGION"; //원본 객체의 버킷이 있는 리전string sourceKey = "sourceObject"; //원본 객체 키//원본 객체 속성 구성CopySourceStruct copySource = new CopySourceStruct(sourceAppid, sourceBucket,sourceRegion, sourceKey);String bucket = "examplebucket-1250000000"; //버킷. 형식: BucketName-APPIDstring key = "exampleobject"; //객체 키CopyObjectRequest request = new CopyObjectRequest(bucket, key);// 복사 소스 설정.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);}catch (COSXML.CosException.CosServerException serverEx){//요청 실패Console.WriteLine("CosServerException: " + serverEx.GetInfo());}
try{string sourceAppid = "1250000000"; //계정 appidstring sourceBucket = "sourcebucket-1250000000"; //"원본 객체가 있는 버킷string sourceRegion = "COS_REGION"; //원본 객체의 버킷이 있는 리전string sourceKey = "sourceObject"; //원본 객체 키//원본 객체 속성 구성CopySourceStruct copySource = new CopySourceStruct(sourceAppid, sourceBucket,sourceRegion, sourceKey);String bucket = "examplebucket-1250000000"; //버킷. 형식: BucketName-APPIDstring 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());}
try{String bucket = "examplebucket-1250000000"; //버킷. 형식: BucketName-APPIDstring 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());}
try{String bucket = "examplebucket-1250000000"; //버킷. 형식: BucketName-APPIDstring 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);// CAS로 수정.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());}
try{String bucket = "examplebucket-1250000000"; //버킷. 형식: BucketName-APPIDstring key = "exampleobject"; //객체 키string srcPath = @"temp-source-file";//로컬 파일 절대 경로//최초 append 업로드는, 추가 위치를 0으로 하고, appendable 객체를 생성합니다.long next_append_position = 0;AppendObjectRequest request = new AppendObjectRequest(bucket, key, srcPath, next_append_position);//진행률 콜백 설정.request.SetCosProgressCallback(delegate (long completed, long total){Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));});AppendObjectResult result = cosXml.AppendObject(request);//다음 추가 위치 가져오기.next_append_position = result.nextAppendPosition;Console.WriteLine(result.GetResultInfo());//추가 작업 실행. 이전에 획득한 객체의 끝에 전달.request = new AppendObjectRequest(bucket, key, srcPath, next_append_position);request.SetCosProgressCallback(delegate (long completed, long total){Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));});result = cosXml.AppendObject(request);Console.WriteLine(result.GetResultInfo());}catch (COSXML.CosException.CosClientException clientEx){//요청 실패Console.WriteLine("CosClientException: " + clientEx);}catch (COSXML.CosException.CosServerException serverEx){//요청 실패Console.WriteLine("CosServerException: " + serverEx.GetInfo());}
try{string bucket = "examplebucket-1250000000"; //형식: BucketName-APPIDListMultiUploadsRequest request = new ListMultiUploadsRequest(bucket);//실행 요청ListMultiUploadsResult result = cosXml.ListMultiUploads(request);//요청 완료Console.WriteLine(result.GetResultInfo());}catch (COSXML.CosException.CosClientException clientEx){//요청 실패Console.WriteLine("CosClientException: " + clientEx);}catch (COSXML.CosException.CosServerException serverEx){//요청 실패Console.WriteLine("CosServerException: " + serverEx.GetInfo());}
try{String bucket = "examplebucket-1250000000"; //버킷. 형식: BucketName-APPIDstring key = "exampleobject"; //객체 키InitMultipartUploadRequest request = new InitMultipartUploadRequest(bucket, key);//실행 요청InitMultipartUploadResult result = cosXml.InitMultipartUpload(request);//요청 완료this.uploadId = result.initMultipartUpload.uploadId; //후속 멀티파트 업로드에 사용할 uploadId.Console.WriteLine(result.GetResultInfo());}catch (COSXML.CosException.CosClientException clientEx){//요청 실패Console.WriteLine("CosClientException: " + clientEx);}catch (COSXML.CosException.CosServerException serverEx){//요청 실패Console.WriteLine("CosServerException: " + serverEx.GetInfo());}
try{String bucket = "examplebucket-1250000000"; //버킷. 형식: BucketName-APPIDstring key = "exampleobject"; //객체 키string uploadId = "exampleUploadId"; //멀티파트 업로드가 초기화될 때 반환된 uploadId.int partNumber = 1; //1부터 증가하는 멀티파트 번호.string srcPath = @"temp-source-file";//로컬 파일 절대 경로UploadPartRequest request = new UploadPartRequest(bucket, key, partNumber,uploadId, srcPath, 0, -1);//진행률 콜백 설정.request.SetCosProgressCallback(delegate (long completed, long total){Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));});//실행 요청UploadPartResult result = cosXml.UploadPart(request);//요청 완료// 반환된 멀티파트의 eTag 가져오기. 후속 CompleteMultiUploads에 사용.this.eTag = result.eTag;Console.WriteLine(result.GetResultInfo());}catch (COSXML.CosException.CosClientException clientEx){//요청 실패Console.WriteLine("CosClientException: " + clientEx);}catch (COSXML.CosException.CosServerException serverEx){//요청 실패Console.WriteLine("CosServerException: " + serverEx.GetInfo());}
try{string sourceAppid = "1250000000"; //계정 appidstring sourceBucket = "sourcebucket-1250000000"; //"원본 객체가 있는 버킷string sourceRegion = "COS_REGION"; //원본 객체의 버킷이 있는 리전string sourceKey = "sourceObject"; //원본 객체 키//원본 객체 속성 구성COSXML.Model.Tag.CopySourceStruct copySource = new CopySourceStruct(sourceAppid,sourceBucket, sourceRegion, sourceKey);String bucket = "examplebucket-1250000000"; //버킷. 형식: BucketName-APPIDstring key = "exampleobject"; //객체 키string uploadId = this.uploadId; //멀티파트 업로드가 초기화될 때 반환된 uploadId.int partNumber = 1; //1부터 증가하는 멀티파트 번호.UploadPartCopyRequest request = new UploadPartCopyRequest(bucket, key,partNumber, uploadId);// 복사 소스 설정.request.SetCopySource(copySource);// 복사할 멀티파트 범위 설정(예: 0 ~ 1 M).request.SetCopyRange(0, 1024 * 1024);//실행 요청UploadPartCopyResult result = cosXml.PartCopy(request);//요청 완료// 반환된 멀티파트의 eTag 가져오기. 후속 CompleteMultiUploads에 사용.this.eTag = result.copyPart.eTag;Console.WriteLine(result.GetResultInfo());}catch (COSXML.CosException.CosClientException clientEx){//요청 실패Console.WriteLine("CosClientException: " + clientEx);}catch (COSXML.CosException.CosServerException serverEx){//요청 실패Console.WriteLine("CosServerException: " + serverEx.GetInfo());}
try{String bucket = "examplebucket-1250000000"; //버킷. 형식: BucketName-APPIDstring key = "exampleobject"; //객체 키string uploadId = "exampleUploadId"; //멀티파트 업로드가 초기화될 때 반환된 uploadId.ListPartsRequest request = new ListPartsRequest(bucket, key, uploadId);//실행 요청ListPartsResult result = cosXml.ListParts(request);//요청 완료// 업로드된 멀티파트를 나열합니다.List<COSXML.Model.Tag.ListParts.Part> alreadyUploadParts = result.listParts.parts;Console.WriteLine(result.GetResultInfo());}catch (COSXML.CosException.CosClientException clientEx){//요청 실패Console.WriteLine("CosClientException: " + clientEx);}catch (COSXML.CosException.CosServerException serverEx){//요청 실패Console.WriteLine("CosServerException: " + serverEx.GetInfo());}
try{String bucket = "examplebucket-1250000000"; //버킷. 형식: BucketName-APPIDstring 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());}
try{String bucket = "examplebucket-1250000000"; //버킷. 형식: BucketName-APPIDstring key = "exampleobject"; //객체 키string uploadId = "exampleUploadId"; //멀티파트 업로드가 초기화될 때 반환된 uploadId.AbortMultipartUploadRequest request = new AbortMultipartUploadRequest(bucket, key, uploadId);//실행 요청AbortMultipartUploadResult result = cosXml.AbortMultiUpload(request);//요청 완료Console.WriteLine(result.GetResultInfo());}catch (COSXML.CosException.CosClientException clientEx){//요청 실패Console.WriteLine("CosClientException: " + clientEx);}catch (COSXML.CosException.CosServerException serverEx){//요청 실패Console.WriteLine("CosServerException: " + serverEx.GetInfo());}
피드백