#amazon-s3 #.net-core #minio
#amazon-s3 #.net-core #minio
Вопрос:
Уже более года мы запускаем одностраничное приложение (SPA с Angular), которое получает объекты Json с предварительно подписанными URL-адресами из .NET Core API. SPA отображает список и использует предварительно указанный URL-адрес для отображения изображения / видео (загруженного непосредственно с
Внезапно некоторые из предварительно подписанных URL-адресов в списке все еще работают, другие вызывают SignatureDoesNotMatch
ошибку при внедрении изображения / видео. Остальные работают.
<Error><Code>SignatureDoesNotMatch</code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>...
Может быть, у кого-нибудь есть опыт работы с Minio / S3 и он мог бы помочь мне составить контрольный список для поиска источника этой ошибки.
Пока у меня есть:
-
Конфигурация (ключ доступа, секретный ключ, хост): поскольку большинство URL-адресов работают, некоторые нет, это должно быть допустимо
-
Генерация URL: для рабочих и нерабочих URL-адресов я генерирую их с помощью Minio.NET SDK (3.02).
await _minio.PresignedGetObjectAsync(bucket, key, ttl);
await _minio.PresignedPutObjectAsync(bucket, key, ttl);
- Смешивание URL-адресов get и put: может ли это быть причиной? На скриншотах в отчете об ошибке показаны предварительно подписанные URL-адреса, но я не видел указателя в URL-адресе, если он был сгенерирован как put или get URL.
Ответ №1:
@monty У меня недостаточно информации для определения основной причины. Возможно, это может быть вызвано неправильным кодированием имени объекта, которое могло быть исправлено в более новой версии minio и minio dot-net SDK.
Какую версию minio вы используете? Я вижу, что вы используете версию Minio Dotnet 3.0.2.
Происходит ли это с определенными именами файлов и объектов?
Комментарии:
1. интересно, что причиной могут быть учетные данные (доступ и секретный ключ), содержащие специальные символы, такие как «!»