AWS s3 создать предварительно подписанный пост не работает при развертывании - PullRequest
0 голосов
/ 01 августа 2020

Я создаю заранее подписанный URL-адрес, используя метод aws -sdk nodejs / createPresignedPost. Все работает через плагин serverless-offline на моем локальном компьютере, потому что у моего личного ключа доступа есть все доступы. Но когда я развертываю его через бессерверную структуру, он выдает ошибку с HTTP 403, и ошибка в браузере читается следующим образом bucket.

Мой шлюз Api и лямбда-выражения, возвращающие подписанный URL-адрес, находятся в регионе us-east-1, а сегмент - в регионе ap-south-1.

Я Конечно, мне не хватает некоторых разрешений IAM, но я не могу понять, что это наш. Может ли кто-нибудь помочь мне здесь?

Вот моя функция, которая возвращает обещание о получении предварительно подписанного URL-адреса сообщения

  function getSignedUploadUrl() {
    const params = {
        Expires: 600,
        Bucket: process.env.AWS_S3_BUCKET_NAME,
        Fields: {
          key: s3FilePathKey,
          acl: acl,
          "content-type": contentType,
        },
        conditions: [
          { acl: acl },
          { "content-type": contentType },
          ["content-length-range", 1000000, 75000000],
        ],
      };
    return new Promise((resolve, reject) => {
      const s3 = new S3({
        region: AWS_REGION
      });
      s3.createPresignedPost(params, (err, data) => {
        if (err) {
          console.log(err);
          reject({
            message: "Something went wrong",
          });
        }
        resolve(data);
      });
    });
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...