Я пытаюсь загрузить изображение, используя предопределенный URL-адрес
const s3Params = {
Bucket: config.MAIN_BUCKET,
Key: S3_BUCKET + '/'+fileName,
ContentType: fileType,
Expires: 900,
ACL: 'public-read'
};
const s3 = new AWS.S3({
accessKeyId: config.accessKeyId,
secretAccessKey: config.secretAccessKey,
'region': config.region
});
const url = await s3.getSignedUrlPromise('putObject', s3Params)
return url
Я получаю URL-адрес, например,
https://s3.eu-west-1.amazonaws.com/bucket/folder/access.JPG?AWSAccessKeyId=xxxx&Content-Type=multipart%2Fform-data&Expires=1580890085&Signature=xxxx&x-amz-acl=public-read
- Я попытался загрузить файл с типом контента image / jpg, multipart / form-data.
- Попытка создания URL-адреса без типа файла и загрузки.
- пробный метод put и post
но, похоже, ничего не работает
Ошибка всегда:
Рассчитанная нами подпись запроса не соответствует предоставленной вами подписи. Проверьте свой ключ и метод подписи.
У учетных данных доступа есть соответствующие разрешения, потому что эти файлы для загрузки подходят при попытке загрузки через s3 putobject (хотя api вместо предопределенного URL)
Редактировать:
Кажется, что почтальон отправляет тип контента как multipart / form-data; граница = -------------------------- 336459561795502380899802. здесь граница добавлена доп. как это исправить?