Uploading Objects - Streaming
API Description
You can use this API to upload readable objects that contain the read attribute as the data source and upload data to a specified bucket in network stream or file stream mode.
Method Definition
ObsClient.putContent(bucketName, objectKey, content, metadata, headers, progressCallback, autoClose)
Request Parameters
| Field | Type | Optional or Mandatory | Description |
|---|---|---|---|
| bucketName | str | Mandatory | Bucket name |
| objectKey | str | Mandatory | Object name or the name of the uploaded object |
| content | str or readable object | Optional | Object content to be uploaded |
| metadata | dict | Optional | Customized metadata of the object |
| headers | Optional | Additional header of the request for uploading an object | |
| progressCallback | callable | Optional | Callback function for obtaining the upload progress NOTE: This function contains the following parameters in sequence: number of uploaded bytes, total number of bytes, and used time (unit: second). For details about the sample code, see Uploading an Object – Obtaining the Upload Progress. Streaming upload, file-based upload, multipart upload, appendable upload, and resumable upload are supported. |
| autoClose | bool | Optional | After the upload is complete, data flow is automatically closed. The default value is True. |
If content is a readable object that contains the read attribute, data can be read from content. Otherwise, the object content is a character string.
Returned Results
| Type | Description |
|---|---|
| SDK common result object |
| GetResult.body Type | Description |
|---|---|
| Response result of the request for uploading an object |
Sample Code
try:
import sys
if sys.version_info.major == 2 or not sys.version > '3':
import httplib
else:
import http.client as httplib
conn = httplib.HTTPConnection('www.a.com', 80)
conn.request('GET', '/')
content = conn.getresponse()
resp = obsClient.putContent('bucketname', 'objectname', content=content)
if resp.status < 300:
print('requestId:', resp.requestId)
else:
print('errorCode:', resp.errorCode)
print('errorMessage:', resp.errorMessage)
except:
import traceback
print(traceback.format_exc()) try:
content = open('localfile', 'rb')
resp = obsClient.putContent('bucketname', 'objectname', content=content)
if resp.status < 300:
print('requestId:', resp.requestId)
else:
print('errorCode:', resp.errorCode)
print('errorMessage:', resp.errorMessage)
except:
import traceback
print(traceback.format_exc())
- When this upload mode is used, the value of content must be a readable object that contains the read property.
- When uploading file streams, you must open files in rb or rb+ mode.
- To upload a large file, you are advised to use multipart upload.
- The content to be uploaded cannot exceed 5 GB.
Last Article: Uploading Objects - Text-Based
Next Article: Uploading Objects - File-Based
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.