我正在尝试使用 GetPreSignedUrlRequest 方法访问已上传到Amazon S3的文件。我使用的代码如下: -
string bucketName = string.Empty;
if (ConfigurationManager.AppSettings["S3BucketName"] != null)
{
bucketName = ConfigurationManager.AppSettings["S3BucketName"].ToString();
}
AmazonS3Client s3Client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1);
GetPreSignedUrlRequest request = new GetPreSignedUrlRequest
{
BucketName = bucketName,
Key = file.FileName,
Expires = DateTime.Now.AddMinutes(5),
Protocol = Protocol.HTTP
};
string url = s3Client.GetPreSignedURL(request);
但是这给我的签名不匹配错误,如下图所示: -
答案 0 :(得分:0)
更新 - 1月16日发布的SDK版本2.0.6,包含针对此问题的修复程序。
您的代码很好,遗憾的是SDK中的错误导致预先指定的网址格式错误。我刚刚使用我们最新的代码库测试了它,我们已经解决了这个问题;这个新版本应该很快发布。
我们会在发布补丁后ping这个问题。很抱歉给您带来不便。
此致
答案 1 :(得分:0)
如果未正确设置有关请求的某些详细信息,也会发生这种情况:
e.g。对我来说,以下几行解决了问题
request1.ContentType = "image/jpeg";
request1.Verb = HttpVerb.PUT;