Загрузка файлов на 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/*"
        }
    ]
}

0 ответов

Другие вопросы по тегам