最近我将我的代码从 .NetFramework 迁移到了 .NetCore 3.1。 在执行此操作时,我陷入了处理 MoveFolder 功能的地方。
之前的代码如下所示。
public void MoveS3Folder(string sourceBucket, string targetBucket, string sourceFolder, string targetFolder)
{
sourceFolder = sourceFolder.Replace('/', '\\');
targetFolder = targetFolder.Replace('/', '\\');
using (var client = AwsObjectCreator.GetAmzonS3())
{
var source = new S3DirectoryInfo(client, sourceBucket, sourceFolder);
S3DirectoryInfo target = new S3DirectoryInfo(client, targetBucket, targetFolder);
if (!target.Exists)
{
target.Create();
}
try
{
source.MoveTo(target);
}
catch (System.IO.IOException e)
{
if (e.Message.Equals("File already exists", StringComparison.OrdinalIgnoreCase))
{
target = new S3DirectoryInfo(client, targetBucket, targetFolder + "\\" + DateTime.Now.ToString("MM-dd-yyyy hh-mm-ss"));
target.Create();
source.MoveTo(target);
}
}
}
}
因为之前我们使用了 AWSSDK.S3 Sdk 包,其中包含 S3DirectoryInfo 类,在此帮助下我们实现了目标。
现在,我正在寻找与 AWSSDKCore.S3 类似的解决方案。
到目前为止我尝试过的事情:
我理解从上述文章中复制数据的概念,但我并没有这样做。
我收到的错误 - “指定的密钥不存在”
如果有人可以提供帮助,那将是可观的!