Amazon S3 + Angular Рассчитанная нами подпись запроса не соответствует предоставленной вами подписи - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь загрузить изображения в Amazon S3, используя angular, и у меня есть эта ошибка. Кодировка для политики и подписи находится в другом файле. В inte rnet я обнаружил, что может быть проблема из-за не буквенного знака в моем секретном ключе (он содержит знак +), но ключ кодируется через sha1, поэтому не должен быть вопрос, не так ли? вот код

var fileName = file.name;
var path = 'uploads/' + fileName;

var readType = 'private';

var expiration = moment().add(5, 'm').toISOString().split('.')[0]+"Z";

var s3Policy = {
    'expiration': expiration,
    'conditions': [{
        'bucket': 'BUCKETNAME'
    },
        ['starts-with', '$key', path],

        {
            'acl': readType
        },
        {
            'success_action_status': '201'
        },
        ['starts-with', '$Content-Type', file.type],
        ['content-length-range', 2048, 10485760],
    ]
};

var stringPolicy = JSON.stringify(s3Policy);
var base64Policy = base64_encode(stringPolicy);
var signature = base64_encode(sha1('SECRETKEY'));

var policy = {
    url: 'http://BUCKETNAME.s3.amazonaws.com',
    fields: {
        key: path,
        AWSAccessKeyId: 'KEY',
        acl: readType,
        policy: base64Policy,
        signature: signature,
        'Content-Type': file.type,
        success_action_status: 201
    }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...