Spear
почемучка
Загрузка файлов на разные серверы, диски. Структура, ахритектура
Здравствуйте!
Имеется такая задачка - нужно сделать систему загрузки файлов (фото, видео) для проекта, ориентируясь на масштабирование. То есть вариант создания папочки uploads в корне сайта конечно отпадает
К сожалению, поиск по форуму мне не помог (юзал даже google site
hpclub.ru/talk/), поэтому очень Вас прошу - подскажите, как правильно делается, или ткните носом в хорошую статью, можно на русском, можно на английском (только главное чтобы там была не абстрактная информация а что-то более-менее конкретное и доходчивое).
Конкретные вопросы на текущем этапе:
1. Фото. Каждое фото сохраняется в оригинале, + создается несколько ресайзов. Как правильно делать: сохранять в БД в отдельной таблице информацию о файле: всё данные + пути к оригиналу, и к каждому из ресайзов), или как-то по-другому?
2. В общем (т.е. любой файл) - как и какие данные хранить, чтобы можно было загружать файлы на разные серверы и в разные папки, только лишь добавляя серверы (в списко серверов), и без необходимости каждый раз "переделывать структуру" всех папок и логики хранения файлов в общем.
Есть 2 сервера: 1 только для файлов, второй (основной) - БД, скрипты и тоже файлы (да, пока так, хотя конечно потом все файлы будут на отдельном/отдельных серверах).
Нужно создать "каталог" серверов? Загружать на локальный (тот, на котором скрипты) через move_uploaded_file(), а на другие как? Можно через FTP, а можно при закачке файла (пользователем) просто подставлять в форму адрес сервера, куда нужно лить файл - например, http://static2.project.com.
Ещё неоднзначен такой момент: некотрые фото имеют 4 ресайза (скажем, фотоальбомы), а некоторые файлы, хоть и тоже фото) будут иметь 2 ресайза (юзерпик пользователя - стандартный размер и квадратный вариант). Как правильно всё это хранить, испольщуя одну общую логику в организации структуры папок файлов?
Как Вы посоветуете переименовывать файлы на дисках? Да, вопрос, возможно, кому-то кажется банальным, но навряд ли многие сервисы с громадным количеством файлов дураки и переименовывают файлы не в /uploads/users/user_1_avatar.jpg а во чтото вроде sr232.site.com/1223/45/xc/v43kl4t03cnfbdf8j4_44833_xxw2.jpg
Нет я не гонюсь за неопнятными путями к файлам ради создания иллюзии что у нас мега-система для хранения файлов на 300х серверах в 2 датацентрах) просто мне необходимо знать как делать правильно. Пожалуйста, помогите!
Здравствуйте!
Имеется такая задачка - нужно сделать систему загрузки файлов (фото, видео) для проекта, ориентируясь на масштабирование. То есть вариант создания папочки uploads в корне сайта конечно отпадает
К сожалению, поиск по форуму мне не помог (юзал даже google site
hpclub.ru/talk/), поэтому очень Вас прошу - подскажите, как правильно делается, или ткните носом в хорошую статью, можно на русском, можно на английском (только главное чтобы там была не абстрактная информация а что-то более-менее конкретное и доходчивое).Конкретные вопросы на текущем этапе:
1. Фото. Каждое фото сохраняется в оригинале, + создается несколько ресайзов. Как правильно делать: сохранять в БД в отдельной таблице информацию о файле: всё данные + пути к оригиналу, и к каждому из ресайзов), или как-то по-другому?
2. В общем (т.е. любой файл) - как и какие данные хранить, чтобы можно было загружать файлы на разные серверы и в разные папки, только лишь добавляя серверы (в списко серверов), и без необходимости каждый раз "переделывать структуру" всех папок и логики хранения файлов в общем.
Есть 2 сервера: 1 только для файлов, второй (основной) - БД, скрипты и тоже файлы (да, пока так, хотя конечно потом все файлы будут на отдельном/отдельных серверах).
Нужно создать "каталог" серверов? Загружать на локальный (тот, на котором скрипты) через move_uploaded_file(), а на другие как? Можно через FTP, а можно при закачке файла (пользователем) просто подставлять в форму адрес сервера, куда нужно лить файл - например, http://static2.project.com.
Ещё неоднзначен такой момент: некотрые фото имеют 4 ресайза (скажем, фотоальбомы), а некоторые файлы, хоть и тоже фото) будут иметь 2 ресайза (юзерпик пользователя - стандартный размер и квадратный вариант). Как правильно всё это хранить, испольщуя одну общую логику в организации структуры папок файлов?
Как Вы посоветуете переименовывать файлы на дисках? Да, вопрос, возможно, кому-то кажется банальным, но навряд ли многие сервисы с громадным количеством файлов дураки и переименовывают файлы не в /uploads/users/user_1_avatar.jpg а во чтото вроде sr232.site.com/1223/45/xc/v43kl4t03cnfbdf8j4_44833_xxw2.jpg
Нет я не гонюсь за неопнятными путями к файлам ради создания иллюзии что у нас мега-система для хранения файлов на 300х серверах в 2 датацентрах) просто мне необходимо знать как делать правильно. Пожалуйста, помогите!