Итак, у меня есть фреймворк, работающий с библиотекой azurestorejs (2.10.102) и использующий примеры здесь:
https://dmrelease.blob.core.windows.net/azurestoragejssample/samples/sample-blob.html
Но они, как правило, сосредоточены на получении SAS для всего контейнера. Принимая во внимание, что мне нужно загрузить большой файл в blob прямо из браузера. Поэтому я могу использовать свое промежуточное ПО для создания токена только для записи, срок действия которого истекает. Но это весь контейнер. Это довольно безопасно, но я не могу отделаться от ощущения, что должен создавать sas, который также использует конкретное имя файла URI и блокирует его для этой единственной загрузки.
Но ничего из того, что я сделал, похоже, не работает, всегда терпит неудачу с ошибками аутентификации.
Итак, во-первых, я хочу проверить, что то, что я думаю, что я должен делать, действительно возможно - заблокировать запрос на запись в определенный файл. Не просто заблокировать целый контейнер больших двоичных объектов? Я знаю, что вы делаете наоборот: если вы хотите прочитать один файл, вы можете создать SAS только с этим файлом, но это существующий объект. Я говорю о sas для еще не написанного объекта...
Так вот подробнее.
Код аналогичен примеру от MS. У меня есть 3 подхода для создания SAS. Один жестко закодирован с портала, который работает без проблем. Один использует библиотеку для создания SAS, и это, кажется, работает. Но ясно, что мне нужно промежуточное программное обеспечение, чтобы сделать это
var sharedAccessPolicy = {
AccessPolicy: {
Permissions: permissions,
Start: startDate,
Expiry: expiryDate
}
};
var sasToken = blobService.generateSharedAccessSignature(container, blobName, sharedAccessPolicy);
Вышеприведенное, похоже, не использует имя BLOB-объекта (имя файла, который будет загружен.
Спасибо Павел
Я собираюсь обновить вопрос, там больше места
Ваше поколение токенов SAS выглядит нормально. Не могли бы вы отредактировать свой вопрос и включить код, в котором вы используете этот токен SAS для загрузки файла, и подробное сообщение об ошибке, которое вы получаете. Если вы отследите запрос/ответ, вы получите более подробную информацию об ошибке аутентификации.
@paulinventome у тебя когда-нибудь это работало? в настоящее время в той же лодке - я хочу дать пользователю возможность загружать до <n> документов в контейнер.


Да, безусловно, можно создать токен SAS для определенного большого двоичного объекта, даже если этот большой двоичный объект не существует. Пожалуйста, поделитесь тем, что вы пробовали до сих пор, и проблемами, с которыми вы столкнулись.