Я хочу, чтобы получить заранее подписанный URL для моего S3 ведро для запроса PUT, как это (в node.js)AWS S3 getSignedUrl создает неправильный URL
AWS.config.update({
accessKeyId: s3Config.accessKeyId,
secretAccessKey: s3Config.secretAccessKey,
region: s3Config.region,
signatureVersion: 'v4'
});
var s3bucket = new AWS.S3({params: {Bucket: s3Config.bucket,Key:'/content'}});
s3Config.preSignedURL = s3bucket.getSignedUrl('putObject',{ACL:s3Config.acl})
в результате я получаю
https://[BUCKET].s3.[REGION].amazonaws.com/[KEY]?[presignedURLStuff]
Этот адрес не соответствует указанным адресам Amazon. URL должен быть в формате http://*.s3.amazonaws.com/*. Я также получаю сообщение об ошибке :: ERR_INSECURE_RESPONSE от предполетного полета. Что мне нужно сделать, чтобы функция создавала правильный URL. Удаление региона из URL приводит к 400 неудачным запросам. Затем выполняются предполетные ВАРИАНТЫ.
В каком регионе находится ковш, и каково ваше представление о правильном URL-адресе? Для некоторых регионов формат, который вы, кажется, показываете, является допустимой альтернативой. –
Работает ли возвращаемый URL? –
s3-eu-west-1 - мой регион. Согласно Amazon, только URL-адрес в формате http: //*.s3.amazonaws.com/* действителен , а возвращаемый URL-адрес дает мне ошибку, даже не долетает –