Метеоритная рогатка - загрузка файла в AWS S3, ожидающая, а затем сбой с ошибкой 400 Bad в случайных случаях

Я пытаюсь загрузить изображение в AWS S3 в Meteor/Slingshot. Загрузка ожидается в течение долгого времени, а затем не удалась (400 Плохой запрос). Некоторые файлы удалось загрузить, но в большинстве случаев этого не происходит. Кажется, это происходит случайно.

Каковы причины, которые могут вызвать это?

Ведро S3 находится в Ирландии "ЕС-Запад-1". Вот код, который у меня есть:

В settings.json:

{
  "public": {

  },
  "AWSAccessKeyId" : <keyID>,
  "AWSSecretAccessKey" : <Secret>,
  "AWSBucket" : <bucket_name>,
  "AWSRegion": "eu-west-1"
}

Приложение / Библиотека /_fileUploadRestrictions.js

Slingshot.fileRestrictions("imageUploads", {
  allowedFileTypes: ["image/png", "image/jpeg", "image/gif"],
  maxSize: 10 * 1024 * 1024 // 10 MB (use null for unlimited).
});

приложение / сервер /fileUploadDirectives.js

Slingshot.createDirective("imageUploads", Slingshot.S3Storage, {
  region: Meteor.settings.AWSRegion,
  bucket: Meteor.settings.AWSBucket,
  acl: "public-read",
  expire: 200,

  authorize: function () {
    //Deny uploads if user is not logged in.
    if (!this.userId) {
      var message = "Please login before posting files";
      throw new Meteor.Error("Login Required", message);
    }

    return true;
  },

  key: function (file) {
    //Store file into a directory by the user's username.
    var userId = Meteor.userId();
    return "userfilies" + "/" + userId + "/" + "images" + "/" + file.name;
  }
});

приложение / клиент /fileUploader.js

Template.fileUploader.events({
  'change .fileinput': function(event, template) {
    var fileToUpload = event.target.files[0];
    var fullUpload = new Slingshot.Upload("imageUploads");
    fullUpload.send(fileToUpload, function (error, downloadUrl) {
      if (error) {
        toastr.error("Upload failed... please try again.");
        console.log(error);
        console.log(fullUpload.xhr.response);
      }
      else {
        toastr.success('Upload succeeded!');
      }
    });
    Template.instance().uploader.set(fullUpload);
  },
});

0 ответов

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