Я создаю приложение, которое будет получать изображения, а затем сохранять их в базе данных 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 и не могу найти точно, как я узнаю местоположение файла в большом двоичном объекте, чтобы сохранить его в своей БД, а затем как получить этот файл.
Итак, мои вопросы следующие:
Спасибо за помощь в продвижении
Дело в том, что, насколько я могу судить, с Heroku я могу просто создать свое приложение, загрузить файлы на сервер с помощью модуля fs, а затем сохранить этот путь в моей БД.
Вы можете, но эти файлы исчезнут а) при следующем развертывании и б) один раз в день при перезапуске динамометрического стенда. Файловая система на Heroku недолговечна - в нее вносятся изменения. не постоянный.
Если вам нужны пользовательские загрузки (или любой другой вид постоянного файла, которого нет в вашем репозитории Git), вам понадобится какое-то хранилище вне Heroku, такое как Azure или AWS S3, для их хранения.
Я не пробовал Heroku, но могу прокомментировать Azure Blobstorage.
Я вижу лучшую практику:
Сохранение изображений в хранилищах BLOB-объектов с помощью анонимный доступ только для чтения к контейнеру и сохранение URL-адресов в базе данных.
Поскольку у вас есть только URL-адреса, ваше приложение будет загружать изображения из Azure, сохраняя трафик с вашего сервера. Создание случайные строковые имена вместо (1,2,3, ... или a, b, c, ... или john, doe, jane, ...) для каждого изображения будет ограничивать доступ пользователя к неавторизованным изображениям.
Создать хранилище BLOB-объектов в Azure очень просто.
Ты получишь Имя учетной записи хранения и Ключ из Ключи доступа таб.
В учетной записи хранения вы увидите: большие двоичные объекты, файлы, таблицы, очереди.
Перейти к Blobs:
Как упоминалось в документы, которые вы читаете, вам нужно будет определить
в вашем коде и используйте их.