Upload File (Resumable Upload)
API Description
This API is an encapsulated and enhanced version of multipart upload, and supports upload progress reporting, upload event reporting, task pause, and resumable upload.
Method Definition
ObsClient.uploadFile
Request Parameter
Field |
Type |
Optional or Mandatory |
Description |
---|---|---|---|
Bucket |
String |
If UploadCheckpoint is not set, this parameter is mandatory. |
Bucket name |
Key |
String |
If UploadCheckpoint is not set, this parameter is mandatory. |
Object name |
RequestDate |
String or Date |
Optional |
Request time
NOTE:
When the parameter type is String, the value must comply with the ISO8601 or RFC822 standards. |
SourceFile |
File or Blob |
If UploadCheckpoint is not set, this parameter is mandatory. |
Source file to be uploaded (The browser must support FileReader.) |
UploadCheckpoint |
Object |
Optional |
Resumable upload recording object, which can be obtained by running the ResumeCallback command. |
PartSize |
Number |
Optional |
Part size, in bytes. The value ranges from 100 KB to 5 GB and defaults to 9 MB. |
TaskNum |
Number |
Optional |
Maximum number of parts that can be concurrently uploaded. The default value is 1. |
ProgressCallback |
Function |
Optional |
Callback function for obtaining the upload progress
NOTE:
This callback function contains the following parameters in sequence: Number of uploaded bytes, total bytes, and used time (unit: second). |
EventCallback |
Function |
Optional |
Callback function for obtaining the upload event
NOTE:
|
ResumeCallback |
Function |
Optional |
Callback function for obtaining the resumable upload control parameters.
NOTE:
|
ACL |
String |
Optional |
Pre-defined access control policy specified during object creation |
StorageClass |
String |
Optional |
Storage class, which can be specified during the object creation |
Metadata |
Object |
Optional |
Customized metadata of the object |
WebsiteRedirectLocation |
String |
Optional |
Location where the object is redirected to, when the bucket is configured with website hosting. |
Expires |
Number |
Optional |
Expiration time of the object, in days |
ContentType |
String |
Optional |
MIME type of the object |
SseKms |
String |
Optional |
Algorithm used in SSE-KMS encryption. The valid value is kms. |
SseKmsKey |
String |
Optional |
Master key used in SSE-KMS encryption. The value can be null. |
SseC |
String |
Optional |
Algorithm used in SSE-C encryption. The value can be AES256. |
SseCKey |
String |
Optional |
Key used in SSE-C encryption. It is calculated by using AES-256. |
Returned Result (InterfaceResult)
Field |
Type |
Description |
---|---|---|
RequestId |
String |
Request ID returned by the OBS server |
ETag |
String |
ETag calculated based on the ETags of all combined parts |
Bucket |
String |
Bucket in which parts are combined |
Key |
String |
Object name obtained after part combination |
Location |
String |
URL of the object generated after part combination |
VersionId |
String |
Version ID of the object obtained after part combination |
Sample Code
var cp; var hook; obsClient.uploadFile({ Bucket : 'bucketname', Key : 'objectkey', SourceFile : document.getElementById('input-file').files[0], PartSize : 9 * 1024 * 1024, ProgressCallback : function(transferredAmount, totalAmount, totalSeconds){ console.log(transferredAmount * 1.0 / totalSeconds / 1024); console.log(transferredAmount * 100.0 / totalAmount); }, ResumeCallback : function(resumeHook, uploadCheckpoint){ hook = resumeHook; cp = uploadCheckpoint; } }, function(err, result){ if(err){ console.error('Error-->' + err); }else{ if(result.CommonMsg.Status < 300){ console.log('RequestId-->' + result.InterfaceResult.RequestId); console.log('Bucket-->' + result.InterfaceResult.Bucket); console.log('Key-->' + result.InterfaceResult.Key); console.log('Location-->' + result.InterfaceResult.Location); }else{ console.log('Code-->' + result.CommonMsg.Code); console.log('Message-->' + result.CommonMsg.Message); } } });
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot