LINUX.ORG.RU

Хостинг картинок в домашних условиях

 , , ,


0

1

Собственно в период летнего отпуска хочется для себя заняться чем-то приятным и полезным одновременно.

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

Не будут ли любезны, ЛОРовские профи поделиться со мной информацией по этому поводу.

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

  • Хостинг, где будем хранить все наше фото добро;
  • Фронтенд;
  • Бекэнд;
★★★★★

Ответ на: комментарий от Black_Roland

вау! но так никто ссылки не выкладывает, почему то

darkenshvein ★★★★★
()
Ответ на: комментарий от Black_Roland

О нём я как раз и думал.

А что они какое-то API еще предоставляют? Или ты имеешь ввиду в качестве хостинга?

Twissel ★★★★★
() автор топика

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

Psych218 ★★★★★
()
Ответ на: комментарий от Psych218

С мультивыбором ситуация сложнее

Ну да, а хорошим вариантом для начала я считаю распаковку из zip'a.

Но, тама, еще больше логики должно быть, по-идее.

Twissel ★★★★★
() автор топика

Если оно планируется «для всех», то очень желательно ещё дедупликацию заливаемого сделать, потому что юзеры будут достаточно часто лить одну и ту же картинку. Можно, например, считать хеш от файла, и прямо под таким именем его и сохранять.

Psych218 ★★★★★
()
Ответ на: комментарий от Twissel

А что они какое-то API еще предоставляют? Или ты имеешь ввиду в качестве хостинга?

Это вместо написания своего велосипеда.

Black_Roland ★★★★
()
Ответ на: комментарий от Psych218

Если оно планируется «для всех»

Нет, пока только для себя, а там посмотрим.

Просто надоело читать кучу материала, а потом писать хеллоуворды и без практики успешно забывать усвоенное.

Все-таки опыт лучший учитель. Так что этап первый - песочница для набора очков опыта и прокачки скилла.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Psych218

Можно, например, считать хеш от файла, и прямо под таким именем его и сохранять.

Большие картинки будут долго обрабатываться. Лучше по крону переименовывать все новые файлы.

Black_Roland ★★★★
()
Ответ на: комментарий от Black_Roland

Да ну как тебе сказать, с велосипедов все начинается.

Когда подобно Царю надоело теоретизировать и флудить на ЛОРе и хочется наваять хоть чего-нибудь практическое)

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Black_Roland

Мне Redis последнее время очень нравится, можно его в качестве БД взять. Довольно интересная задача придумать как сохранить данные в ограниченных условиях.

Black_Roland ★★★★
()
Ответ на: комментарий от Black_Roland

Присматривался к Питону, если честно.

Насчет технологий, потому сюда и пришел, чтобы немного прояснили обстановку.

Да и просто идея эта возникла из того, что частенько приходится по работе закачивать небольшие фотки, а нормального украинского хостинга для этого нет. Решил пользоваться Picoolio, но он оказался капризной фигней )))

Вот я и подумал: «Чувак, тебе уже под 30-к пора не боятся неизвестного :-D»

Twissel ★★★★★
() автор топика

Ну первое ладно. Второе зачем? Там тебе одного ПХП хватит за глаза. И писать это дело три дня от силы, из них день на сверстать странички и сделать «десигн», чтоб выглядело не как гогно.

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

Будешь смеяться, но как бы модно.

Разгрузить сервак (хотя, если по-чести, его не от чего будет разгружать, да), а вообще попутно освоить какой-нибудь js-фреймворк для портфолио )

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Zhbert

Ради резюме)

Ну да ладно, это все пока теоретизация - шкура неубитого медведя)

Потом сделаю общие выводы из постов, и буду потихоньку составлять план.

Ну и полажу по гитхабу в поисках подобных проектов.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от winlook38

Во-во )))

Спасибо, за каст. Ждем автора.

Twissel ★★★★★
() автор топика

Я когда-то начал было свою c-cgi-lib пилить, но так и не допилил до конца (мультизагрузку не доделал). А то было бы удобно: фронтенд — какая-нибудь хрень на хытымле5, бэкенд — CGI'шка сишная.

Но самая сложная штука — это добавить вменяемую индексацию изображений (чтобы дублей не было). Т.е. нужен какой-то очень быстрый аналог imgSeek, который в фоне будет анализировать новые изображения, сравнивать с хэшами старых и дубликаты с диска удалять (внося соответствующие изменения в БД).

anonymous
()
Ответ на: комментарий от Black_Roland

Заливаться всяко дольше будет, чем хэш брать.

unC0Rr ★★★★★
()
Ответ на: комментарий от NeverLoved

У мну все нормально, жабка открывается без всякого криминала.

Правда стоит адблок, как обычно.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

У меня тоже стоит адблок, с целым вагоном правил.
___
Всё, теперь нормально открывается. Странности, в общем. Ну его нафиг, этот радикал.

А хостинг картинок был у кого-то из лоровцев, на джанге вроде.
UPD: нашёл.

NeverLoved ★★★★★
()
Последнее исправление: NeverLoved (всего исправлений: 1)

Внезапно, мне в голову пришла такая же идея. Только я планировал парсить ленту rghost'a.

CYB3R ★★★★★
()
Ответ на: комментарий от CYB3R

У ЛОРовцев мысли сходятся, гы!

Twissel ★★★★★
() автор топика
Ответ на: комментарий от pi11

Ага, спасибо.

Приду с работы, гляну.

Twissel ★★★★★
() автор топика

Меня owncloud устраивает на 100%

Для десктопа — davfs — примонтировал и работаешь в привычной манере

Для андроида есть клиент, заливка фоток сразу по-мере съемки

Кроме этого синхр. календаря и контактов.

anonymous
()
Ответ на: комментарий от Twissel

Разгрузить сервак (хотя, если по-чести, его не от чего будет разгружать, да)

Да там все упрется в бандвич и диск.

xtraeft ★★☆☆
()
Ответ на: комментарий от Twissel

Что значит чистый? Может ты имел в виду, как бэкенд для хранения файлов? Тогда не понятно зачем все остальное. Да и прокачать скиллы сможешь разве что в настройке, а не в написании своего велосипеда.

winlook38 ★★
()
Ответ на: комментарий от winlook38

Чистый — значит место на диске + возможность запуска выбранного интерпретатора скриптов.

прокачать скиллы сможешь разве что в настройке, а не в написании своего велосипеда

Ну может добавлю свою какую фишку, если умом все постигну и дорасту, так сказать )))

Twissel ★★★★★
() автор топика

берёшь фалы
считаешь их sha256
отправляешь на сервер хеш, если таких нет в базе - загружаешь картинки
в базе хранишь оригинальное название\хеш\«смещение от\смещение до»\url
«смещение от\смещение до» - это с какого байта, по какой читать картинку из «больших файлов»
«большие файлы» - это созданные заранее файлы определенного размера, в которых и будут хранится картинки
дескрипторы «больших файлов» всегда открыты на чтение\запись
когда новую картинку нельзя записать не превысив лимит «большого файла» - создаётся новый
если нужно ограничить время хранения - в elasticsearch например есть возможность поставить время жизни записи в базе, скажем через 30 дней уже никто не сможет получить доступ к файлу по url потому что запись сама умрёт
файлы никогда не удаляются, но если нужно грохнуть картинку, это значит нужно скопировать всё из одного «большого файла» в другой, кроме определенных данных, потом удалить первый.

system-root ★★★★★
()
Ответ на: комментарий от system-root

это значит нужно скопировать всё из одного «большого файла» в другой

Зачем, если можно просто хранить в метаданных признак «удалено»?

ovk48 ★★★
()
Ответ на: комментарий от system-root

Хорошее разъяснение.

Спасибо.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от darkenshvein

Это то говно, которое не умеет отображать картинки без жаваскриптов?

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

KRoN73 ★★★★★
()
Ответ на: комментарий от ovk48

Зачем, если можно просто хранить в метаданных признак «удалено»?

достаточно отвязать url от картинки, доступ уже не получат, считай удалено
но если нужно реально удалить, например там центральные процессоры кто-то залил?
я вчера ошибку допустил, не удалять, а затирать нулями и переиспользовать в будущем.
удаление сложно, потому что возможна фрагментация.

system-root ★★★★★
()
Последнее исправление: system-root (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.