/// 批量上传 public async void TransferBatchUploadObjects() { //.cssg-snippet-body-start:[transfer-batch-upload-objects] TransferConfig transferConfig = new TransferConfig(); // 初始化 TransferManager TransferManager transferManager = new TransferManager(cosXml, transferConfig); string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID for (int i = 0; i < 5; i++) { // 上传对象 string cosPath = "exampleobject" + i; //对象在存储桶中的位置标识符,即称对象键 string srcPath = @"temp-source-file"; //本地文件绝对路径 COSXMLUploadTask uploadTask = new COSXMLUploadTask(bucket, cosPath); uploadTask.SetSrcPath(srcPath); await transferManager.UploadAsync(uploadTask); } //.cssg-snippet-body-end }
internal static async Task <String> PutObject(CosXmlServer cosXml) { string cosKey = "cosKey"; //.cssg-snippet-body-start:[transfer-upload-file] // 初始化 TransferConfig TransferConfig transferConfig = new TransferConfig(); // 初始化 TransferManager TransferManager transferManager = new TransferManager(cosXml, transferConfig); //对象在存储桶中的位置标识符,即称对象键 String cosPath = cosKey; //本地文件绝对路径 String srcPath = @"本地绝对路径"; // 上传对象 COSXMLUploadTask uploadTask = new COSXMLUploadTask(bucket, cosPath); uploadTask.SetSrcPath(srcPath); uploadTask.progressCallback = delegate(long completed, long total) { Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total)); }; try { COSXML.Transfer.COSXMLUploadTask.UploadTaskResult result = await transferManager.UploadAsync(uploadTask); Console.WriteLine(result.GetResultInfo()); string eTag = result.eTag; } catch (Exception e) { Console.WriteLine("CosException: " + e); } return(cosKey); }
/// 上传时对单链接限速 public void UploadObjectTrafficLimit() { //.cssg-snippet-body-start:[upload-object-traffic-limit] TransferConfig transferConfig = new TransferConfig(); // 初始化 TransferManager TransferManager transferManager = new TransferManager(cosXml, transferConfig); string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID string cosPath = "dir/exampleObject"; // 对象键 string srcPath = @"temp-source-file"; //本地文件绝对路径 PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, cosPath, srcPath); putObjectRequest.LimitTraffic(8 * 1000 * 1000); // 限制为1MB/s COSXMLUploadTask uploadTask = new COSXMLUploadTask(putObjectRequest); uploadTask.SetSrcPath(srcPath); transferManager.Upload(uploadTask); //.cssg-snippet-body-end }
public void Run() { string srcPath = File.LocalPath + "\\" + File.FileName; //本地文件绝对路径 FileRequest fileRequest = new FileRequest(); int status = fileRequest.Upload(srcPath, File.RemotePath + "\\" + File.FileName, out UploadResponse res); switch (status) { case -20000: TaskStatusDetectionThread.Abort(); UploadTaskList.SetFailure(File.Key, "请求服务器失败,请稍后再试。"); break; case -10000: TaskStatusDetectionThread.Abort(); UploadTaskList.SetFailure(File.Key, res.message); break; case 101: TaskStatusDetectionThread.Abort(); UploadTaskList.SetProgress(File.Key, 1, 1); UploadTaskList.SetSuccess(File.Key); break; case 100: { string bucket = res.data.tencentCos.bucket; //存储桶,格式:BucketName-APPID string cosPath = res.data.file.storageName; //对象在存储桶中的位置标识符,即称对象键 CosService cosService = new CosService(res.data.tencentCos.region); CosXml cosXml = cosService.getCosXml(res.data.token.credentials.tmpSecretId, res.data.token.credentials.tmpSecretKey, res.data.token.credentials.token, res.data.token.expiredTime); TransferConfig transferConfig = new TransferConfig(); TransferManager transferManager = new TransferManager(cosXml, transferConfig); PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, cosPath, srcPath); uploadTask = new COSXMLUploadTask(putObjectRequest); uploadTask.SetSrcPath(srcPath); uploadTask.progressCallback = delegate(long completed, long total) { UploadTaskList.SetProgress(File.Key, completed, total); Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total)); }; uploadTask.successCallback = delegate(CosResult cosResult) { TaskStatusDetectionThread.Abort(); fileRequest.ConfirmUpload(res.data.file.id, res.data.file.guid); COSXMLUploadTask.UploadTaskResult result = cosResult as COSXMLUploadTask.UploadTaskResult; Console.WriteLine("successCallback: " + result.GetResultInfo()); string eTag = result.eTag; UploadTaskList.SetSuccess(File.Key); }; uploadTask.failCallback = delegate(CosClientException clientEx, CosServerException serverEx) { if (clientEx != null) { Console.WriteLine("CosClientException: " + clientEx); } if (serverEx != null) { Console.WriteLine("CosServerException: " + serverEx.GetInfo()); } TaskStatusDetectionThread.Abort(); UploadTaskList.SetFailure(File.Key, "COS上传出错。"); }; transferManager.Upload(uploadTask); } break; default: TaskStatusDetectionThread.Abort(); UploadTaskList.SetFailure(File.Key, "未知原因上传失败。"); break; } }