API | Operation | Description |
Simply uploading an object | Uploads an object to a bucket | |
Appending parts | Appends object parts to a bucket. |
API | Operation | Description |
Querying multipart uploads | Queries the information on ongoing multipart uploads | |
Initializing a multipart upload | Initializes a multipart upload job | |
Uploading a part | Uploads a file part | |
Copying a part | Copies an object as a part | |
Querying uploaded parts | Queries uploaded parts in a specified multipart upload operation | |
Completing a multipart upload | Completes the multipart upload of the entire file | |
Aborting a multipart upload | Aborts a multipart upload operation and deletes the uploaded parts |
PUT Object
API and the Upload Part
API according to the file size. It uses the former for files smaller than or equal to 20 MB and the latter for files larger than 20 MB. It also supports automatic checkpoint restart for suspended multipart uploads.
You can use the progress_callback
function to query the multipart upload progress.upload_file(Bucket, Key, LocalFilePath, PartSize=1, MAXThread=5, EnableMD5=False, progress_callback=None, **kwargs)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientfrom qcloud_cos.cos_exception import CosClientError, CosServiceErrorimport sysimport logging# In most cases, set the log level to INFO. If you need to debug, you can set it to DEBUG and the SDK will print information about the communication with the server.logging.basicConfig(level=logging.INFO, stream=sys.stdout)# 1. Set user attributes such as secret_id, secret_key, and region. Appid has been removed from CosConfig and thus needs to be specified in Bucket, which is formatted as BucketName-Appid.secret_id = os.environ['COS_SECRET_ID'] # User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.secret_key = os.environ['COS_SECRET_KEY'] # User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.region = 'ap-beijing' # Replace it with the actual region, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket.# For the list of regions supported by COS, visit https://www.tencentcloud.com/document/product/436/6224.token = None # Token is required for temporary keys but not permanent keys. For more information about how to generate and use a temporary key, visit https://www.tencentcloud.com/document/product/436/14048.scheme = 'https' # Specify whether to use HTTP or HTTPS protocol to access COS. This field is optional and is `https` by default.config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)# Use the advanced API to upload once without retry. In this case, the checkpoint restart feature is not used.response = client.upload_file(Bucket='examplebucket-1250000000',Key='exampleobject',LocalFilePath='local.txt',EnableMD5=False,progress_callback=None)# Use the advanced API for checkpoint restart, and the successfully uploaded parts will not be uploaded again during retries (ten times here).for i in range(0, 10):try:response = client.upload_file(Bucket='examplebucket-1250000000',Key='exampleobject',LocalFilePath='local.txt')breakexcept CosClientError or CosServiceError as e:print(e)
def upload_percentage(consumed_bytes, total_bytes):"""Callback function that calculates the upload progress (in percentage):param consumed_bytes: uploaded data amount:param total_bytes: total data amount"""if total_bytes:rate = int(100 * (float(consumed_bytes) / float(total_bytes)))print('\\r{0}% '.format(rate))sys.stdout.flush()response = client.upload_file(Bucket='examplebucket-1250000000',Key='exampleobject',LocalFilePath='local.txt',PartSize=1,MAXThread=5,progress_callback=upload_percentage,EnableMD5=False|True,ACL='private'|'public-read', # Please note that the maximum number (1000) of ACLs allowed may be reached if you use this parameterGrantFullControl='string',GrantRead='string',StorageClass='STANDARD'|'STANDARD_IA'|'ARCHIVE',Expires='string',CacheControl='string',ContentType='string',ContentDisposition='string',ContentEncoding='string',ContentLanguage='string',ContentLength='123',ContentMD5='string',Metadata={'x-cos-meta-key1': 'value1','x-cos-meta-key2': 'value2'},TrafficLimit='1048576')
Parameter | Description | Type | Required |
Bucket | Bucket name in the format of BucketName-APPID | String | Yes |
Key | Object key, which uniquely identifies an object in a bucket. For example, if an object’s access endpoint is examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg , its key is doc/pic.jpg . | String | Yes |
LocalFilePath | Path to the local file | String | Yes |
PartSize | Part size. Default value: 1 MB | Int | No |
MAXThread | Maximum number of threads for concurrent multipart uploads. Default value: 5 | Int | No |
progress_callback | Callback function for the upload progress. You can customize this function to query the upload progress. | Func | No |
EnableMD5 | Whether to calculate the Content-MD5 checksum, which will extend the upload time. It’s not calculated by default. | Bool | No |
ACL | ACL of the object, such as private or public-read | String | No |
GrantFullControl | Grants full permission. Format: id="OwnerUin" | String | No |
GrantRead | Grants read permission. Format: id="OwnerUin" | String | No |
StorageClass | Storage class of the object. For more information about storage classes such as STANDARD (default), STANDARD_IA , and ARCHIVE , please see Storage Class Overview. | String | No |
Expires | Expiration time | String | No |
CacheControl | Cache policy | String | No |
ContentType | Content type | String | No |
ContentDisposition | Filename | String | No |
ContentEncoding | Encoding type | String | No |
ContentLanguage | Language type | String | No |
ContentLength | Length of the content | String | No |
ContentMD5 | MD5 checksum of the uploaded object, which is used for verification | String | No |
Metadata | User-defined object metadata | Dict | No |
TrafficLimit | Bandwidth limit in bit/s for a single request (or a single thread for the advanced download API). Value range: 819200 - 838860800, i.e., 100 KB/s - 100 MB/s | String | No |
{'Content-Type': 'string','Transfer-Encoding': 'string','Connection': 'string','Date': 'string','Server': 'string','x-cos-hash-crc64ecma': 'string','x-cos-request-id': 'string','x-cos-storage-class': 'string','Location': 'string','Bucket': 'string','Key': 'string','ETag': 'string'}
Parameter | Description | Type |
Content-Type | Content type. Standard HTTP header | String |
Transfer-Encoding | Transfer encoding type. Standard HTTP header | String |
Connection | Connection method. Standard HTTP header | String |
Date | Request date. Standard HTTP header | String |
Server | Server flag. Standard HTTP header | String |
x-cos-hash-crc64ecma | CRC64 checksum of the file | String |
x-cos-request-id | Request ID | String |
x-cos-storage-class | Object storage class | String |
Location | Object access URL | String |
Bucket | Bucket name | String |
Key | Object name | String |
ETag | For multipart upload, this value is not necessarily the MD5 checksum of the object. It is used to verify the uniqueness of the multipart uploaded object. | String |
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientfrom qcloud_cos import CosServiceErrorfrom qcloud_cos import CosClientErrorfrom qcloud_cos.cos_threadpool import SimpleThreadPoolimport sysimport osimport logging# In most cases, set the log level to INFO. If you need to debug, you can set it to DEBUG and the SDK will print information about the communication with the server.logging.basicConfig(level=logging.INFO, stream=sys.stdout)# Set user attributes such as secret_id, secret_key, and region. Appid has been removed from CosConfig and thus needs to be specified in Bucket, which is formatted as BucketName-Appid.secret_id = os.environ['COS_SECRET_ID'] # User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.secret_key = os.environ['COS_SECRET_KEY'] # User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.region = 'ap-beijing' # Replace it with the actual region, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket.# For the list of regions supported by COS, visit https://www.tencentcloud.com/document/product/436/6224.token = None # Token is required for temporary keys but not permanent keys. For more information about how to generate and use a temporary key, visit https://www.tencentcloud.com/document/product/436/14048.config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # Get the configured objectclient = CosS3Client(config)uploadDir = '/root/logs'bucket = 'examplebucket-125000000'g = os.walk(uploadDir)# Create a thread pool for the upload.pool = SimpleThreadPool()for path, dir_list, file_list in g:for file_name in file_list:srcKey = os.path.join(path, file_name)cosObjectKey = srcKey.strip('/')# Determine whether the object exists in COS.exists = Falsetry:response = client.head_object(Bucket=bucket, Key=cosObjectKey)exists = Trueexcept CosServiceError as e:if e.get_status_code() == 404:exists = Falseelse:print("Error happened, reupload it.")if not exists:print("File %s not exists in cos, upload it", srcKey)pool.add_task(client.upload_file, bucket, cosObjectKey, srcKey)pool.wait_completion()result = pool.get_result()if not result['success_all']:print("Not all files upload sucessed. you should retry")
PUT Object
) is used to upload an object to a bucket.put_object(Bucket, Body, Key, **kwargs)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport logging# In most cases, set the log level to INFO. If you need to debug, you can set it to DEBUG and the SDK will print information about the communication with the server.logging.basicConfig(level=logging.INFO, stream=sys.stdout)# 1. Set user attributes such as secret_id, secret_key, and region. Appid has been removed from CosConfig and thus needs to be specified in Bucket, which is formatted as BucketName-Appid.secret_id = os.environ['COS_SECRET_ID'] # User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.secret_key = os.environ['COS_SECRET_KEY'] # User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.region = 'ap-beijing' # Replace it with the actual region, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket.# For the list of regions supported by COS, visit https://www.tencentcloud.com/document/product/436/6224.token = None # Token is required for temporary keys but not permanent keys. For more information about how to generate and use a temporary key, visit https://www.tencentcloud.com/document/product/436/14048.scheme = 'https' # Specify whether to use HTTP or HTTPS protocol to access COS. This field is optional and is `https` by default.config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)# Simple upload using file streamfile_name = 'test.txt'with open('test.txt', 'rb') as fp:response = client.put_object(Bucket='examplebucket-1250000000', # Bucket name format: BucketName-APPIDBody=fp,Key=file_name,StorageClass='STANDARD',ContentType='text/html; charset=utf-8')print(response['ETag'])# Byte stream (upload in whole)response = client.put_object(Bucket='examplebucket-1250000000',Body=b'abcdefg',Key=file_name)print(response['ETag'])# Local path (upload in whole)response = client.put_object_from_local_file(Bucket='examplebucket-1250000000',LocalFilePath='local.txt',Key=file_name,)print(response['ETag'])# HTTP header (upload in whole)response = client.put_object(Bucket='examplebucket-1250000000',Body=b'test',Key=file_name,ContentType='text/html; charset=utf-8')print(response['ETag'])# Custom header (upload in whole)response = client.put_object(Bucket='examplebucket-1250000000',Body=b'test',Key=file_name,Metadata={'x-cos-meta-key1': 'value1','x-cos-meta-key2': 'value2'})print(response['ETag'])# Limiting the upload speedwith open('test.bin', 'rb') as fp:response = client.put_object(Bucket='examplebucket-1250000000',Key='exampleobject',Body=fp,TrafficLimit='819200')print(response['ETag'])
Put Object
API.# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport logging# In most cases, set the log level to INFO. If you need to debug, you can set it to DEBUG and the SDK will print information about the communication with the server.logging.basicConfig(level=logging.INFO, stream=sys.stdout)# 1. Set user attributes such as secret_id, secret_key, and region. Appid has been removed from CosConfig and thus needs to be specified in Bucket, which is formatted as BucketName-Appid.secret_id = os.environ['COS_SECRET_ID'] # User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.secret_key = os.environ['COS_SECRET_KEY'] # User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.region = 'ap-beijing' # Replace it with the actual region, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket.# For the list of regions supported by COS, visit https://www.tencentcloud.com/document/product/436/6224.token = None # Token is required for temporary keys but not permanent keys. For more information about how to generate and use a temporary key, visit https://www.tencentcloud.com/document/product/436/14048.scheme = 'https' # Specify whether to use HTTP or HTTPS protocol to access COS. This field is optional and is `https` by default.config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)# Create a directory.dir_to_create='path/to/create/dir/'response = client.put_object(Bucket='examplebucket-1250000000', # Bucket name format: BucketName-APPIDKey=dir_to_create,Body=b'',)print(response)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport logging# In most cases, set the log level to INFO. If you need to debug, you can set it to DEBUG and the SDK will print information about the communication with the server.logging.basicConfig(level=logging.INFO, stream=sys.stdout)# 1. Set user attributes such as secret_id, secret_key, and region. Appid has been removed from CosConfig and thus needs to be specified in Bucket, which is formatted as BucketName-Appid.secret_id = os.environ['COS_SECRET_ID'] # User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.secret_key = os.environ['COS_SECRET_KEY'] # User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.region = 'ap-beijing' # Replace it with the actual region, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket.# For the list of regions supported by COS, visit https://www.tencentcloud.com/document/product/436/6224.token = None # Token is required for temporary keys but not permanent keys. For more information about how to generate and use a temporary key, visit https://www.tencentcloud.com/document/product/436/14048.scheme = 'https' # Specify whether to use HTTP or HTTPS protocol to access COS. This field is optional and is `https` by default.config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)# When you upload an object whose name is separated with slashes, a directory that contains this object will be created automatically. To upload a new object to this COS directory, set the key prefix of the object to this directory.dir_name = 'path/to/dir/'file_name = 'test.txt'object_key = dir_name + file_namewith open('test.txt', 'rb') as fp:response = client.put_object(Bucket='examplebucket-1250000000', # Bucket name format: BucketName-APPIDBody=fp,Key=object_key,StorageClass='STANDARD',ContentType='text/html; charset=utf-8')print(response['ETag'])
response = client.put_object(Bucket='examplebucket-1250000000',Body=b'bytes'|file,Key='exampleobject',EnableMD5=False|True,ACL='private'|'public-read', # Please note that the maximum number (1000) of ACLs allowed may be reached if you use this parameterGrantFullControl='string',GrantRead='string',StorageClass='STANDARD'|'STANDARD_IA'|'ARCHIVE',Expires='string',CacheControl='string',ContentType='string',ContentDisposition='string',ContentEncoding='string',ContentLanguage='string',ContentLength='123',ContentMD5='string',Metadata={'x-cos-meta-key1': 'value1','x-cos-meta-key2': 'value2'},TrafficLimit='1048576')
Parameter | Description | Type | Required |
Bucket | Bucket name in the format of BucketName-APPID | String | Yes |
Body | Content of the object to be uploaded. It can be a file stream or a byte stream. | file/bytes | Yes |
Key | Object key, which uniquely identifies an object in a bucket. For example, if an object’s access endpoint is examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg , its key is doc/pic.jpg . | String | Yes |
EnableMD5 | Whether to calculate the Content-MD5 checksum, which will extend the upload time. It’s not calculated by default. | Bool | No |
ACL | ACL of the object, such as private and public-read | String | No |
GrantFullControl | Grants full permission. Format: id="OwnerUin" | String | No |
GrantRead | Grants read permission. Format: id="OwnerUin" | String | No |
StorageClass | Storage class of the object. For storage classes such as STANDARD (default), STANDARD_IA , and ARCHIVE , please see Storage Class Overview. | String | No |
Expires | Expiration time | String | No |
CacheControl | Cache policy | String | No |
ContentType | Content type | String | No |
ContentDisposition | Object name | String | No |
ContentEncoding | Encoding type | String | No |
ContentLanguage | Language type | String | No |
ContentLength | Length of the content | String | No |
ContentMD5 | MD5 checksum of the uploaded object, which is used for verification | String | No |
Metadata | User-defined object metadata. This parameter must start with x-cos-meta ; otherwise, it will be ignored. | Dict | No |
TrafficLimit | Bandwidth limit for a single request in bit/s. Value range: 819200-838860800, i.e., 100 KB/s - 100 MB/s | String | No |
{'ETag': 'string','x-cos-version-id': 'string'}
Parameter | Description | Type |
ETag | MD5 checksum of the uploaded object | String |
x-cos-version-id | Version ID of the object if versioning is enabled | String |
APPEND Object
) is used to append object parts to a bucket.append_object(Bucket, Key, Position, Data, **kwargs)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport logging# In most cases, set the log level to INFO. If you need to debug, you can set it to DEBUG and the SDK will print information about the communication with the server.logging.basicConfig(level=logging.INFO, stream=sys.stdout)# 1. Set user attributes such as secret_id, secret_key, and region. Appid has been removed from CosConfig and thus needs to be specified in Bucket, which is formatted as BucketName-Appid.secret_id = os.environ['COS_SECRET_ID'] # User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.secret_key = os.environ['COS_SECRET_KEY'] # User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.region = 'ap-beijing' # Replace it with the actual region, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket.# For the list of regions supported by COS, visit https://www.tencentcloud.com/document/product/436/6224.token = None # Token is required for temporary keys but not permanent keys. For more information about how to generate and use a temporary key, visit https://www.tencentcloud.com/document/product/436/14048.scheme = 'https' # Specify whether to use HTTP or HTTPS protocol to access COS. This field is optional and is `https` by default.config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)response = client.append_object(Bucket='examplebucket-1250000000',Key='exampleobject',Position=0,Data=b'b'*1024*1024)
response = client.append_object(Bucket='examplebucket-1250000000',Key='exampleobject',Position=0,Data=b'bytes'|file)
Parameter | Description | Type | Required |
Bucket | Bucket name in the format of BucketName-APPID | String | Yes |
Key | Object key, which uniquely identifies an object in a bucket. For example, if an object’s access endpoint is examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg , its key is doc/pic.jpg . | String | Yes |
Position | Starting point for the append operation (in bytes). For the first append, the value of this parameter is 0. For subsequent appends, the value is the Content-Length of the current object. | Int | Yes |
Data | Content of the parts to upload, which may be a file stream or byte stream | file/bytes | Yes |
{'ETag': '"9a4802d5c99dafe1c04da0a8e7e166bf"','x-cos-next-append-position': '12','x-cos-request-id': 'NjEwN2Q0ZGZfMWNhZjU4NjRfMzM1M19hNzQzYjc2'}
list_multipart_uploads(Bucket, Prefix="", Delimiter="", KeyMarker="", UploadIdMarker="", MaxUploads=1000, EncodingType="", **kwargs)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport logging# In most cases, set the log level to INFO. If you need to debug, you can set it to DEBUG and the SDK will print information about the communication with the server.logging.basicConfig(level=logging.INFO, stream=sys.stdout)# 1. Set user attributes such as secret_id, secret_key, and region. Appid has been removed from CosConfig and thus needs to be specified in Bucket, which is formatted as BucketName-Appid.secret_id = os.environ['COS_SECRET_ID'] # User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.secret_key = os.environ['COS_SECRET_KEY'] # User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.region = 'ap-beijing' # Replace it with the actual region, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket.# For the list of regions supported by COS, visit https://www.tencentcloud.com/document/product/436/6224.token = None # Token is required for temporary keys but not permanent keys. For more information about how to generate and use a temporary key, visit https://www.tencentcloud.com/document/product/436/14048.scheme = 'https' # Specify whether to use HTTP or HTTPS protocol to access COS. This field is optional and is `https` by default.config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)response = client.list_multipart_uploads(Bucket='examplebucket-1250000000',Prefix='dir')
response = client.list_multipart_uploads(Bucket='examplebucket-1250000000',Prefix='string',Delimiter='string',KeyMarker='string',UploadIdMarker='string',MaxUploads=100,EncodingType='url')
Parameter | Description | Type | Required |
Bucket | Bucket name in the format of BucketName-APPID | String | Yes |
Prefix | Object key prefix to filter multipart uploads by. It is left empty by default. | String | No |
Delimiter | Separator, left empty by default | String | No |
KeyMarker | The key of the object after which the returned list begins. It is used together with UploadIdMarker . | String | No |
UploadIdMarker | The upload ID of the object after which the returned list begins. It is used together with KeyMarker . If KeyMarker is not specified, UploadIdMarker will be ignored. | String | No |
MaxUploads | Maximum number of multipart uploads returned at a time, which is 1000 (the maximum value allowed) by default | Int | No |
EncodingType | Encoding method of the returned value. The value is not encoded by default. Valid value: url | String | No |
{'Bucket': 'examplebucket-1250000000','Prefix': 'string','Delimiter': 'string','KeyMarker': 'string','UploadIdMarker': 'string','NextKeyMarker': 'string','NextUploadIdMarker': 'string','MaxUploads': '1000','IsTruncated': 'true'|'false',,'EncodingType': 'url','Upload':[{'UploadId': 'string','Key': 'string','Initiated': 'string','StorageClass': 'STANDARD','Owner': {'DisplayName': 'string','ID': 'string'},'Initiator': {'ID': 'string','DisplayName': 'string'}},],'CommonPrefixes':[{'Prefix': 'string'},],}
Parameter | Description | Type |
Bucket | Bucket name in the format of BucketName-APPID | String |
Prefix | Object prefix key by which multipart uploads are queried. It is left empty by default. | String |
Delimiter | Separator, which is left empty by default. | String |
KeyMarker | The key of the object after which the returned list begins. It is used together with UploadIdMarker . | String |
UploadIdMarker | The upload ID of the object after which the returned list begins. If KeyMarker is not specified, UploadIdMarker will be ignored. | String |
NextKeyMarker | The key of the object after which the next returned list begins if IsTruncated is true | String |
NextUploadIdMarker | The upload ID of the object after which the next returned list begins if IsTruncated is true | String |
MaxUploads | Maximum number of multipart uploads returned at a time, which is 1000 (the maximum value allowed) by default | Int |
IsTruncated | Whether the returned multipart upload list is truncated | String |
EncodingType | Encoding type of the returned value. The returned value is not encoded by default. Valid value: url | String |
Upload | List of information on all the returned multipart uploads, including UploadId , StorageClass , Key , Owner , Initiator , and Initiated | List |
CommonPrefixes | All keys starting with the specified prefix and ending with the specified delimiter | List |
Initiate Multipart Upload
) is used to initialize a multipart upload and obtain its uploadId
.create_multipart_upload(Bucket, Key, **kwargs):
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport logging# In most cases, set the log level to INFO. If you need to debug, you can set it to DEBUG and the SDK will print information about the communication with the server.logging.basicConfig(level=logging.INFO, stream=sys.stdout)# 1. Set user attributes such as secret_id, secret_key, and region. Appid has been removed from CosConfig and thus needs to be specified in Bucket, which is formatted as BucketName-Appid.secret_id = os.environ['COS_SECRET_ID'] # User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.secret_key = os.environ['COS_SECRET_KEY'] # User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.region = 'ap-beijing' # Replace it with the actual region, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket.# For the list of regions supported by COS, visit https://www.tencentcloud.com/document/product/436/6224.token = None # Token is required for temporary keys but not permanent keys. For more information about how to generate and use a temporary key, visit https://www.tencentcloud.com/document/product/436/14048.scheme = 'https' # Specify whether to use HTTP or HTTPS protocol to access COS. This field is optional and is `https` by default.config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)response = client.create_multipart_upload(Bucket='examplebucket-1250000000',Key='exampleobject',StorageClass='STANDARD')
response = client.create_multipart_upload(Bucket='examplebucket-1250000000',Key='multipart.txt',StorageClass='STANDARD'|'STANDARD_IA'|'ARCHIVE',Expires='string',CacheControl='string',ContentType='string',ContentDisposition='string',ContentEncoding='string',ContentLanguage='string',Metadata={'x-cos-meta-key1': 'value1','x-cos-meta-key2': 'value2'},ACL='private'|'public-read',GrantFullControl='string',GrantRead='string')# Obtain UploadId for subsequent API callsuploadid = response['UploadId']
Parameter | Description | Type | Required |
Bucket | Bucket name in the format of BucketName-APPID | String | Yes |
Key | Object key, which uniquely identifies an object in a bucket. For example, if an object’s access endpoint is examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg , its key is doc/pic.jpg . | String | Yes |
StorageClass | Storage class of the object. For storage classes such as STANDARD (default), STANDARD_IA , and ARCHIVE , please see Storage Class Overview. | String | No |
Expires | Expiration time | String | No |
CacheControl | Cache policy | String | No |
ContentType | Content type | String | No |
ContentDisposition | Filename | String | No |
ContentEncoding | Encoding type | String | No |
ContentLanguage | Language type | String | No |
Metadata | User-defined object metadata | Dict | No |
ACL | ACL of the object, such as private and public-read | String | No |
GrantFullControl | Grants full permission. Format: id="OwnerUin" | String | No |
GrantRead | Grants read permission. Format: id="OwnerUin" | String | No |
{'UploadId': '150219101333cecfd6718d0caea1e2738401f93aa531a4be7a2afee0f8828416f3278e5570','Bucket': 'examplebucket-1250000000','Key': 'exampleobject'}
Parameter | Description | Type |
UploadId | ID of the multipart upload | String |
Bucket | Bucket name in the format of BucketName-APPID | String |
Key | Object key, which uniquely identifies an object in a bucket. For example, if an object’s access endpoint is examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg , its key is doc/pic.jpg . | String |
Upload Part
) is used to upload an object in parts.upload_part(Bucket, Key, Body, PartNumber, UploadId, **kwargs)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport logging# In most cases, set the log level to INFO. If you need to debug, you can set it to DEBUG and the SDK will print information about the communication with the server.logging.basicConfig(level=logging.INFO, stream=sys.stdout)# 1. Set user attributes such as secret_id, secret_key, and region. Appid has been removed from CosConfig and thus needs to be specified in Bucket, which is formatted as BucketName-Appid.secret_id = os.environ['COS_SECRET_ID'] # User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.secret_key = os.environ['COS_SECRET_KEY'] # User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.region = 'ap-beijing' # Replace it with the actual region, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket.# For the list of regions supported by COS, visit https://www.tencentcloud.com/document/product/436/6224.token = None # Token is required for temporary keys but not permanent keys. For more information about how to generate and use a temporary key, visit https://www.tencentcloud.com/document/product/436/14048.scheme = 'https' # Specify whether to use HTTP or HTTPS protocol to access COS. This field is optional and is `https` by default.config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)# Note: You can upload at most 10,000 parts at a time.response = client.upload_part(Bucket='examplebucket-1250000000',Key='exampleobject',Body=b'b'*1024*1024,PartNumber=1,UploadId='exampleUploadId')
# Note: You can upload at most 10,000 parts at a time.response = client.upload_part(Bucket='examplebucket-1250000000',Key='exampleobject',Body=b'bytes'|file,PartNumber=1,UploadId='string',EnableMD5=False|True,ContentLength='123',ContentMD5='string',TrafficLimit='1048576')
Parameter | Description | Type | Required |
Bucket | Bucket name in the format of BucketName-APPID | String | Yes |
Key | Object key, which uniquely identifies an object in a bucket. For example, if an object’s access endpoint is examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg , its key is doc/pic.jpg . | String | Yes |
Body | Content of the parts to upload. It can be a local file stream or a byte stream | file/bytes | Yes |
PartNumber | Part number | Int | Yes |
UploadId | ID of the multipart upload | String | Yes |
EnableMD5 | Whether to calculate the Content-MD5 checksum, which will extend the upload time. It’s not calculated by default. | Bool | No |
ContentLength | Length of the content | String | No |
ContentMD5 | MD5 checksum of the uploaded object, which is used for verification | String | No |
TrafficLimit | Bandwidth limit for a single request in bit/s. Value range: 819200-838860800, i.e., 100 KB/s - 100 MB/s | String | No |
{'ETag': 'string'}
Parameter | Description | Type |
ETag | MD5 checksum of the uploaded parts | String |
Upload Part - Copy
) is used to copy a part of an object.upload_part_copy(Bucket, Key, PartNumber, UploadId, CopySource, CopySourceRange='', **kwargs)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport logging# In most cases, set the log level to INFO. If you need to debug, you can set it to DEBUG and the SDK will print information about the communication with the server.logging.basicConfig(level=logging.INFO, stream=sys.stdout)# 1. Set user attributes such as secret_id, secret_key, and region. Appid has been removed from CosConfig and thus needs to be specified in Bucket, which is formatted as BucketName-Appid.secret_id = os.environ['COS_SECRET_ID'] # User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.secret_key = os.environ['COS_SECRET_KEY'] # User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.region = 'ap-beijing' # Replace it with the actual region, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket.# For the list of regions supported by COS, visit https://www.tencentcloud.com/document/product/436/6224.token = None # Token is required for temporary keys but not permanent keys. For more information about how to generate and use a temporary key, visit https://www.tencentcloud.com/document/product/436/14048.scheme = 'https' # Specify whether to use HTTP or HTTPS protocol to access COS. This field is optional and is `https` by default.config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)response = client.upload_part_copy(Bucket='examplebucket-1250000000',Key='exampleobject',PartNumber=1,UploadId='exampleUploadId',CopySource={'Bucket': 'sourcebucket-1250000000','Key': 'exampleobject','Region': 'ap-guangzhou'})
response = client.upload_part_copy(Bucket='examplebucket-1250000000',Key='exampleobject',PartNumber=100,UploadId='string',CopySource={'Bucket': 'sourcebucket-1250000000','Key': 'sourceObject','Region': 'COS_REGION', #Replace it with the source bucket’s region'VersionId': 'string'},CopySourceRange='string',CopySourceIfMatch='string',CopySourceIfModifiedSince='string',CopySourceIfNoneMatch='string',CopySourceIfUnmodifiedSince='string')
Parameter | Description | Type | Required |
Bucket | Bucket name in the format of BucketName-APPID | String | Yes |
Key | Object key, which uniquely identifies an object in a bucket. For example, if an object’s access endpoint is examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg , its key is doc/pic.jpg . | String | Yes |
PartNumber | Part number | Int | Yes |
UploadId | ID of the multipart upload | String | Yes |
CopySource | Path of the source object to copy, which contains Bucket , Key , Region , and VersionId | Dict | Yes |
CopySourceRange | Byte range of the source object to copy in the format of bytes=first-last . The entire source will be copied by default if no range is specified. | String | No |
CopySourceIfMatch | ETag that must be matched. The object is copied only if its ETag matches the value. | String | No |
CopySourceIfModifiedSince | Required modification time. The object is copied only if it has been modified since the specified time. | String | No |
CopySourceIfNoneMatch | ETag that cannot be matched. The object is copied only if its ETag does not match the specified value. | String | No |
CopySourceIfUnmodifiedSince | Required unmodified time. The object is copied only if it hasn’t been modified since the specified time. | String | No |
{'ETag': 'string','LastModified': 'string','x-cos-copy-source-version-id': 'string',}
Parameter | Description | Type |
ETag | MD5 checksum of the copied parts | String |
LastModified | Time when the copied parts were last modified | String |
x-cos-copy-source-version-id | Version ID of the source object | String |
List Parts
) is used to query the uploaded parts of a multipart upload.list_parts(Bucket, Key, UploadId, MaxParts=1000, PartNumberMarker=0, EncodingType='', **kwargs)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport logging# In most cases, set the log level to INFO. If you need to debug, you can set it to DEBUG and the SDK will print information about the communication with the server.logging.basicConfig(level=logging.INFO, stream=sys.stdout)# 1. Set user attributes such as secret_id, secret_key, and region. Appid has been removed from CosConfig and thus needs to be specified in Bucket, which is formatted as BucketName-Appid.secret_id = os.environ['COS_SECRET_ID'] # User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.secret_key = os.environ['COS_SECRET_KEY'] # User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.region = 'ap-beijing' # Replace it with the actual region, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket.# For the list of regions supported by COS, visit https://www.tencentcloud.com/document/product/436/6224.token = None # Token is required for temporary keys but not permanent keys. For more information about how to generate and use a temporary key, visit https://www.tencentcloud.com/document/product/436/14048.scheme = 'https' # Specify whether to use HTTP or HTTPS protocol to access COS. This field is optional and is `https` by default.config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)response = client.list_parts(Bucket='examplebucket-1250000000',Key='exampleobject',UploadId='exampleUploadId')
response = client.list_parts(Bucket='examplebucket-1250000000',Key='exampleobject',UploadId=uploadid,MaxParts=1000,PartNumberMarker=100,EncodingType='url')
Parameter | Description | Type | Required |
Bucket | Bucket name in the format of BucketName-APPID | String | Yes |
Key | Object key, which uniquely identifies an object in a bucket. For example, if an object’s access endpoint is examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg , its key is doc/pic.jpg . | String | Yes |
UploadId | ID of the multipart upload | String | Yes |
MaxParts | Maximum number of parts returned at a time, which is 1000 (the maximum value allowed) by default | Int | No |
PartNumberMarker | The number of the part after which the list begins. The value of this parameter is 0 by default, which means the list begins from the first part. | Int | No |
EncodingType | Encoding method of the returned value. The value is not encoded by default. Valid value: url | String | No |
{'Bucket': 'examplebucket-1250000000','Key': 'exampleobject','UploadId': '1502192444bdb382add546a35b2eeab81e06ed84086ca0bb75ea45ca7fa073fa9cf74ec4f2','EncodingType': None,'MaxParts': '1000','IsTruncated': 'true','PartNumberMarker': '0','NextPartNumberMarker': '1000','StorageClass': 'Standard','Part': [{'LastModified': '2017-08-08T11:40:48.000Z','PartNumber': '1','ETag': '"8b8378787c0925f42ccb829f6cc2fb97"','Size': '10485760'},],'Initiator': {'DisplayName': '3333333333','ID': 'qcs::cam::uin/3333333333:uin/3333333333'},'Owner': {'DisplayName': '124564654654','ID': '124564654654'}}
Parameter | Description | Type |
Bucket | Bucket name in the format of BucketName-APPID | String |
Key | Object key, which uniquely identifies an object in a bucket. For example, if an object’s access endpoint is examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg , its key is doc/pic.jpg . | String |
UploadId | ID of the multipart upload | String |
EncodingType | Encoding type of the returned value. The returned value is not encoded by default. Valid value: url | String |
MaxParts | Maximum number of parts returned at a time, which is 1000 (the maximum value allowed) by default | String |
IsTruncated | Whether the returned part list is truncated | String |
PartNumberMarker | The number of the part after which the list begins. The value of this parameter is 0 by default, which means the list begins from the first part. | String |
NextPartNumberMarker | The number of the part after which the next returned list begins | String |
StorageClass | Storage class of the object. For more information about storage classes such as STANDARD (default), STANDARD_IA , and ARCHIVE , please see Storage Class Overview. | String |
Part | Information on the uploaded parts, including ETag , PartNumber , Size , and LastModified | String |
Initiator | Initiator of the multipart upload, including DisplayName and ID | Dict |
Owner | Information on the object owner, including DisplayName and ID | Dict |
Complete Multipart Upload
) is used to complete a multipart upload.complete_multipart_upload(Bucket, Key, UploadId, MultipartUpload={}, **kwargs)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport logging# In most cases, set the log level to INFO. If you need to debug, you can set it to DEBUG and the SDK will print information about the communication with the server.logging.basicConfig(level=logging.INFO, stream=sys.stdout)# 1. Set user attributes such as secret_id, secret_key, and region. Appid has been removed from CosConfig and thus needs to be specified in Bucket, which is formatted as BucketName-Appid.secret_id = os.environ['COS_SECRET_ID'] # User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.secret_key = os.environ['COS_SECRET_KEY'] # User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.region = 'ap-beijing' # Replace it with the actual region, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket.# For the list of regions supported by COS, visit https://www.tencentcloud.com/document/product/436/6224.token = None # Token is required for temporary keys but not permanent keys. For more information about how to generate and use a temporary key, visit https://www.tencentcloud.com/document/product/436/14048.scheme = 'https' # Specify whether to use HTTP or HTTPS protocol to access COS. This field is optional and is `https` by default.config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)response = client.complete_multipart_upload(Bucket='examplebucket-1250000000',Key='exampleobject',UploadId='exampleUploadId',MultipartUpload={'Part': [{'ETag': 'string','PartNumber': 1},{'ETag': 'string','PartNumber': 2},]},)
Parameter | Description | Type | Required |
Bucket | Bucket name in the format of BucketName-APPID | String | Yes |
Key | Object key, which uniquely identifies an object in a bucket. For example, if an object’s access endpoint is examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg , its key is doc/pic.jpg . | String | Yes |
UploadId | ID of the multipart upload | String | Yes |
MultipartUpload | Information on all parts, including ETag and PartNumber | Dict | Yes |
{'ETag': '"3f866d0050f044750423e0a4104fa8cf-2"','Bucket': 'examplebucket-1250000000','Location': 'examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/exampleobject','Key': 'exampleobject'}
Parameter | Description | Type |
ETag | The unique tag of the assembled object. This value is not necessarily the MD5 checksum of the object. It is used to verify the uniqueness of the object. To verify the object content, you can check the ETag of each part during the upload process. | String |
Bucket | Bucket name in the format of BucketName-APPID | String |
Location | URL address | String |
Key | Object key, which uniquely identifies an object in a bucket. For example, if an object’s access endpoint is examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg , its key is doc/pic.jpg . | String |
Abort Multipart Upload
) is used to abort a multipart upload and delete the uploaded parts.abort_multipart_upload(Bucket, Key, UploadId, **kwargs)
# -*- coding=utf-8from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Clientimport sysimport logging# In most cases, set the log level to INFO. If you need to debug, you can set it to DEBUG and the SDK will print information about the communication with the server.logging.basicConfig(level=logging.INFO, stream=sys.stdout)# 1. Set user attributes such as secret_id, secret_key, and region. Appid has been removed from CosConfig and thus needs to be specified in Bucket, which is formatted as BucketName-Appid.secret_id = os.environ['COS_SECRET_ID'] # User `SecretId`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.secret_key = os.environ['COS_SECRET_KEY'] # User `SecretKey`. We recommend you use a sub-account key and follow the principle of least privilege to reduce risks. For information about how to obtain a sub-account key, visit https://www.tencentcloud.com/document/product/598/32675.region = 'ap-beijing' # Replace it with the actual region, which can be viewed in the console at https://console.tencentcloud.com/cos5/bucket.# For the list of regions supported by COS, visit https://www.tencentcloud.com/document/product/436/6224.token = None # Token is required for temporary keys but not permanent keys. For more information about how to generate and use a temporary key, visit https://www.tencentcloud.com/document/product/436/14048.scheme = 'https' # Specify whether to use HTTP or HTTPS protocol to access COS. This field is optional and is `https` by default.config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)client = CosS3Client(config)response = client.abort_multipart_upload(Bucket='examplebucket-1250000000',Key='exampleobject',UploadId='exampleUploadId')
Parameter | Description | Type | Required |
Bucket | Bucket name in the format of BucketName-APPID | String | Yes |
Key | Object key, which uniquely identifies an object in a bucket. For example, if an object’s access endpoint is examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg , its key is doc/pic.jpg . | String | Yes |
UploadId | ID of the multipart upload | String | Yes |
None
.
Was this page helpful?