我直接使用来自 Amazon 的 .NET API 将一些文件上传到 S3。
但是,我收到异常消息:The request signature we calculated does not match the signature you provided. Check your key and signing method.
我的代码如下:
AmazonS3 s3Client = AWSClientFactory.CreateAmazonS3Client("myaccessid","mysecretid");
List<string> allFileNames = ProcessFiles(@"c:\Dev\pktest\");
foreach (string file in allFileNames)
{
PutObjectRequest putObjectRequest = new PutObjectRequest
{
BucketName = "rhspktest",
FilePath = file,
Key = file,
Timeout = 3600000
};
try
{
using (S3Response response = s3Client.PutObject(putObjectRequest)) { };
}
catch (AmazonS3Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.WriteLine(file);
}
Console.Read();
有什么明显的事情是我做错的吗?
ProcessFiles 方法仅返回该目录中的文件名列表。
Does ProcessFiles
仅返回文件名或完整路径?无论如何,这不太可能FilePath
and Key
应该设置为相同的东西。
FilePath
应设置为要上传的本地文件的完整路径。例如c:\Dev\pktest\myfile.txt
Key
是要存储在 S3 上的文件的名称。例如myfile.txt
。或者,如果您想保持相同的路径结构:Dev/pktest/myfile.txt
(注意正斜杠)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)