Release Notes
Announcements
API | Operation Name | Operation Description |
Uploading Objects in Simple Upload Mode | Upload an object to a bucket. |
API | Operation Name | Operation Description |
Querying Multipart Upload | Query information about ongoing multipart upload tasks. | |
Initializing Multipart Upload | Initialize a multipart upload task. | |
Uploading Parts | Upload the object using multipart upload | |
Querying Uploaded Parts | Query uploaded parts in a specified multipart upload operation. | |
Completing Multipart Upload | Complete multipart upload of the entire file. | |
Terminating Multipart Upload | Terminate a multipart upload operation and delete uploaded parts. |
{"version": "2.0","statement": [{"action": [//head operation"name/cos:HeadObject",//Simple upload operation"name/cos:PutObject",//Multipart upload: Initializing multipart upload operations"name/cos:InitiateMultipartUpload",//Multipart upload: Listing ongoing multipart upload operations"name/cos:ListMultipartUploads",//Multipart upload: Listing uploaded parts"name/cos:ListParts",//Multipart upload: Uploading parts operation"name/cos:UploadPart",//Multipart upload: Completing all multipart upload operations"name/cos:CompleteMultipartUpload",//Canceling multipart upload operations"name/cos:AbortMultipartUpload"],"effect": "allow","resource": ["qcs::cos:ap-beijing:uid/1250000000:examplebucket-1250000000/doc/*"]}]}
// Instantiate PutObjectRequest, set the bucket name, destination path, and local file path.// Bucket name: which consists of BucketName-Appid, can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucket// Destination path for upload: which is the full path of the object on COS. If including a directory, the format should be "video/xxx/movie.mp4"// Local file: file path.let putRequest = new PutObjectRequest("bucket name", "destination path", "local file");// Use the CosXmlBaseService instance to call the upload method to obtain the current upload task. For the specific usage of CosXmlBaseService, see CosXmlBaseService.let task:UploadTask = CosXmlBaseService.default().upload(putReqeust);// Set initCallBack to obtain the multipart upload uploadId (simple upload does not return uploadId)task.initCallBack = (uploadId:string)=>{this.uploadId = uploadId;}// Set the upload progress callbacktask.onProgress = (progress: HttpProgress) => {//complete: The number of bytes sent//target: The total number of bytes to be sent in this upload (which is the size of a single file)};// Set the completion callbacktask.onResult = {// Success callbackonSuccess: (request, result) => {// request: current request// resultL: response result},// Failure callbackonFail: (request, error) => {// request: current request// error: error message}}// Start the task task.start()
// Instantiate PutObjectRequest, set the bucket name, destination path, and file content ArrayBuffer.// When uploading data in ArrayBuffer format, pause and resume is not supported.// // Bucket name: which consists of BucketName-Appid, can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucket // Upload target path: the full path of the object on COS. If it includes a directory, the format is "video/xxx/movie.mp4" // buffer: file content, type is ArrayBuffer.let buffer:ArrayBuffer = ;let putRequest = new PutObjectRequest("bucket name", "destination path", buffer);// Use the CosXmlBaseService instance to call the upload method to obtain the current upload task. For the specific usage of CosXmlBaseService, see CosXmlBaseService.let task:UploadTask = CosXmlBaseService.default().upload(putReqeust);// Set the upload progress callbacktask.onProgress = (progress: HttpProgress) => {//complete: The number of bytes sent//target: The total number of bytes to be sent in this upload (which is the size of a single file)};// Set the completion callbacktask.onResult = {// Success callbackonSuccess: (request, result) => {// request: current request// resultL: response result},// Failure callbackonFail: (request, error) => {// request: current request// error: error message}}// Start the task task.start()
// Pause: Pauses the current task without clearing uploaded files. task.pause();
// Resume: Restarts the paused task. task.resume();
// Instantiate PutObjectRequest, set the bucket name, destination path, and local file.let putRequest = new PutObjectRequest("bucket name", "destination path", "local file");// Use the CosXmlBaseService instance to call the upload method to obtain the current upload task. For the specific usage of CosXmlBaseService, see CosXmlBaseService.// uploadId: The uploadId for resuming the upload task, which must be persisted by the business side. It is obtained from the task.initCallBack callback.let task:UploadTask = CosXmlBaseService.default().upload(putReqeust,uploadId);// Set initCallBack to obtain the multipart upload uploadId (simple upload does not return uploadId)task.initCallBack = (uploadId:string)=>{this.uploadId = uploadId;}// Set the upload progress callbacktask.onProgress = (progress: HttpProgress) => {//complete: The number of bytes sent//target: The total number of bytes to be sent in this upload (which is the size of a single file)};// Set the completion callbacktask.onResult = {// Success callbackonSuccess: (request, result) => {// request: current request// resultL: response result},// Failure callbackonFail: (request, error) => {// request: current request// error: error message}}task.start()
Cancel: Cancels the current upload task and deletes uploaded temporary files. After cancellation, resuming is no longer supported. task.cancel();
// Initialize putRequest;let putRequest = new PutObjectRequest("bucket name", "destination path", "local file");let credential = new QCloudCredential(); credential.secretID = ''; credential.secretKey = ''; credential.token = '';// Set the temporary key information for the current request.putRequest.credential = credential;let task:UploadTask = CosXmlBaseService.default().upload(putReqeust);task.initCallBack = (uploadId:string)=>{this.uploadId = uploadId;}// Set the upload progress callbacktask.onProgress = (progress: HttpProgress) => {// complete: Bytes sent// target: The total number of bytes to be sent in this upload (which is the size of a single file)};// Set the completion callbacktask.onResult = {// Success callbackonSuccess: (request, result) => {// request: current request// resultL: response result},// Failure callbackonFail: (request, error) => {// request: current request// error: error message}}task.start()
for (int i = 0; i<20; i++) {let putRequest = new PutObjectRequest("bucket name", "upload target path", "local file");let task:UploadTask = CosXmlBaseService.default().upload(putReqeust);task.initCallBack = (uploadId:string)=>{this.uploadId = uploadId;}// Set the upload progress callbacktask.onProgress = (progress: HttpProgress) => {// complete: bytes sent// target: total bytes to be sent for this upload (i.e., the file size)};// Set the completion callbacktask.onResult = {// success callbackonSuccess: (request, result) => {// request: current request// resultL: response result},// failure callbackonFail: (request, error) => {// request: current request// error: error message}}task.start()}
let putRequest = new PutObjectRequest("bucket name", "destination path", "local file");// Initialize TransferConfig;let config = new TransferConfig();// Set the part size threshold to: 2M. config.simpleUploadLimit = 2 * 1024 * 1024;// Call the upload method and pass in config;let task:UploadTask = CosXmlBaseService.default().upload(putReqeust,undefined,config);task.initCallBack = (uploadId:string)=>{this.uploadId = uploadId;}// Set the upload progress callbacktask.onProgress = (progress: HttpProgress) => {// complete: bytes sent// target: total bytes to be sent for this upload (i.e., the file size)};// Set the completion callbacktask.onResult = {// success callbackonSuccess: (request, result) => {// request: current request// resultL: response result},// failure callbackonFail: (request, error) => {// request: current request// error: error message}}task.start()
let putRequest = new PutObjectRequest("bucket name", "destination path", "local file");// Initialize TransferConfig;let config = new TransferConfig();// Set the chunk size to: 1M. config.sliceLength = 1 * 1024 * 1024;// Call the upload method and pass in config;let task:UploadTask = CosXmlBaseService.default().upload(putReqeust,undefined,config);task.initCallBack = (uploadId:string)=>{this.uploadId = uploadId;}// Set the upload progress callbacktask.onProgress = (progress: HttpProgress) => {// complete: bytes sent// target: total bytes to be sent for this upload (i.e., the file size)};// Set the completion callbacktask.onResult = {// success callbackonSuccess: (request, result) => {// request: current request// resultL: response result},// failure callbackonFail: (request, error) => {// request: current request// error: error message}}task.start()
// Initialize putRequest;let putRequest = new PutObjectRequest("bucket name", "destination path", "local file");// The rate limit setting range is 819200 - 838860800, that is, 800Kb/s - 800Mb/s.putRequest.addHeader('x-cos-traffic-limit','819200')let task:UploadTask = CosXmlBaseService.default().upload(putReqeust);task.initCallBack = (uploadId:string)=>{this.uploadId = uploadId;}// Set the upload progress callbacktask.onProgress = (progress: HttpProgress) => {//complete: The number of bytes sent// target: The total number of bytes to be sent in this upload (which is the size of a single file)};// Set the completion callbacktask.onResult = {// Success callbackonSuccess: (request, result) => {// request: current request// resultL: response result},// Failure callbackonFail: (request, error) => {// request: current request// error: error message}}task.start()
/, otherwise they will be identified as folders.// Initialize putRequest;let putRequest = new PutObjectRequest("bucket name", "destination path", "local file");// Set progress callbackrequest.onProgress = (progress: HttpProgress) => {//complete: The number of bytes sent//target: The total number of bytes to be sent in this upload (which is the size of a single file)};try { let result:PutObjectResult = await CosXmlBaseService.default().putObject(request);} catch (e) { }
let request = new InitMultipartUploadRequest("bucket name", "target upload path"); try { let result:InitMultipartUploadResult = await CosXmlBaseService.default().initMultipartUpload(request); } catch (e) { }
// Instantiate the part information, including the length of each part, the current part offset, and the local file path.let body = new FilePartInfo('length','offset','local path');// partNumber: the current part index, starting from 1.let request = new UploadPartRequest("bucket name","target upload path",(body.index).toString(),body); try { request.onProgress = (progress) => { // progress callback }; request.onSuccess = (response) => { // Part upload succeeded let headers = response!.headers; if (headers) {// Upon successful upload, store the etag and index.// After all parts are uploaded, call the complete upload interface with this information. let etag = headers[HttpHeader.ETAG]; let info = new CompleteMultipartUploadPart(parseInt((body.index + 1).toString()),etag); this.uploadedParts.add(info); } }; request.onFailure = (err: Error) => { // Part upload failed };CosXmlBaseService.default().partUpload(request); } catch (e) { }
// Method to query the uploaded parts in a specific multipart upload.// Specify the uploadId for this multipart upload.let request = new ListPartsRequest("bucket name", "target upload path", uploadId);try{result = await CosXmlBaseService.default().listParts(request);}catch(e){}
let request = new CompleteMultiUploadRequest("bucket name", "target upload path", uploadId);// Sort all parts. this.uploadedParts.sort((obj1:CompleteMultipartUploadPart,obj2:CompleteMultipartUploadPart)=>{ if (obj1.partNumber < obj2.partNumber) { return -1; }else{ return 1; } })// Initialize CompleteMultipartUpload let completeInput = new CompleteMultipartUpload(); completeInput.part = this.uploadedParts; request.completeMultipartUpload = completeInput; try { let result = await CosXmlBaseService.default().completeMultiUpload(request); } catch (e) { }
// Method to abort a multipart upload and delete the uploaded parts.let request = new AbortMultiUploadRequest("bucket name", "target upload path", uploadId); try { await CosXmlBaseService.default().abortMultiUpload(request); } catch (e) { this.onFail(this.request,e); }
Was this page helpful?
You can also Contact sales or Submit a Ticket for help.
Help us improve! Rate your documentation experience in 5 mins.
Feedback