Задать вопрос
ms-dred
@ms-dred
Вечно что то не то и что то не так...

Что не так делаю с подписью для Yandex Object Storage?

Не пойму в чем дело, выплевывает следующую ошибку
The request signature we calculated does not match the signature you provided. Check your key and signing method.


Функция для генерации подписи
sign(key, value) {
        return createHmac("sha256", key).update(value).digest("hex")
    }


const signature = this.sign(
            this.sign(
                this.sign(
                    this.sign("AWS4" + process.env.CLOUD_SECRET_KEY, YYYYMMDD),
                    "ru-central1"),
                "s3"),
            "aws4_request")


const storage = new URL(process.env.CLOUD_HOST)
        storage.pathname = path.join(process.env.CLOUD_BUCKET, href)
        storage.searchParams.set("X-Amz-Algorithm", "AWS4-HMAC-SHA256")
        storage.searchParams.set("X-Amz-Credential", `${process.env.CLOUD_ID_KEY}/${YYYYMMDD}/ru-central1/s3/aws4_request`)
        storage.searchParams.set("X-Amz-Date", toISOString)
        storage.searchParams.set("X-Amz-Expires", 3600)
        storage.searchParams.set("X-Amz-SignedHeaders", "host")
        storage.searchParams.set("X-Amz-Signature", signature)


        const response = await axios.get(storage)


Чем подпись не устраивает?
  • Вопрос задан
  • 288 просмотров
Подписаться 1 Простой 13 комментариев
Пригласить эксперта
Ответы на вопрос 1
@grv87
С кодом проблем не вижу.
Недели 2 назад, в воскресенье, у меня была такая же проблема с Yandex Object Storage. К понедельнику проблема исчезла сама.
Предполагаю, что в выходные на сервисе проводятся какие-то работы (например, ротация ключей), и что ваша проблема — тоже была на стороне сервиса. Если будет повторяться — надо открывать запрос в поддержку
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы