AWS S3 .Net 复制对象,其键在末尾包含点

AWS S3 .Net copy object that key contains dots at end

我将 AWSSDK 用于 .Net,我的复制文件代码是:

CopyObjectRequest request = new CopyObjectRequest()
  {
    SourceBucket = _bucketName,
    SourceKey = sourceObjectKey,
    DestinationBucket = _bucketName,
    DestinationKey = targetObjectKey
  };

CopyObjectResponse response = amazonS3Client.CopyObject(request);

该代码非常适合普通文件,但是当我尝试复制文件名为 'mage...' 的文件时,出现以下错误消息:

The request signature we calculated does not match the signature you provided. Check your key and signing method.

有没有办法为那种类型的文件复制对象?

我使用以下 C# 代码在 S3 文件夹之间复制文件。

AmazonS3Config cfg = new AmazonS3Config();
cfg.RegionEndpoint = Amazon.RegionEndpoint.EUCentral1;//my bucket has this Region
string bucketName = "your bucket";
AmazonS3Client s3Client = new AmazonS3Client("your access key", "your secret key", cfg);
S3FileInfo sourceFile = new S3FileInfo(s3Client, bucketName, "FolderNameUniTest179/Test.test.test.pdf");
S3DirectoryInfo targetDir = new S3DirectoryInfo(s3Client, bucketName, "Test");           
sourceFile.CopyTo(targetDir);
S3FileInfo sourceFile2 = new S3FileInfo(s3Client, bucketName, "FolderNameUniTest179/Test...pdf");
sourceFile2.CopyTo(targetDir);

我正在为 .net 3.5 使用亚马逊 AWSSDK.Core 和 AWSSDK.S3 版本 3.1.0.0。希望对你有帮助。