|
|
|
nginx - check md5 for file
|
|||
|---|---|---|---|
|
#18+
кто-то знает, как можно реализовать подобное... запрос get domain.com/path/static.file?md5sum=7a8e8f8b88d8c79d nginx должен проверить мд5, и если совпало - выдать файл. иначе 404 похоже нету у нджинкса такой возможности??? вызов внешней утилиты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2014, 17:58 |
|
||
|
nginx - check md5 for file
|
|||
|---|---|---|---|
|
#18+
Угу, CGI-программой, вероятно. Однако, вычисление md5 само по себе довольно затратно. Если файл меняется реже, чем запрашивается, тогда есть смысл хранить md5 в базе. Если возможно изменить правила именования запрашиваемых файлов, то можно существенно упростить, используя в качестве имени файла его md5. С такой задачей вебсервер справится самостоятельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2014, 11:02 |
|
||
|
nginx - check md5 for file
|
|||
|---|---|---|---|
|
#18+
vkle, дык файл ваще никогда не меняеться, и запрашивающая сторона его мд5 из базы и берёт. суть в том что он открыеться по принципу - fopen('http://filenode.com/path/file_number'); и будет по мере скачиванию тутже обрабатываться(дешифрование и вывод клиенту) так что если файл битый, то уже ничего не вернуть. вот и хотелось бы проверять нджинкс заставить перед отдачей. ЗЫ затратно или нет, это один чорт надо делать , и тут уже вопрос - это лучше делать на фронтальной нодЕ осуществляющей сборку файла из кусочков, или на нодаХ где кусочки храняться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 13:27 |
|
||
|
nginx - check md5 for file
|
|||
|---|---|---|---|
|
#18+
alex564657498765453, можешь дать линк на пример, я видел примеры но, они предполагают чтоб я стал питонщиком предварительно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 14:31 |
|
||
|
nginx - check md5 for file
|
|||
|---|---|---|---|
|
#18+
alex564657498765453затратно или нет, это один чорт надо делать , и тут уже вопрос - это лучше делать на фронтальной нодЕ осуществляющей сборку файла из кусочков, или на нодаХ где кусочки храняться.Если предположить что если все куски исправны, то из них гарантровано получится исправный файл - есть смысл чекать кусками. Другой вопрос в том, что при передаче файла через fopen он тоже имеет шанс порюхаться. При параноидальном подходе придется чекать файл или его фрагменты непосредствено на отдаче. alex564657498765453если файл битый, то уже ничего не вернутьВообще то, довольно хороший алгоритм уже реализован в торренте. Файл передается мелкими фрагментами и после успешной передачи проверяется контрольная сумма фрагмента. Битый фрагмент запрашивается заново. Резервирование данных происходит только в случае относительно большого количества сидов (два или более), потому крах может наступить только в случае если на раздаче остался единственный сид с битым файлом. Другой вариант, тоже похожий, реализован в rsync. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2014, 14:32 |
|
||
|
nginx - check md5 for file
|
|||
|---|---|---|---|
|
#18+
vkle, эээ постой, не уходим в сторону :) я про торенты. есть сайты, и эти сайты иногда хранят файлы, которые отдаються как статика нджинксом. в нашем случае, всё очень похоже, но файлы статично не храняться целиком на ноде. они расбросаны кусками по всему кластеру. и когда нам надо выдать файл, мы должны тутже начать выдачу отсюда первый вывод - времени НА ПРЕДЗАКАЧКУ кусочка у нас нету. (да и шдд ляжет если каждый байт будет вместо получения через сеть не улетать в сеть, а падать и считываться с шдд) хранение файлов - да может он там год хранился, и какойто кусочек битый на ноде 5 скажем. вот открывая его, мы знаем мд5 сумму этого кусочка, но возможно он повредился. ведь за год в силу разных причин, он мог измениться. и вот тут нас спасает мд5 сумма. в теории. и вот вопрос - как эту теорию воплотить в жизнь??? ======= понятно что может потом всё будет не так, но вот сейчас стоит вопрос, как заставить нджинкс делать дополнительные телодвижения перед отдачей статики. в апаче есть возможноть запуска любого внешнего скрипта/команды. а тут как быть. ЗЫ пока что, за 3 месяца игр с системой и доработкой её, я сталкивался только с одним ---изза собев в работе файл есть но его длина нулевая, или он есть, но не доконца - при сохранении возникла ошибка. я тоже подумываю о нерациональности подобной проверки - это время да и зачем. лучше раз в месяц скажем делать фоново сверку всех файлов по их суммам. но тут другая мысль приходит которая сбивает с толку. 1)можно ли гарантировать что файл не повредиться при передаче и или хранении на шдд - вплоть до ошибок самой системы. нет. значит сверка нада мд5 сумм 2)допустим мы решили что фоновая сверка всей ноды будет раз в 2Н месяцев. и тогда она найдёт , например за каждую сверку один битый файл но тогда Н месяцев, файл будет битый а мы ни слухом ни духом получаем 3)надо сверку делать всегда. как я и подчеркнул. счас стоит задача, научить нджинкс делать добавочные телодвижения. вчасности сверку мд5 суммы. отключить опцию гораздо легче, чем быстро создать, протестировать и внедрить новшество в систему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2014, 18:24 |
|
||
|
|

start [/forum/topic.php?fid=25&msg=38561064&tid=1482617]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
227ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 328ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...