Как гарантировать, что только аутентифицированные пользователи могут читать большие двоичные объекты в хранилище Azure?

#node.js #azure #storage #azure-blob-storage

#node.js #лазурный #Хранение #azure-blob-storage

Вопрос:

Я пытаюсь создать какой-то клон Instagram только для меня и моих друзей. Я использую react во внешнем интерфейсе и node во внутреннем интерфейсе.

Я также использую Azure для хранения файлов, загружаемых моими пользователями. Мне уже удалось получить подпись общего доступа (SAS), но я не знаю, есть ли более подходящий способ сделать это. Генерирует ли новый SAS каждый раз, когда я хочу показать сообщение, излишнее? Есть ли способ получить токен, чтобы я мог предоставить аутентифицированному пользователю доступ на чтение к контейнеру больших двоичных объектов? Поэтому мне не нужно создавать sas для каждого большого двоичного объекта.

На данный момент, учитывая URL-адрес большого двоичного объекта с действительным токеном sas (не проверенным), вы можете получить доступ к большому двоичному объекту даже в браузере без входа на мой сайт.

Редактировать: Чтобы проиллюстрировать, что я хочу сделать здесь, это пример: когда вы отправляете какое-либо изображение в DM в Twitter, вы можете попытаться получить URL-адрес изображения. Если вы попытаетесь получить доступ к этому URL-адресу в режиме инкогнито, вы не сможете получить доступ к этому файлу. Я не могу найти ни одного ресурса о том, как сделать что-то подобное.

Комментарии:

1. Вы используете SAS так, как было задумано. Вы можете ограничить время жизни URL-адреса SAS, если хотите. Вы также можете передавать содержимое больших двоичных объектов в потоковом режиме через веб-интерфейс (но вы заплатите штраф за нарушение, поскольку ваше веб-приложение станет новой точкой доступа). На самом деле от вас зависит, как вы справитесь с этим.

2. Не совсем, я на самом деле предпочитаю подход @DavidMakogon. В любом случае, спасибо вам