powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / nginx - check md5 for file
6 сообщений из 6, страница 1 из 1
nginx - check md5 for file
    #38558890
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кто-то знает, как можно реализовать подобное...

запрос get domain.com/path/static.file?md5sum=7a8e8f8b88d8c79d

nginx должен проверить мд5, и если совпало - выдать файл. иначе 404

похоже нету у нджинкса такой возможности??? вызов внешней утилиты.
...
Рейтинг: 0 / 0
nginx - check md5 for file
    #38559509
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Угу, CGI-программой, вероятно. Однако, вычисление md5 само по себе довольно затратно. Если файл меняется реже, чем запрашивается, тогда есть смысл хранить md5 в базе.

Если возможно изменить правила именования запрашиваемых файлов, то можно существенно упростить, используя в качестве имени файла его md5. С такой задачей вебсервер справится самостоятельно.
...
Рейтинг: 0 / 0
nginx - check md5 for file
    #38560955
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

дык файл ваще никогда не меняеться, и запрашивающая сторона его мд5 из базы и берёт.

суть в том что он открыеться по принципу - fopen('http://filenode.com/path/file_number');

и будет по мере скачиванию тутже обрабатываться(дешифрование и вывод клиенту) так что если файл битый, то уже ничего не вернуть.

вот и хотелось бы проверять нджинкс заставить перед отдачей.

ЗЫ
затратно или нет, это один чорт надо делать , и тут уже вопрос - это лучше делать на фронтальной нодЕ осуществляющей сборку файла из кусочков, или на нодаХ где кусочки храняться.
...
Рейтинг: 0 / 0
nginx - check md5 for file
    #38561059
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453,

можешь дать линк на пример, я видел примеры но, они предполагают чтоб я стал питонщиком предварительно.
...
Рейтинг: 0 / 0
nginx - check md5 for file
    #38561064
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453затратно или нет, это один чорт надо делать , и тут уже вопрос - это лучше делать на фронтальной нодЕ осуществляющей сборку файла из кусочков, или на нодаХ где кусочки храняться.Если предположить что если все куски исправны, то из них гарантровано получится исправный файл - есть смысл чекать кусками. Другой вопрос в том, что при передаче файла через fopen он тоже имеет шанс порюхаться. При параноидальном подходе придется чекать файл или его фрагменты непосредствено на отдаче.


alex564657498765453если файл битый, то уже ничего не вернутьВообще то, довольно хороший алгоритм уже реализован в торренте. Файл передается мелкими фрагментами и после успешной передачи проверяется контрольная сумма фрагмента. Битый фрагмент запрашивается заново. Резервирование данных происходит только в случае относительно большого количества сидов (два или более), потому крах может наступить только в случае если на раздаче остался единственный сид с битым файлом.
Другой вариант, тоже похожий, реализован в rsync.
...
Рейтинг: 0 / 0
nginx - check md5 for file
    #38565005
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

эээ постой, не уходим в сторону :) я про торенты.

есть сайты, и эти сайты иногда хранят файлы, которые отдаються как статика нджинксом.

в нашем случае, всё очень похоже, но файлы статично не храняться целиком на ноде.

они расбросаны кусками по всему кластеру.

и когда нам надо выдать файл, мы должны тутже начать выдачу

отсюда первый вывод - времени НА ПРЕДЗАКАЧКУ кусочка у нас нету. (да и шдд ляжет если каждый байт будет вместо получения через сеть не улетать в сеть, а падать и считываться с шдд)

хранение файлов - да может он там год хранился, и какойто кусочек битый на ноде 5 скажем.

вот открывая его, мы знаем мд5 сумму этого кусочка, но возможно он повредился.

ведь за год в силу разных причин, он мог измениться.
и вот тут нас спасает мд5 сумма. в теории.

и вот вопрос - как эту теорию воплотить в жизнь???


=======
понятно что может потом всё будет не так, но вот сейчас стоит вопрос, как заставить нджинкс делать дополнительные телодвижения перед отдачей статики. в апаче есть возможноть запуска любого внешнего скрипта/команды. а тут как быть.


ЗЫ
пока что, за 3 месяца игр с системой и доработкой её, я сталкивался только с одним ---изза собев в работе файл есть но его длина нулевая, или он есть, но не доконца - при сохранении возникла ошибка.

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

но тут другая мысль приходит которая сбивает с толку.
1)можно ли гарантировать что файл не повредиться при передаче и или хранении на шдд - вплоть до ошибок самой системы. нет.
значит сверка нада мд5 сумм

2)допустим мы решили что фоновая сверка всей ноды будет раз в 2Н месяцев.
и тогда она найдёт , например за каждую сверку один битый файл

но тогда Н месяцев, файл будет битый а мы ни слухом ни духом

получаем 3)надо сверку делать всегда.

как я и подчеркнул. счас стоит задача, научить нджинкс делать добавочные телодвижения. вчасности сверку мд5 суммы. отключить опцию гораздо легче, чем быстро создать, протестировать и внедрить новшество в систему.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / nginx - check md5 for file
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]