trafficLimit
parameter passed in when the upload
and download
methods are called.// Bucket region abbreviation. For example, "ap-guangzhou" is the abbreviation of the Guangzhou regionlet region = "COS_REGION";// Create a `CosXmlServiceConfig` object and modify the configuration parameters as neededlet serviceConfig = {region: region,isDebuggable: true,isHttps: true,};// Create a `TransferConfig` object and modify the configuration parameters as needed// You can set the object size threshold for multipart upload in `TransferConfig`. By default, the system automatically executes multipart upload for files whose sizes are greater than or equal to 2 MB. You can use the following code to change the threshold:let transferConfig = {forceSimpleUpload: false,enableVerification: true,divisionForUpload: 2097152, // Set multipart upload for files whose sizes are greater than or equal to 2 MBsliceSizeForUpload: 1048576, // Set the default part size to 1 MB};// Register the default COS TransferMangerawait Cos.registerDefaultTransferManger(serviceConfig, transferConfig);// Get `CosTransferManger`let cosTransferManger: CosTransferManger = Cos.getDefaultTransferManger();//let cosTransferManger: CosTransferManger = Cos.getTransferManger(newRegion);// Bucket name in the format of `BucketName-APPID` (`APPID` is required), which can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucket.let bucket = "examplebucket-1250000000";let cosPath = "exampleobject"; //Location identifier of the object in the bucket, i.e., the object keylet srcPath = "Path of the local file"; // Path of the local file// If there is an uploadId for the initialized multipart upload, assign the value of uploadId here to resume the upload. Otherwise, assign `undefined`.let _uploadId = undefined;// Callback for successful uploadlet successCallBack = (header?: object) => {// TODO: Logic after successful upload};// Callback for failed uploadlet failCallBack = (clientError?: CosXmlClientError, serviceError?: CosXmlServiceError) => {// TODO: Logic after failed uploadif (clientError) {console.log(clientError);}if (serviceError) {console.log(serviceError);}};// Callback for the upload status, through which you can check the task processlet stateCallBack = (state: TransferState) => {// todo notify transfer state};// Callback for the upload progresslet progressCallBack = (complete: number, target: number) => {// todo Do something to update progress...};// Callback for the completion of multipart upload initializationlet initMultipleUploadCallBack = (bucket: string, cosKey: string, uploadId: string) => {//The uploadId required for the subsequent checkpoint restarts_uploadId = uploadId;};// Set the bandwidth limit for a single URL in bit/s. In the example, the limit is set to 1 Mbit/slet _trafficLimit = 1024 * 1024 * 8;// Start the uploadlet transferTask:TransferTask = await cosTransferManger.upload(bucket,cosPath,srcPath,{uploadId: _uploadId,trafficLimit: _trafficLimit,resultListener: {successCallBack: successCallBack,failCallBack: failCallBack},stateCallback: stateCallBack,progressCallback: progressCallBack,initMultipleUploadCallback: initMultipleUploadCallBack,});
// The advanced download API supports checkpoint restart. Therefore, a HEAD request will be sent before the download to obtain the file information.// If you are using a temporary key or accessing with a sub-account, ensure that your permission list includes HeadObject.// `CosTransferManger` supports checkpoint restart for download. You only need to ensure the consistency of parameters `bucket`, `cosPath`, and `savePath`.// Then the SDK will resume the download from where interrupted.// Get `CosTransferManger`let cosTransferManger: CosTransferManger = Cos.getDefaultTransferManger();//let cosTransferManger: CosTransferManger = Cos.getTransferManger(newRegion);// Bucket name in the format of `BucketName-APPID` (`APPID` is required), which can be viewed in the COS console at https://console.tencentcloud.com/cos5/bucket.let bucket = "examplebucket-1250000000";let cosPath = "exampleobject"; //Location identifier of the object in the bucket, i.e., the object keylet downliadPath = "Path of the local file"; // Path of the local file// Callback for successful downloadlet successCallBack = (header?: object) => {// TODO: Logic after successful download};// Callback for failed downloadlet failCallBack = (clientError?: CosXmlClientError, serviceError?: CosXmlServiceError) => {// TODO: Logic after failed downloadif (clientError) {console.log(clientError);}if (serviceError) {console.log(serviceError);}};// Callback for the download status, through which you can check the task processlet stateCallBack = (state: TransferState) => {// todo notify transfer state};// Callback for the download progresslet progressCallBack = (complete: number, target: number) => {// todo Do something to download progress...};// Set the bandwidth limit for a single URL in bit/s. In the example, the limit is set to 1 Mbit/slet _trafficLimit = 1024 * 1024 * 8;// Start the downloadlet transferTask:TransferTask = await cosTransferManger.download(bucket,cosPath,downliadPath,{trafficLimit: _trafficLimit,resultListener: {successCallBack: successCallBack,failCallBack: failCallBack},stateCallback: stateCallBack,progressCallback: progressCallBack});
Was this page helpful?