Как правилно да организирате медийни файлове и папки в мрежата

Създавам своето уеб приложение и се нуждая от вашето предложение относно организирането на медийни файлове и папки. Така че това, което имам в момента, е структура като тази:

В корена имам папка images/myappName/, където ще запазя всички файлове, свързани с това приложение. Това приложение ще има различни публикации и всяка публикация може да има няколко изображения (6~10), така че не знам колко правилно да направя частта за запазване. Имам два варианта:

1) Мога да създам всяка папка за всяка публикация, да ги наименувам с техния ID в images/myappName/ и да запазя изображения за всяка публикация в тяхната папка, нещо подобно, ако ID на публикацията е 1154, папката с контейнер за изображения ще бъде images/myappName/1154/example .jpg

2) Запазете всички изображения на едно и също място, но името им ще започва с техния ID. Нещо подобно, ако ID на публикацията е 1154, имената на изображенията ще бъдат images/myappName/1154_example.jpg

И така, какво препоръчвате момчета? Кой е по-добрият вариант, какви недостатъци може да има всеки вариант и какво друго можете да препоръчате?


person Volter    schedule 16.02.2014    source източник


Отговори (1)


ако приложението ви ще съхранява изображения и файлове на потребителя, трябва да обмислите съхраняването им в DB като LOB данни, вместо да използвате файловата система, така че ако един ден решите да клъстерирате приложението си, то може да се мащабира.

Актуализация - ако не искате да съхранявате петна, можете да имате най-доброто от двата свята, като съхранявате файлови метаданни в db. Така че ще имате свободата да добавяте тагове към вашите файлове, без да се притеснявате как тези файлове трябва да бъдат организирани физически във файловата система

person Leo    schedule 16.02.2014
comment
WoW, никога не съм чувал подобна идея, интересувам се от нея. Моето друго приложение, под същия домейн, ще даде възможност на потребителите да качват и запазват изображения, но в това приложение само администраторите ще качват и съхраняват изображения за публикации. Така че за LOB препоръчвате ли да използвате друга база данни mysql или същата база данни, но различна таблица? - person Volter; 16.02.2014
comment
всички яйца в една кошница = ще трябва да спрете всичките си приложения, ако нещо се обърка с таблицата ;-) - person Leo; 16.02.2014
comment
всички яйца в една и съща кошница -› Предполагам, че го имаш предвид за BLOB, но ако реша да използвам файлова система коя опция препоръчваш от по-горе: Една и съща папка или различна папка за всяка публикация? - person Volter; 16.02.2014
comment
ако имате един екземпляр на приложение, тогава можете да изключите всеки екземпляр, когато трябва да спрете всяко приложение за поддръжка. От друга страна, ако съхранявате всичко във файловата система, това е една кошница и ще загубите всичко. И ще бъде по-трудно да се мащабира в клъстерна среда. - person Leo; 16.02.2014
comment
дори бази данни, които можете да групирате, минимизирайки времето за престой. За файлова система мисля, че е по-зле - person Leo; 16.02.2014
comment
Благодаря за помощта, намерих тази статия в stackoverflow, мисля, че описва предимствата и недостатъците на използването на BLOB stackoverflow.com/questions/14215701/ - person Volter; 16.02.2014
comment
може би бихте могли да добавите повече информация към въпроса си, за да знаем точно какво търсите. какъв вид приложение разработвате? - person Leo; 16.02.2014
comment
нека продължим тази дискусия в чата - person Volter; 16.02.2014