记录重复修改
continuous-integration/drone/push Build is passing Details

Temp_Uat_IRC_Net8
hang 2025-09-18 13:17:18 +08:00
parent 1d6731e3a4
commit 0dff3d6e4b
1 changed files with 23 additions and 5 deletions

View File

@ -1434,6 +1434,8 @@ namespace IRaCIS.Core.Application.Service
var allVersions = new List<ObjectVersionSummary>();
var allDeleteMarkers = new List<DeleteMarkerSummary>();
var allDeleteDistinceKeys = new List<string>();
var request = new ListObjectVersionsRequest(tempToken.AliyunOSS.BucketName)
{
Prefix = "test-delete-restore",
@ -1487,7 +1489,14 @@ namespace IRaCIS.Core.Application.Service
if (prevVersion == null)
continue; // 没找到可恢复版本
//这里会出现同一个key 删除多次,然后下载多次,恢复的时候插入数据有问题
if (allDeleteDistinceKeys.Contains(del.Key))
{
continue;
}
allDeleteDistinceKeys.Add(del.Key);
// 创建 CopyObject 请求
@ -1560,6 +1569,7 @@ namespace IRaCIS.Core.Application.Service
tempToken.AliyunOSS.AccessKeySecret,
tempToken.AliyunOSS.SecurityToken);
var allDeleteDistinceKeys = new List<string>();
var restoreCount = 0;
foreach (var item in rows)
@ -1570,6 +1580,14 @@ namespace IRaCIS.Core.Application.Service
continue;
}
if (allDeleteDistinceKeys.Contains(item.Key))
{
continue;
}
allDeleteDistinceKeys.Add(item.Key);
try
{
@ -1632,13 +1650,13 @@ namespace IRaCIS.Core.Application.Service
var copyResult = _ossClient.CopyObject(copyReq);
Console.WriteLine($"✅ 恢复成功: {item.Key} 版本{item.VersionId}, 新版本ID={copyResult.VersionId}");
Console.WriteLine($"✅ 恢复成功: {item.SubjectCode} {item.Key} 版本{item.VersionId}, 新版本ID={copyResult.VersionId}");
}
catch (Exception ex)
{
var errorMsg = $"❌ 恢复失败: {item.Key}, 错误: {ex.Message}";
var errorMsg = $"❌ 恢复失败:{item.SubjectCode} {item.Key}, 错误: {ex.Message}";
Console.WriteLine(errorMsg);
await File.AppendAllTextAsync(outputErrorFile, errorMsg + Environment.NewLine);