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 regionString region = "COS_REGION";// Create a `CosXmlServiceConfig` object and modify the configuration parameters as neededCosXmlServiceConfig serviceConfig = CosXmlServiceConfig(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:TransferConfig transferConfig = 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 the `TransferManager`CosTransferManger transferManager = Cos().getDefaultTransferManger();//CosTransferManger transferManager = 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.String bucket = "examplebucket-1250000000";String cosPath = "exampleobject"; // Location identifier of the object in the bucket, i.e., the object keyString srcPath = "Absolute path of the local file"; // Absolute 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 nullString? _uploadId;// Callback for successful uploadsuccessCallBack(result) {// TODO: Logic after successful upload}// Callback for failed uploadfailCallBack(clientException, serviceException) {// TODO: Logic after failed uploadif (clientException != null) {print(clientException);}if (serviceException != null) {print(serviceException);}}// Callback for the upload status, through which you can check the task processstateCallback(state) {// todo notify transfer state}// Callback for the upload progressprogressCallBack(complete, target) {// todo Do something to update progress...}// Callback for the completion of multipart upload initializationinitMultipleUploadCallback(String bucket, String cosKey, String uploadId) {//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/sint _trafficLimit = 1024 * 1024 * 8;// Start the uploadTransferTask transferTask = await transferManager.upload(bucket, cosPath,filePath: srcPath,uploadId: _uploadId,trafficLimit: _trafficLimit,resultListener: ResultListener(successCallBack, 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.// `TransferManager` 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 the `TransferManager`CosTransferManger transferManager = Cos().getDefaultTransferManger();//CosTransferManger transferManager = 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.String bucket = "examplebucket-1250000000";String cosPath = "exampleobject"; // Location identifier of the object in the bucket, i.e., the object keyString downliadPath = "Absolute path of the local file"; // Absolute path of the local file// Callback for successful downloadsuccessCallBack(result) {// TODO: Logic after successful download}// Callback for failed downloadfailCallBack(clientException, serviceException) {// TODO: Logic after failed downloadif (clientException != null) {print(clientException);}if (serviceException != null) {print(serviceException);}}// Callback for the download status, through which you can check the task processstateCallback(state) {// todo notify transfer state}// Callback for the download progressprogressCallBack(complete, target) {// 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/sint _trafficLimit = 1024 * 1024 * 8;// Start the downloadTransferTask transferTask = await transferManager.download(bucket, cosPath, downliadPath,trafficLimit: _trafficLimit,resultListener: ResultListener(successCallBack, failCallBack),stateCallback: stateCallback,progressCallBack: progressCallBack);// Pause the tasktransferTask.pause();// Resume the tasktransferTask.resume();// Cancel the tasktransferTask.cancel();
Was this page helpful?