只初始化一次OSS对象
This commit is contained in:
13
Form1.cs
13
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<string> _dnsServers = new List<string> { "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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user