Я пытаюсь загрузить изображения в 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
}
};