From c9ed18f2ddad1e0cdf20480c275f0e74a792d98d Mon Sep 17 00:00:00 2001 From: dong <1278815766@qq.com> Date: Sun, 22 Jun 2025 23:34:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AA=E5=88=9D=E5=A7=8B=E5=8C=96=E4=B8=80?= =?UTF-8?q?=E6=AC=A1OSS=E5=AF=B9=E8=B1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Form1.cs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Form1.cs b/Form1.cs index 8ba5296..c0b9ca5 100644 --- a/Form1.cs +++ b/Form1.cs @@ -52,6 +52,8 @@ namespace CheckDownload // 网络优化: 静态HttpClient实例,避免套接字耗尽 private static readonly HttpClient _httpClient = new HttpClient { Timeout = TimeSpan.FromSeconds(20) }; + // OSS客户端:仅初始化一次,避免频繁创建导致内存占用过高 + private static readonly OssClient _ossClient = new OssClient(OssEndpoint, OssAccessKeyId, OssAccessKeySecret); // 网络优化: 备用DNS服务列表,提高解析成功率 private static readonly List _dnsServers = new List { "223.5.5.5", "119.29.29.29" }; @@ -441,8 +443,7 @@ namespace CheckDownload UpdateStatus($"{fileName} {_completedCount + 1}/{_totalCount}"); string ossKey = $"File/{expectedMd5}"; - var client = new OssClient(OssEndpoint, OssAccessKeyId, OssAccessKeySecret); - var obj = await Task.Run(() => client.GetObject(OssBucketName, ossKey)); + var obj = _ossClient.GetObject(OssBucketName, ossKey); string tempDir = Path.GetDirectoryName(tempFilePath); if (!Directory.Exists(tempDir)) @@ -1029,8 +1030,7 @@ namespace CheckDownload // 1. 先尝试用 OSS SDK 下载 try { - OssClient client = new OssClient(OssEndpoint, OssAccessKeyId, OssAccessKeySecret); - var obj = client.GetObject(OssBucketName, ossKey); + var obj = _ossClient.GetObject(OssBucketName, ossKey); string localDir = Path.GetDirectoryName(localPath); if (!Directory.Exists(localDir)) { @@ -1057,12 +1057,11 @@ namespace CheckDownload } // 用 SDK 生成带签名的 URL - OssClient fallbackClient = new OssClient(OssEndpoint, OssAccessKeyId, OssAccessKeySecret); var req = new GeneratePresignedUriRequest(OssBucketName, ossKey, SignHttpMethod.Get) { Expiration = DateTime.Now.AddMinutes(10) }; - var signedUrl = fallbackClient.GeneratePresignedUri(req).ToString(); + var signedUrl = _ossClient.GeneratePresignedUri(req).ToString(); var signedUri = new Uri(signedUrl); foreach (var ip in ips) @@ -1235,7 +1234,7 @@ namespace CheckDownload { // 1. 首先尝试从123盘下载 UpdateStatus("尝试从123盘下载MD5文件..."); - if (await DownloadFromOneDrive(fileName, fileName, localPath)) + if (await DownloadFromOneDrive(OneDriveLink, fileName, localPath)) { return true; }