Назад | Перейти на главную страницу

BLOB-объекты Azure против хранилища типов Heroku

Я создаю приложение, которое будет получать изображения, а затем сохранять их в базе данных SQL с помощью Nodejs. Мне нужно хранить много изображений и много запрашивать их (мне нужно запросить базу данных, чтобы увидеть, есть ли это изображение там)

Из того, что я прочитал, лучше сохранить файлы в файловой системе и указать путь в БД (дешевле).

Я научился разрабатывать с помощью Heroku и Mlab и сохранять URL-адреса в моей БД, это будет мой первый раз, когда я использую FileSystem.

Я читал о вариантах хранилища Azure, и представитель сказал мне, что я могу использовать их службы BLOB-объектов, и это мне подойдет. Но похоже, что для использования их услуг нужно много учиться. Я пробовал azure и aws раньше для другого проекта, и с ними все кажется более сложным, чем просто использовать git для развертывания в heroku, просто выбирая, какие службы и прочее использовать и как их использовать.

Но похоже, что цена при использовании лазурных капель НАМНОГО дешевле, чем при использовании, например, Heroku, хотя мне сложно понять даже цены со всеми этими сервисами (Heroku DYNOS ...)

Дело в том, что, насколько я могу судить, с Heroku я могу просто создать свое приложение, загрузить файлы на сервер с помощью модуля fs, а затем сохранить этот путь в моей БД. Принимая во внимание, что для использования лазурных BLOB-объектов мне также нужно научиться использовать Azure API и сохранять изображение в BLOB-объекте. Я прочитал их документацию: https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-nodejs-v10 и не могу найти точно, как я узнаю местоположение файла в большом двоичном объекте, чтобы сохранить его в своей БД, а затем как получить этот файл.

Итак, мои вопросы следующие:

  1. Я лучше всего (самый дешевый и самый эффективный) использую лазурные и лазурные капли или есть лучшие варианты того, что мне нужно?
  2. Я считаю, что это еще один уровень сложности в использовании хранилища Azure и BLOB-объектов, и является ли это нормой при использовании Azure и AWS (это облачные сервисы, а другие нет? Heroku также упоминает облако на своей веб-странице, но это кажется разные)????
  3. Стоит ли изучать капли или лучше начать с чего-то более простого?
  4. Сохранение изображений в облачном хранилище и сохранение URL-адресов в моей базе данных SQL жизнеспособно или это слишком дорого или неэффективно ???

Спасибо за помощь в продвижении

Дело в том, что, насколько я могу судить, с Heroku я могу просто создать свое приложение, загрузить файлы на сервер с помощью модуля fs, а затем сохранить этот путь в моей БД.

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

Если вам нужны пользовательские загрузки (или любой другой вид постоянного файла, которого нет в вашем репозитории Git), вам понадобится какое-то хранилище вне Heroku, такое как Azure или AWS S3, для их хранения.

  1. Большие двоичные объекты хранилища Azure - самый дешевый вариант хранения изображений в Azure
  2. Вы действительно не хотите сохранять что-либо на локальном диске или хранить изображения в базе данных (кто, черт возьми, это делает?)
  3. хранилище BLOB-объектов очень просто
  4. не знаю, что такое облачный, но вам все равно нужно знать URL-адрес изображения, если вы храните его в большом двоичном объекте, поэтому вам, вероятно, придется его где-то сохранить

Я не пробовал Heroku, но могу прокомментировать Azure Blobstorage.

Я вижу лучшую практику:

Сохранение изображений в хранилищах BLOB-объектов с помощью анонимный доступ только для чтения к контейнеру и сохранение URL-адресов в базе данных.

Поскольку у вас есть только URL-адреса, ваше приложение будет загружать изображения из Azure, сохраняя трафик с вашего сервера. Создание случайные строковые имена вместо (1,2,3, ... или a, b, c, ... или john, doe, jane, ...) для каждого изображения будет ограничивать доступ пользователя к неавторизованным изображениям.


Создать хранилище BLOB-объектов в Azure очень просто.

  1. Создать ресурс (+)
  2. Выберите учетную запись хранения
  3. Создайте

Ты получишь Имя учетной записи хранения и Ключ из Ключи доступа таб.


В учетной записи хранения вы увидите: большие двоичные объекты, файлы, таблицы, очереди.

Перейти к Blobs:

  1. Создать новый контейнер
  2. Будьте осторожны Уровень публичного доступа для контейнера (я бы рекомендовал контейнер)
  3. Нажмите на свойства контейнера (значок дополнительных параметров ...) и получите URL-адрес контейнера.

Как упоминалось в документы, которые вы читаете, вам нужно будет определить

  • Имя учетной записи хранения
  • Ключ
  • URL-адрес контейнера

в вашем коде и используйте их.