Ошибка SignatureDoesNotMatch при загрузке на s3 через предварительно подписанный URL с помощью axios - PullRequest
0 голосов
/ 24 апреля 2020

Я генерирую presignedurl из размещенной лямбды. Я получаю предварительно назначенный URL, но когда я делаю пут, используя следующее:

 axios.put(response.data, acceptedFiles[0], { headers: {'Access-Control-Allow-Origin': '*', 'Content-Type': 'application/json',  'X-Amz-ACL': 'public-read'}} ).then((response) => {
                console.log('put', response);
            });

, я получаю проблему, которая является SignatureDoesNotMatch

Лямбда, которая генерирует предварительно назначенный URL,

var AWS = require('aws-sdk');
var s3 = new AWS.S3({
  signatureVersion: 'v4',
});


exports.handler = (event, context, callback) => {

  const url = s3.getSignedUrl('putObject', {
    Bucket: 'bucketname',
    Key: 'test.json',
    Expires: 600,
    ACL: 'public-read',
    ContentType: 'application/json' 
  });

  const res ={
        "statusCode": 200,
        "headers": {
            "Content-Type": "application/json",
            "Access-Control-Allow-Origin": "*",
            "ACL": 'public-read',
        }
    };
    res.body = url;
    callback(null, res);

Я немного застрял в этом сейчас, так как пытался работать над этим в течение последних нескольких дней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...