tencent cloud

Feedback

Uploading Objects

Last updated: 2022-01-23 14:45:54

    Overview

    This document provides an overview of APIs and SDK code samples related to object upload.

    Simple operations

    API Operation Description
    PUT Object Uploading an object Uploads an object to a bucket.
    POST Object Uploading an object using an HTML form Uploads an object using an HTML form.
    APPEND Object Appending parts Uploads an object by appending the object by parts.

    Multipart operations

    API Operation Description
    List Multipart Uploads Querying multipart uploads Queries in-progress multipart uploads.
    Initiate Multipart Upload Initializing a multipart upload operation Initializes a multipart upload operation.
    Upload Part Uploading parts Uploads an object in multiple parts.
    List Parts Querying uploaded parts Queries the uploaded parts of a multipart upload.
    Complete Multipart Upload Completing a multipart upload Completes the multipart upload of a file.
    Abort Multipart Upload Aborting a multipart upload Aborts a multipart upload and deletes the uploaded parts.

    SDK API References

    For the parameters and method description of all the APIs in the SDK, see API Documentation.

    Advanced APIs (Recommended)

    Uploading an object

    Description

    The advanced APIs encapsulate the simple upload and multipart upload APIs and can intelligently select the upload method based on file size. They also support checkpoint restart for resuming interrupted operations.

    Note:

    • If the file size is less than the multipart upload threshold, simple upload is used. Otherwise, multiple upload is used. The multipart upload threshold is configurable and is 5 MB by default.
    • The part size is configurable and is 1 MB by default.
    • If your .NET Framework version is 4.0 or earlier, advanced APIs are not available. For more information, please see Backward Compatibility.

    Sample code 1. Uploading a local object via advanced API

    using COSXML.Model.Object;
    using COSXML.Auth;
    using COSXML.Transfer;
    using System;
    using COSXML;
    using System.Threading.Tasks;
    namespace COSSnippet
    {
       public class TransferUploadObjectModel {
          private CosXml cosXml;
          TransferUploadObjectModel() {
           CosXmlConfig config = new CosXmlConfig.Builder()
             .SetRegion("COS_REGION") // Set the default region. For abbreviations of COS regions, visit https://www.tencentcloud.com/document/product/436/6224.
             .Build();
    
           string secretId = "SECRET_ID";   // SecretId of the TencentCloud API. For more information about how to obtain the API key, see https://console.tencentcloud.com/cam/capi.
           string secretKey = "SECRET_KEY"; // SecretKey of the TencentCloud API. For more information about how to obtain the API key, see https://console.tencentcloud.com/cam/capi.
           long durationSecond = 600;          // Validity period of the request signature in seconds
           QCloudCredentialProvider qCloudCredentialProvider = new DefaultQCloudCredentialProvider(secretId, 
             secretKey, durationSecond);
    
           this.cosXml = new CosXmlServer(config, qCloudCredentialProvider);
         }
          /// Upload a file via advanced API
         public async Task TransferUploadFile()
         {
           // Initialize TransferConfig
           TransferConfig transferConfig = new TransferConfig();
           // Set the object size threshold for multipart upload to 10 MB. Default value: 5 MB
           transferConfig.DivisionForUpload = 10 * 1024 * 1024;
           // Set the size of each object part for multipart upload to 2 MB. Default value: 1 MB
           transferConfig.SliceSizeForUpload = 2 * 1024 * 1024;
    
           // Initialize TransferManager
           TransferManager transferManager = new TransferManager(cosXml, transferConfig);
           // Bucket name in the format of `BucketName-APPID`. You can get APPID by referring to https://console.tencentcloud.com/developer.
           String bucket = "examplebucket-1250000000"; 
           String cosPath = "exampleobject"; // Location identifier of the object in the bucket, i.e., the object key
           String srcPath = @"temp-source-file";// Absolute path to the local file
    
           // Upload an object
           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 = await 
               transferManager.UploadAsync(uploadTask);
             Console.WriteLine(result.GetResultInfo());
             string eTag = result.eTag;
           } catch (Exception e) {
               Console.WriteLine("CosException: " + e);
           }
          }
          static void Main(string[] args)
         {
           TransferUploadObjectModel m = new TransferUploadObjectModel();
           /// Upload an object via advanced API
           m.TransferUploadFile().Wait();
           // .cssg-methods-pragma
         }
       }
    }
    
    Note:

    • For the complete sample, go to GitHub.
    • After the upload, you can generate a download URL for the uploaded file with the same key. For detailed directions, please see Generating Pre-signed Links. Please note that for private-read files, the download URL is only valid for a limited period of time.

    Sample code 2. Uploading binary data

    using COSXML.Model.Object;
    using COSXML.Auth;
    using COSXML.Transfer;
    using System;
    using COSXML;
    namespace COSSnippet
    {
       public class TransferUploadObjectModel {
          private CosXml cosXml;
          TransferUploadObjectModel() {
           CosXmlConfig config = new CosXmlConfig.Builder()
             .SetRegion("COS_REGION") // Set the default region. For abbreviations of COS regions, visit https://www.tencentcloud.com/document/product/436/6224.
             .Build();
    
           string secretId = "SECRET_ID";   // SecretId of the TencentCloud API. For more information about how to obtain the API key, see https://console.tencentcloud.com/cam/capi.
           string secretKey = "SECRET_KEY"; // SecretKey of the TencentCloud API. For more information about how to obtain the API key, see https://console.tencentcloud.com/cam/capi.
           long durationSecond = 600;          // Validity period of the request signature in seconds
           QCloudCredentialProvider qCloudCredentialProvider = new DefaultQCloudCredentialProvider(secretId, 
             secretKey, durationSecond);
    
           this.cosXml = new CosXmlServer(config, qCloudCredentialProvider);
         }
          /// Upload binary data
         public void TransferUploadBytes()
         {
           try
           {
             // Bucket name in the format of `BucketName-APPID`. You can get APPID by referring to https://console.tencentcloud.com/developer.
             string bucket = "examplebucket-1250000000";
             string cosPath = "exampleObject"; // Object key
             byte[] data = new byte[1024]; // Binary data
             PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, cosPath, data);
             // Initiate an upload.
             PutObjectResult result = cosXml.PutObject(putObjectRequest);
             Console.WriteLine(result.GetResultInfo());
           }
           catch (COSXML.CosException.CosClientException clientEx)
           {
             // Request failed
             Console.WriteLine("CosClientException: " + clientEx);
           }
           catch (COSXML.CosException.CosServerException serverEx)
           {
             // Request failed
             Console.WriteLine("CosServerException: " + serverEx.GetInfo());
           }
         }
          static void Main(string[] args)
         {
           TransferUploadObjectModel m = new TransferUploadObjectModel();
            /// Upload binary data via an advanced API
           m.TransferUploadBytes();
         }
       }
    }
    
    Note:

    • For the complete sample, go to GitHub.
    • After the upload, you can generate a download URL for the uploaded file with the same key. For detailed directions, please see Generating Pre-signed Links. Please note that for private-read files, the download URL is only valid for a limited period of time.

    Sample code 3. Uploading with a file stream

    using COSXML.Model.Object;
    using COSXML.Utils;
    using COSXML.Auth;
    using System;
    using COSXML;
    using System.IO;
    namespace COSSnippet
    {
       public class PutObjectModel {
          private CosXml cosXml;
          PutObjectModel() {
           CosXmlConfig config = new CosXmlConfig.Builder()
             .SetRegion("COS_REGION") // Set the default region. For abbreviations of COS regions, visit https://www.tencentcloud.com/document/product/436/6224. 
             .Build();
    
           string secretId = "SECRET_ID";   // SecretId of the TencentCloud API. For more information about how to obtain the API key, see https://console.tencentcloud.com/cam/capi.
           string secretKey = "SECRET_KEY"; // SecretKey of the TencentCloud API. For more information about how to obtain the API key, see https://console.tencentcloud.com/cam/capi.
           long durationSecond = 600;          // Validity period of the request signature in seconds
           QCloudCredentialProvider qCloudCredentialProvider = new DefaultQCloudCredentialProvider(secretId, 
             secretKey, durationSecond);
    
           this.cosXml = new CosXmlServer(config, qCloudCredentialProvider);
         }
    
         /// Uploading with a file stream, supported from v5.4.24
         public void PutObjectStream()
         {
           try
           {
             // Bucket name in the format of `BucketName-APPID`. You can get APPID by referring to https://console.tencentcloud.com/developer.
             string bucket = "examplebucket-1250000000";
             string key = "exampleobject"; // Object key
             string srcPath = @"temp-source-file";// Absolute path of the local file
             // Open the read-only file stream object
             FileStream fileStream = new FileStream(srcPath, FileMode.Open, FileAccess.Read);
             // Assemble the upload request, where offset sendLength is optional
             long offset = 0L;
             long sendLength = fileStream.Length;
             PutObjectRequest request = new PutObjectRequest(bucket, key, fileStream, offset, sendLength);
             // Set the progress callback
             request.SetCosProgressCallback(delegate (long completed, long total)
             {
               Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));
             });
             // Execute the request
             PutObjectResult result = cosXml.PutObject(request);
             // Close the file stream
             fileStream.Close();
             // Object ETag
             string eTag = result.eTag;
             // crc64ecma value of the object
             string crc64ecma = result.crc64ecma;
             // Print the request result.
             Console.WriteLine(result.GetResultInfo());
           }
           catch (COSXML.CosException.CosClientException clientEx)
           {
             // Request failed
             Console.WriteLine("CosClientException: " + clientEx);
           }
           catch (COSXML.CosException.CosServerException serverEx)
           {
             // Request failed
             Console.WriteLine("CosServerException: " + serverEx.GetInfo());
           }
         }
          static void Main(string[] args)
         {
           PutObjectModel m = new PutObjectModel();
           /// Upload the object with a file stream
           m.PutObjectStream();
         }
       }
    }
    
    Note:

    • Uploading with a file stream is supported from v5.4.24. To download the latest version of SDK, go to Releases or refer to Getting Started.
    • For the version changelog, see GitHub.
    • For the complete sample, go to GitHub.
    • After the upload, you can generate a download URL for the uploaded file with the same key. For detailed directions, please see Generating Pre-signed Links. Please note that for private-read files, the download URL is only valid for a limited period of time.

    Sample code 4. Suspending, resuming, and canceling an upload

    To suspend an upload, use the code below:

    uploadTask.Pause();
    

    To resume a suspended download, use the code below:

    uploadTask.Resume();
    

    To cancel an upload, use the code below:

    uploadTask.Cancel();
    
    Note:

    For the complete sample, go to GitHub.

    Sample code 5. Uploading multiple objects

    TransferConfig transferConfig = new TransferConfig();
    // Initialize TransferManager
    TransferManager transferManager = new TransferManager(cosXml, transferConfig);
    // Bucket name in the format of `BucketName-APPID`. You can get APPID by referring to https://console.tencentcloud.com/developer.
    string bucket = "examplebucket-1250000000";
    for (int i = 0; i < 5; i++) {
     // Upload an object
     string cosPath = "exampleobject" + i; // Location identifier of an object in the bucket, i.e. the object key
     string srcPath = @"temp-source-file";// Absolute path of the local file
     COSXMLUploadTask uploadTask = new COSXMLUploadTask(bucket, cosPath); 
     uploadTask.SetSrcPath(srcPath);
     await transferManager.UploadAsync(uploadTask);
    }
    

    Sample 6. Creating a directory

    try
    {
     // Bucket name in the format of `BucketName-APPID`. You can get APPID by referring to https://console.tencentcloud.com/developer.
     string bucket = "examplebucket-1250000000";
     string cosPath = "dir/"; // Object key
     PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, cosPath, new byte[0]);
    
     cosXml.PutObject(putObjectRequest);
    }
    catch (COSXML.CosException.CosClientException clientEx)
    {
     // Request failed
     Console.WriteLine("CosClientException: " + clientEx);
    }
    catch (COSXML.CosException.CosServerException serverEx)
    {
     // Request failed
     Console.WriteLine("CosServerException: " + serverEx.GetInfo());
    }
    
    Note:

    • For the complete sample, go to GitHub.
    • After the upload, you can generate a download URL for the uploaded file with the same key. For detailed directions, please see Generating Pre-signed Links. Please note that for private-read files, the download URL is only valid for a limited period of time.

    Simple Operations

    Uploading an object using simple upload

    Description

    This API (PUT Object) is used to upload an object smaller than 5 GB to a specified bucket. To call this API, you need to have permission to write to the bucket. If the object size is larger than 5 GB, please use Multipart Upload or Advanced APIs for the upload.

    Note:

    • The key (filename) cannot end with /; otherwise, it will be identified as a folder.
    • Each root account (APPID) can have up to 1,000 bucket ACLs and an unlimited number of object ACLs. Do not configure ACLs for an object during upload if you don’t need to control access to it. The object will inherit the permissions of its bucket by default.
    • Due to the limitations of the underlying SDK dependent language components, the general upload API may encounter unexpected exceptions in some environments when it is used to upload objects over 2 GB at a time. Therefore, we recommend you use the advanced API or multipart upload to avoid potential problems.

    Sample code

    try
    {
     // Bucket name in the format of `BucketName-APPID`. You can get APPID by referring to https://console.tencentcloud.com/developer.
     string bucket = "examplebucket-1250000000";
     string key = "exampleobject"; // Object key
     string srcPath = @"temp-source-file";// Absolute path of the local file
      PutObjectRequest request = new PutObjectRequest(bucket, key, srcPath);
     // Set the progress callback
     request.SetCosProgressCallback(delegate (long completed, long total)
     {
       Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));
     });
     // Execute the request
     PutObjectResult result = cosXml.PutObject(request);
     // Object ETag
     string eTag = result.eTag;
    }
    catch (COSXML.CosException.CosClientException clientEx)
    {
     // Request failed
     Console.WriteLine("CosClientException: " + clientEx);
    }
    catch (COSXML.CosException.CosServerException serverEx)
    {
     // Request failed
     Console.WriteLine("CosServerException: " + serverEx.GetInfo());
    }
    
    Note:

    • For the complete sample, go to GitHub.
    • After the upload, you can generate a download URL for the uploaded file with the same key. For detailed directions, please see Generating Pre-signed Links. Please note that for private-read files, the download URL is only valid for a limited period of time.

    Uploading an object using an HTML form

    Description

    This API is used to upload an object using an HTML form.

    Sample code

    try
    {
     // Bucket name in the format of `BucketName-APPID`. You can get APPID by referring to https://console.tencentcloud.com/developer.
     string bucket = "examplebucket-1250000000";
     string key = "exampleobject"; // Object key
     string srcPath = @"temp-source-file";// Absolute path of the local file
     PostObjectRequest request = new PostObjectRequest(bucket, key, srcPath);
     // Set the progress callback
     request.SetCosProgressCallback(delegate (long completed, long total)
     {
       Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));
     });
     // Execute the request
     PostObjectResult result = cosXml.PostObject(request);
     // Request succeeded
     Console.WriteLine(result.GetResultInfo());
    }
    catch (COSXML.CosException.CosClientException clientEx)
    {
     // Request failed
     Console.WriteLine("CosClientException: " + clientEx);
    }
    catch (COSXML.CosException.CosServerException serverEx)
    {
     // Request failed
     Console.WriteLine("CosServerException: " + serverEx.GetInfo());
    }
    
    Note:

    For the complete sample, go to GitHub.

    Appending parts

    Description

    This API is used to upload an object by appending parts of the object.

    Note:

    This feature is supported starting from v5.4.22. For the version changelog, see GitHub.

    Sample code

    try
    {
       // Bucket name in the format of `BucketName-APPID`. You can get APPID by referring to https://console.tencentcloud.com/developer.
       string bucket = "examplebucket-1250000000";
       string key = "exampleobject"; // Object key
       string srcPath = @"temp-source-file";// Absolute path of the local file
        // Append the first part. 0 is passed in for the appending position, and an appendable object is created
       long next_append_position = 0;
       AppendObjectRequest request = new AppendObjectRequest(bucket, key, srcPath, next_append_position);
       // Set the progress callback
       request.SetCosProgressCallback(delegate (long completed, long total)
       {
           Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));
       });
       AppendObjectResult result = cosXml.AppendObject(request);
       // Get the next appending position
       next_append_position = result.nextAppendPosition;
       Console.WriteLine(result.GetResultInfo());
        // Execute appending and pass in the object end obtained last time
       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)
    {
       // Request failed
       Console.WriteLine("CosClientException: " + clientEx);
    }
    catch (COSXML.CosException.CosServerException serverEx)
    {
       // Request failed
       Console.WriteLine("CosServerException: " + serverEx.GetInfo());
    }
    
    Note:

    For the complete sample, go to GitHub.

    Multipart Operations

    The multipart upload process is outlined below.

    Performing a multipart upload

    1. Initialize the multipart upload with Initiate Multipart Upload and get the UploadId.
    2. Use the UploadId to upload the parts with Upload Part - Copy.
    3. Complete the multipart upload with Complete Multipart Upload.

    Resuming a multipart upload

    1. If you did not record the UploadId of the multipart upload, you can query the multipart upload job with List Multipart Uploads to get the UploadId of the corresponding file.
    2. Use the UploadId to list the uploaded parts with List Parts.
    3. Use the UploadId to upload the remaining parts with Upload Part.
    4. Complete the multipart upload with Complete Multipart Upload.

    Aborting a multipart upload

    1. If you did not record the UploadId of the multipart upload, you can query the multipart upload job with List Multipart Uploads to get the UploadId of the corresponding file.
    2. Abort the multipart upload and delete the uploaded parts with Abort Multipart Upload.

    Querying multipart uploads

    Description

    This API (List Multipart Uploads) is used to query in-progress multipart uploads in a specified bucket.

    Sample code

    try
    {
     // Bucket name in the format of `BucketName-APPID`. You can get APPID by referring to https://console.tencentcloud.com/developer.
     string bucket = "examplebucket-1250000000";
     ListMultiUploadsRequest request = new ListMultiUploadsRequest(bucket);
     // Execute the request
     ListMultiUploadsResult result = cosXml.ListMultiUploads(request);
     // Request succeeded
     Console.WriteLine(result.GetResultInfo());
    }
    catch (COSXML.CosException.CosClientException clientEx)
    {
     // Request failed
     Console.WriteLine("CosClientException: " + clientEx);
    }
    catch (COSXML.CosException.CosServerException serverEx)
    {
     // Request failed
     Console.WriteLine("CosServerException: " + serverEx.GetInfo());
    }
    
    Note:

    For the complete sample, go to GitHub.

    Initializing a multipart upload

    Description

    This API is used to initialize a multipart upload operation and get its uploadId.

    Sample code

    try
    {
     // Bucket name in the format of `BucketName-APPID`. You can get APPID by referring to https://console.tencentcloud.com/developer.
     string bucket = "examplebucket-1250000000";
     string key = "exampleobject"; // Object key
     InitMultipartUploadRequest request = new InitMultipartUploadRequest(bucket, key);
     // Execute the request
     InitMultipartUploadResult result = cosXml.InitMultipartUpload(request);
     // Request succeeded
     this.uploadId = result.initMultipartUpload.uploadId; // The uploadId to use for subsequent multipart uploads
     Console.WriteLine(result.GetResultInfo());
    }
    catch (COSXML.CosException.CosClientException clientEx)
    {
     // Request failed
     Console.WriteLine("CosClientException: " + clientEx);
    }
    catch (COSXML.CosException.CosServerException serverEx)
    {
     // Request failed
     Console.WriteLine("CosServerException: " + serverEx.GetInfo());
    }
    
    Note:

    For the complete sample, go to GitHub.

    Uploading parts

    Description

    This API (Upload Part) is used to upload an object in parts.

    Sample code

    try
    {
     // Bucket name in the format of `BucketName-APPID`. You can get APPID by referring to https://console.tencentcloud.com/developer.
     string bucket = "examplebucket-1250000000";
     string key = "exampleobject"; // Object key
     string uploadId = "exampleUploadId"; // uploadId returned when the multipart upload is initialized
     int partNumber = 1; // Part number, increases incrementally starting from 1
     string srcPath = @"temp-source-file";// Absolute path of the local file
     UploadPartRequest request = new UploadPartRequest(bucket, key, partNumber, 
       uploadId, srcPath, 0, -1);
     // Set the progress callback
     request.SetCosProgressCallback(delegate (long completed, long total)
     {
       Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));
     });
     // Execute the request
     UploadPartResult result = cosXml.UploadPart(request);
     // Request succeeded
     // Get the ETag of the returned part for subsequent CompleteMultiUploads.
     this.eTag = result.eTag;
     Console.WriteLine(result.GetResultInfo());
    }
    catch (COSXML.CosException.CosClientException clientEx)
    {
     // Request failed
     Console.WriteLine("CosClientException: " + clientEx);
    }
    catch (COSXML.CosException.CosServerException serverEx)
    {
     // Request failed
     Console.WriteLine("CosServerException: " + serverEx.GetInfo());
    }
    
    Note:

    For the complete sample, go to GitHub.

    Querying uploaded parts

    Description

    This API (List Parts) is used to query the uploaded parts of a multipart upload.

    Sample code

    try
    {
     // Bucket name in the format of `BucketName-APPID`. You can get APPID by referring to https://console.tencentcloud.com/developer.
     string bucket = "examplebucket-1250000000";
     string key = "exampleobject"; // Object key
     string uploadId = "exampleUploadId"; // uploadId returned when the multipart upload is initialized
     ListPartsRequest request = new ListPartsRequest(bucket, key, uploadId);
     // Execute the request
     ListPartsResult result = cosXml.ListParts(request);
     // Request succeeded
     // List the parts that have been uploaded
     List<COSXML.Model.Tag.ListParts.Part> alreadyUploadParts = result.listParts.parts;
     Console.WriteLine(result.GetResultInfo());
    }
    catch (COSXML.CosException.CosClientException clientEx)
    {
     // Request failed
     Console.WriteLine("CosClientException: " + clientEx);
    }
    catch (COSXML.CosException.CosServerException serverEx)
    {
     // Request failed
     Console.WriteLine("CosServerException: " + serverEx.GetInfo());
    }
    
    Note:

    For the complete sample, go to GitHub.

    Completing a multipart upload

    Description

    This API (Complete Multipart Upload) is used to complete the multipart upload of a file.

    Sample code

    try
    {
     // Bucket name in the format of `BucketName-APPID`. You can get APPID by referring to https://console.tencentcloud.com/developer.
     string bucket = "examplebucket-1250000000";
     string key = "exampleobject"; // Object key
     string uploadId = "exampleUploadId"; // uploadId returned when the multipart upload is initialized
     CompleteMultipartUploadRequest request = new CompleteMultipartUploadRequest(bucket, 
       key, uploadId);
     // Concatenate uploaded parts in ascending order by partNumber.
     request.SetPartNumberAndETag(1, this.eTag);
     // Execute the request
     CompleteMultipartUploadResult result = cosXml.CompleteMultiUpload(request);
     // Request succeeded
     Console.WriteLine(result.GetResultInfo());
    }
    catch (COSXML.CosException.CosClientException clientEx)
    {
     // Request failed
     Console.WriteLine("CosClientException: " + clientEx);
    }
    catch (COSXML.CosException.CosServerException serverEx)
    {
     // Request failed
     Console.WriteLine("CosServerException: " + serverEx.GetInfo());
    }
    
    Note:

    For the complete sample, go to GitHub.

    Aborting a multipart upload

    Description

    This API (Abort Multipart Upload) is used to abort a multipart upload and delete the uploaded parts.

    Sample code

    try
    {
     // Bucket name in the format of `BucketName-APPID`. You can get APPID by referring to https://console.tencentcloud.com/developer.
     string bucket = "examplebucket-1250000000";
     string key = "exampleobject"; // Object key
     string uploadId = "exampleUploadId"; // uploadId returned when the multipart upload is initialized
     AbortMultipartUploadRequest request = new AbortMultipartUploadRequest(bucket, key, uploadId);
     // Execute the request
     AbortMultipartUploadResult result = cosXml.AbortMultiUpload(request);
     // Request succeeded
     Console.WriteLine(result.GetResultInfo());
    }
    catch (COSXML.CosException.CosClientException clientEx)
    {
     // Request failed
     Console.WriteLine("CosClientException: " + clientEx);
    }
    catch (COSXML.CosException.CosServerException serverEx)
    {
     // Request failed
     Console.WriteLine("CosServerException: " + serverEx.GetInfo());
    }
    
    Note:

    For the complete sample, go to GitHub.

    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support