S3 TransferAcleleration - PullRequest
       7

S3 TransferAcleleration

0 голосов
/ 31 мая 2018

Я пытаюсь реализовать ускорение передачи 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.

Я подписываю свою подпись через свой бэкэнд.Работает без ТА.У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 31 мая 2018

Похоже, подпись должна быть подписана с исходным именем корзины, а выгрузка должна быть отправлена ​​на имя корзины s3-ускорения (ускорение передачи)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...