Стратегия хранения файлов Azure Blob - PullRequest
1 голос
/ 07 ноября 2011

На мой сайт пользователь может загружать два вида файлов:

  • документы (doc, pdf, jpg, zip)
  • аватарное изображение (jpg)

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

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

Итак, первое решение было создать простое действие, которое получит имя файлакартинки, а затем достаньте ее из блоба и нажмите на выходной поток. Но при этом я предоставляю злонамеренным пользователям возможность запрашивать зарезервированные документы, используя этот скрипт. (просто запрашивая имя файла документа вместо файла изображения аватара)

Что лучшерешение?Создание двух отдельных контейнеров BLOB-объектов (один закрытый и один общедоступный)?Другие решения?

РЕДАКТИРОВАТЬ

Использование метаданных для отметки общедоступных файлов?

1 Ответ

4 голосов
/ 07 ноября 2011

Я бы предложил создать два разных контейнера.Не только это, но я также предлагаю, чтобы вы не просто отправляли аватары в поток, а вместо этого публиковали полный URL-адрес большого двоичного объекта в источнике.Таким образом, вы сможете позже использовать CDN!Использование метода действия «Прозрачный прокси» не имеет смысла для публичных блобов.Что касается частных блобов - я думаю, что вы подходите хорошо, но вам придется выполнить некоторые проверки безопасности, прежде чем обслуживать содержимое блобов.

...