Загрузка файлов на s3 с помощью Meteor Slingshot перестала работать с ошибкой 403
Я использовал метеоритную рогатку для загрузки файлов на Amazon S3 в течение некоторого времени. Внезапно ни одна из моих функций загрузки не работает. Я получаю следующую ошибку при попытке загрузить файлы.
Error uploading errorClass {error: "Forbidden - 403", reason: "Failed to upload file to cloud storage", details: undefined, message: "Failed to upload file to cloud storage [Forbidden - 403]", errorType: "Meteor.Error"…}
Все закачки работали нормально на прошлой неделе, и внезапно я получаю вышеуказанную ошибку во всех моих проектах. Я не знаю, есть ли какая-то проблема с пакетом рогатки или были ли сделаны какие-то изменения в политиках s3.
Это код, который я использую
Slingshot.fileRestrictions("myFileUploads", {
allowedFileTypes: ["image/png", "image/jpeg", "image/gif" ,],
maxSize: null // 10 MB (use null for unlimited).
});
Slingshot.createDirective("myFileUploads", Slingshot.S3Storage, {
bucket: "*****",
acl: "public-read",
region : "ap-southeast-1",
AWSAccessKeyId : "MyAccessKey",
AWSSecretAccessKey : "MySecretKey",
authorize: function () {
return true;
},
key: function (file) {
var imageName = getUniqueID()
return "images/" + imageName;
}
});
getUniqueID = function(){
this.length = 8;
this.timestamp = +new Date;
var ts = this.timestamp.toString();
var parts = ts.split( "" ).reverse();
var id = "";
var _getRandomInt = function( min, max ) {
return Math.floor( Math.random() * ( max - min + 1 ) ) + min;
}
for( var i = 0; i < this.length; ++i ) {
var index = _getRandomInt( 0, parts.length - 1 );
id += parts[index];
}
return id;
}
Это моя конфигурация CORS
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
И моя политика ведра
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::MyBucketName/*"
}
]
}