Не удается загрузить рогатку на S3

Пакет Slingshot используется с Meteor для загрузки изображений в S3 непосредственно с клиента. Тот же код, который я использовал в других проектах, утвержденных для работы. Даже прилокальной настройке я могу загружать изображения в облако, но не с развернутой версией, которая идентична. Ошибка заключается в следующем:

Failed to upload file to cloud storage [Bad Request - 400]

the region 'us-east-1' is wrong; expecting 'eu-central-1'(но это не говорит, где...)

Есть идеи?

Это инициализация директивы Meteor Slingshot:

const s3Settings = Meteor.settings.private.S3settings;
Slingshot.createDirective("userProfileImages", Slingshot.S3Storage, {
  AWSAccessKeyId: s3Settings.AWSAccessKeyId,
  AWSSecretAccessKey: s3Settings.AWSSecretAccessKey,
  bucket: s3Settings.AWSBucket,
  region: s3Settings.AWSRegion,
  acl: "public-read",

  authorize: function () {
    if (!this.userId) {
      const message = "Please login before posting images";
      throw new Meteor.Error("Login Required", message);
    }
    return true;
  },

  key: function (file) {
    const user = Meteor.users.findOne(this.userId);
    return user.username + "/" + file.name;
  }
});

Это моя конфигурация Amazon S3 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>10000</MaxAgeSeconds>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

У меня нет политики ведра. Контроль доступа все публично.

Помощь приветствуется.

1 ответ

Решение

Проблема была во мне. Я определил регион в моих настройках как AWSregion (r), тогда как я назвал это AWSRegion (R) в моем коде для настройки. Так что это было неопределенным и не сработало.

Решение состоит в том, чтобы убедиться, что дела напечатаны правильно.

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