Я пытаюсь реализовать ускорение передачи s3 в многочастном загрузчике xhr:
Моя конечная точка (с TA) выглядит следующим образом: my-upload-dashboard.s3-accelerate.amazonaws.com
Код, который я использую, выглядиткак это:
get signingUrl() {
let stringToSign = `${this.method}\n\n${(this.contentType || '')}\n\nx-amz-date:${this.date}\n${this.relativeUrl}`;
stringToSign = encodeURIComponent(stringToSign);
return `${this.config.signerUrl}?to_sign=${stringToSign}`;
}
get relativeUrl() {
let folder = this.package_id.toString() + this.user_id.toString() + '-' + this.timestamp
let bucket = config.s3.bucket + folder;
return this._relativeUrl || (this._relativeUrl = `/${bucket}/${encodeURIComponent(this.fileName)}${(this.queryParams ? `?${this.queryParams}` : '')}`);
// return this._relativeUrl || (this._relativeUrl = `${encodeURIComponent(this.fileName)}`);
}
_relativeUrl = null;
get absoluteUrl() {
return this._absoluteUrl || (this._absoluteUrl = this.combineUrlParts(`${this.config.baseUrl}`, this.relativeUrl));
}
Однако, когда я передаю ведро TA, я получаю немедленную ошибку:
Uncaught (in promise) Failed to initiate the multipart upload: [403] Forbidden - <?xml version="1.0" encoding="UTF-8"?>
<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.
Я подписываю свою подпись через свой бэкэнд.Работает без ТА.У кого-нибудь есть идеи?