cos-snippets icon indicating copy to clipboard operation
cos-snippets copied to clipboard

.Net SDK 云对象存储示例代码 下载对象,下载的文件未能正常关闭,异步回调死锁导致进程占用

Open levi930 opened this issue 3 years ago • 2 comments

// 初始化 TransferConfig TransferConfig transferConfig = new TransferConfig();

// 初始化 TransferManager TransferManager transferManager = new TransferManager(cosXml, transferConfig);

String bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID String cosPath = "exampleobject"; //对象在存储桶中的位置标识符,即称对象键 string localDir = System.IO.Path.GetTempPath();//本地文件夹 string localFileName = "my-local-temp-file"; //指定本地保存的文件名

// 下载对象 COSXMLDownloadTask downloadTask = new COSXMLDownloadTask(bucket, cosPath, localDir, localFileName);

downloadTask.progressCallback = delegate (long completed, long total) { Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total)); };

try { COSXML.Transfer.COSXMLDownloadTask.DownloadTaskResult result = await transferManager.DownloadAsync(downloadTask); Console.WriteLine(result.GetResultInfo()); string eTag = result.eTag; } catch (Exception e) { Console.WriteLine("CosException: " + e); }

代码运行完成后,下载的资源文件会被进程占用,排查回调死锁导致FileStream未关闭

levi930 avatar Mar 20 '21 08:03 levi930