Я генерирую назначенный URL с HttpVerb как PUT для загрузки файла в мое ведро. Странно то, что, когда я использую AWSDK для загрузки файла с использованием преданного URL-адреса, он работает нормально. Но когда я использую этот URL-адрес в методе действия формы, я получаю следующую ошибку. «Подписанная нами подпись запроса не соответствует вашей подписке. Проверьте свой ключ и метод подписи».Загрузка изображения в Amazon S3 с использованием AWS PreSignedURL
Ниже приведен HTML-код, чтобы загрузить файл
<html>
<head>
<title>S3 POST Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<form action="https://mvrskt-certifications.s3-ap-southeast-1.amazonaws.com/Temp/ARMA.jpg?AWSAccessKeyId=AKIAIGPD33Q3DT22IFWQ&Expires=1451482258&Signature=nYx%2F2kDmna5XqEWx5CPTg4OIYDU%3D" method="post" enctype="multipart/form-data">
<input type="hidden" name="key" value="mvrskt-certifications/Temp/ARMA.jpg">
<input type="hidden" name="Content-Type" value="image/jpeg">
<!-- Include any additional input fields here -->
File to upload to S3:
<input name="file" type="file">
<br>
<input type="submit" value="Upload File to S3">
</form>
</body>
</html>
Ниже является C# .NET код, который я использую для создания PreSignedURL
GetPreSignedUrlRequest request = new GetPreSignedUrlRequest
{
BucketName = bucketName,
Key = objectKey,
Verb = HttpVerb.PUT,
Expires = DateTime.Now.AddMinutes(15)
};
string url = null;
request.ContentType = "image/jpeg";
url = s3Client.GetPreSignedURL(request);
Я установил политику CORS на мой как указано ниже
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Я новичок в AWS S3 и получаю союзницей запутать об использовании этого .... Pl помощь о том, как загрузить этот файл, используя форму пост ИЛИ AJAX
Morever мы должны сгенерировать PreSignedURL для каждого изображения, которое я собираюсь загрузить?
Я могу видеть, что мы можем использовать подписанную политику также загружать изображения, но мне нужно, чтобы создать подписанную политику для каждого изображения, которое я собираюсь загрузить
Не могли бы вы разместить свое решение так, как вы решили решить эту проблему? Спасибо –