Обслуживание файлов из хранилища Azure - PullRequest
0 голосов
/ 07 ноября 2018

У меня простая потребность, но вариантов лазури так много, что я не знаю, с чего начать.

У меня есть AppService (веб-сайт) на Azure, с которого я хочу загружать статические PDF-файлы. Другими словами, на веб-сайте есть обучающая страница, и на этой странице я хочу получить URL-адрес PDF-файла для ее загрузки.

Но я не хочу, чтобы PDF-файлы были частью файлов AppService, я хочу, чтобы они были в хранилище, чтобы они были отдельными от файлов веб-сайта.

Как это сделать?

На данный момент я обнаружил: хранилище BLOB-объектов Azure, но мне не совсем понятно, как их использовать с URL-адресом. Образцы выглядят так, как будто они используют код для загрузки вместо общедоступного URL.

Я также посмотрел на Azure CDN, но это кажется больше, чем я ищу. Просто нужно простое место для хранения и загрузки файлов.

Ответы [ 3 ]

0 голосов
/ 07 ноября 2018

Вы можете сделать контейнер BLOB-объектов общедоступным, чтобы любой пользователь, имеющий ссылку, мог загрузить файл. В этом случае вы можете просто сослаться на файл или вернуть ссылку 302 из вашего приложения на ссылку, которая также инициирует загрузку.

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

Третий вариант - передать файлы через ваше приложение пользователю. Загрузите файл с вашего сервера, а затем передайте его пользователю для загрузки. Эта опция требует больше ресурсов на вашем бэкэнде, так как потоки и IO используются там для каждой загрузки. Эта опция наиболее безопасна, так как вы можете контролировать, кто что может загрузить.

0 голосов
/ 08 ноября 2018

Подробнее о принятом ответе

Создать учетную запись хранения, например, mystorage

В учетной записи хранения создайте контейнер, например mycontainer

В контейнере установите для политики доступа значение Blob (анонимный доступ на чтение только для больших двоичных объектов).

Загрузите ваш файл, такой как myfile.txt, в контейнер.

Просмотр свойств файла. Будет показан URL-адрес файла в следующем формате: https://mystorage.blob.core.windows.net/mycontainer/myfile.txt

Обратите внимание, что в URL-адресе учитывается регистр.

0 голосов
/ 07 ноября 2018

вы можете загрузить свои PDF-файлы в хранилище BLOB-объектов Azure в специальный контейнер (например, загрузить) и сделать этот контейнер и контент общедоступными одним из двух способов:

  • открытый доступ для чтения только для больших двоичных объектов: большие двоичные объекты в контейнере могут быть прочитаны по анонимному запросу, но данные контейнера недоступны. Анонимные клиенты не могут перечислять большие двоичные объекты в контейнере.

  • Полный открытый доступ для чтения: все данные контейнера и BLOB-объектов могут быть прочитаны по анонимному запросу. Клиенты могут перечислять большие двоичные объекты в контейнере по анонимному запросу, но не могут перечислять контейнеры в учетной записи хранения.

Тогда они доступны по URL-адресу, например https://yourStor.blob.core.windows.net/download/train1.pdf

...