Я должен сохранить свои изображения в базе данных или папках? [дубликат]

Как объяснено в Создание ConfigMaps из каталогов и Создание ConfigMaps из файлов , когда вы создаете ConfigMap с использованием --from-file, , имя файла становится ключом, хранящимся в данных раздел ConfigMap . Содержимое файла становится значением ключа.

Чтобы сделать так, как вы хотите, лучшим способом было бы создать yml, подобный этому

apiVersion: v1
kind: ConfigMap
metadata:
  name: special-config
  namespace: default
data:
  SPECIAL_LEVEL: very
  SPECIAL_TYPE: charm

, а затем применить его так:

kubectl create -f https://k8s.io/examples/configmap/configmap-multikeys.yaml

Когда модуль запускается, Команда ls /config производит вывод ниже:

special.level
special.type

Как вы это сделали, следует сгенерировать файл с тем же именем, что и ваши исходные файлы, и внутри него содержимое файла.

24
задан Community 23 May 2017 в 12:32
поделиться

10 ответов

Я сделал это оба пути недавно и лично; я действительно предпочитаю использовать метод каталога для хранения изображений при хранении их свойств в DB.

Главная причина: у Меня был клиент, которому я сделал веб-сайт для. На Webiste; был раздел Photo Gallery, который позволил пользователю загружать новые фотографии (который мог быть просмотрен от общедоступного сайта). Так как мой клиент не думал при оптимизации изображений перед загрузкой; *.jpg составлял более чем 1 МБ. Я действительно реализовывал способность обновить изображение (после того как это было сохранено к DB), но это должно было быть сделано одна запись за один раз.

Если это происходит при хранении изображений в каталоге, то файлы могут быть сохранены локально, оптимизированы и отложены на сервер.

Вот пример

15
ответ дан 28 November 2019 в 23:01
поделиться

Я пошел бы для папок. Больше гибкости, если у Вас заканчивается пространство устройства хранения данных (просто перемещают их в другой диск и переточку), больше гибкости с другими приложениями (например, Silverlight). Я только использовал бы DB для файлов, которые должны были быть безопасными.

13
ответ дан 28 November 2019 в 23:01
поделиться

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

Однако я лично работаю над приложением, где изображения динамично созданы и сделаны доступный для сайта через второе приложение управления. Очевидно они должны быть DB, поддержанным в некоторой форме для хранения изображений удобными в сопровождении и безопасными.

Короче говоря, где изображения имеют бизнес-возможность (т.е. они довольны, им нужна безопасность, или они являются динамичными), Вы оказываетесь перед необходимостью хранить их в DB. Где они статичны, и тривиальный позволяют веб-сайту быть веб-сайтом.

5
ответ дан 28 November 2019 в 23:01
поделиться

Две мысли об этом:

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

  2. Используйте SQL Server 2008. Это имеет новый тип данных, названный filestream, в то время как сохранит образы к файловой системе, но позволит Вам получать его через стандартные запросы базы данных. См. http://msdn.microsoft.com/en-us/library/cc949109.aspx для получения дополнительной информации.

Это не эксклюзивный выбор, но по крайней мере, я рекомендовал бы опцию № 1 для чистого того, что Вы вытащите лучшую производительность из использования основанной схемы файловой системы вместо того, чтобы хранить и считать блобы из базы данных.

5
ответ дан 28 November 2019 в 23:01
поделиться

Я думаю, сохраняя образы в системных папках, лучший способ.
работа с DB и Запросами, которые Вы знаете, вызовет некоторые перегрузки, и DB transanctions обычно тяжелы, и это может поместить больше напряжения в Ваш сервер.
с путем u сохраняют образы в папках и просто помещают URL в DB, это более подходит для Ваших загрузок приложения.
но преимущество DB состоит в том, что Вы можете BackUp Ваши изображения.


Мое Предложение: сохраните свои Образы в папках. единственная потребность состоит в том, чтобы знать о системе операции ввода-вывода.

4
ответ дан 28 November 2019 в 23:01
поделиться

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

3
ответ дан 28 November 2019 в 23:01
поделиться

AFAIK, flickr.com поставляется с папками / файловым сервером, а также со ссылкой, метаданными и т. Д., Хранящимися в БД. См. Архитектура flickr

3
ответ дан 28 November 2019 в 23:01
поделиться

У меня был тот же вопрос для моего сайта также. Я решил использовать реализацию папки, потому что при использовании базы данных когда Вы хотите скопировать только рисунки Вы, shoul копируют целую базу данных..., с другой стороны, можно сохранить de структуру каталогов и сделать легкое резервное копирование.

Отдельные вещи мой друг, наилучшие пожелания!

2
ответ дан 28 November 2019 в 23:01
поделиться

Преимущество использования папок состоит в том, что у Вас не должно быть пользовательского обработчика, который выбирает те БЛОБЫ из базы данных и превращает их в обычные потоки. Также более просто разместить их от различных местоположений, и Вы избежите нагрузки на сервере базы данных.

Необходимо быть осторожны относительно хранения путей. Относительные пути работают лучше URL и позволят Вам некоторую гибкость и масштабирующийся в том, где Вы храните их, как Вы служите им и т.д.

2
ответ дан 28 November 2019 в 23:01
поделиться

Я пойду для обоих.

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

Во-вторых, скопируйте файл в папку. Таким образом можно избежать от запроса базы данных (для файла изображения) каждый раз. Хранение в одной только папке может иметь последствия такой как

  • файл, потерянный из-за диска, повреждается
  • файл не включен в операцию резервного копирования

До сих пор все наши клиентские проекты проявляют тот же подход, и мы встретились с различными проблемами, но никакие загруженные файлы не потеряны. (Мы говорим о> 100 ГБ загруженных документов).

Отметьте, можно хотеть посмотреть на следующее:

  1. Удостоверьтесь, чтобы каждый раз, когда файл обновляется / замена, сделайте это и на базе данных и на папке. Иначе это будет непоследовательно.
  2. Можно хотеть иметь отдельную таблицу для хранения информации файла. Обычно можно хотеть сохранить следующее: (1) имя файла (2) тип файла (3) размер файла / имитируют тип
  3. Можно хотеть разделить таблицы, которые хранят данные. Наша практика - после того как таблица достигает 2 ГБ, мы составляем другую таблицу. Разработанный правильно, там не был должен без проблем в нахождении правильной таблицы.

Надеюсь, это поможет.

2
ответ дан 28 November 2019 в 23:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: