сервер будет удаленный. по возможности в том же дц, но не факт.
отдача не зависит от расстояния между серверами, только получение данных о файле и щакачка.
вот закачка и формат хранения, это наиболее слабые места у меня сейчас.
логика отдачи: промежуточная страница генерящая урл на файл, скрипт этой страницы запрашивает у донора адрес и валидацию, и получив ответ редиректит на полученный урл или отдает 404
ramzes, тебе так или иначе надо либо скачивать файл на основной сервер, а после отдавать его (за кулисами) на резервный; либо организовывать систему с множеством нод и качать файл сразу на резервный сайт (нужна веб морда и все такое), что довольно не простая задача и я хз как ты будешь такое реализовывать ) потому предлагаю максимально простое решение
Delphinum, не думаю что проблема загрузки файла с основного на дополнительный это сложно. форма на одном сайте, приёмка на другом, на первом заполняем бд информацией, и скрипт отдачи заголовками
Koenig, а как ты на основном сайте базу данными заполнишь, если файл уходит вместе с данными формы на резервный сайт? )
смотри.
файл закачен на Сайт (логика, далее Сайт) прочитан, забит в бд, и отправляется на донор (статика, далее Донор).
далее.
Сайт выдает пользователю, допустим плейлист, в котором идут не адреса файлов, а их хеш (они так и хранятся в бд, как хэш),
скрипт отправляет пользователя за файлом /cloud/xxxx/ где xxxx это тот самый хэш.
страница cloud шлет на Донор этот хэш, донор чекает по нему файл, генерит урл и возвращает его скрипту (/cloud/), скрипт смотрит, если есть адрес файла в ответе Донора, перенаправляет пользователя на этот адрес, если нет, то отдает 404.
далее в логике есть обращение к апи Донора со стандартными методами edit, delete, static, write
при удалении файла из бд, скрипт шлет Донору запрос на удаление физического файла, Донор сносит его.
вот как то так оно сейчас работает
Delphinum,
что то я и не подумал, можно конечно сделать что то типо тригера, который после загрузки файла на дополнительный, пошлёт запрос на основной.. на самом дела вариантов организации много, можно и импорт организовать, то есть после загрузки файла на основной, делаем запрос на дополнительный и запускаем импорт, далее уже в скрипте отдачи проверки на доступность файла на дополнительном первой делать, плюс крон чистку, можно вообще кроном все это делать в 3ч ночи, когда более менее все свободно
# Koenig (11.11.2016 / 14:49)
Delphinum, не думаю что проблема загрузки файла с основного на дополнительный это сложно. форма на одном сайте, приёмка на другом, на первом заполняем бд информацией, и скрипт отдачи заголовками
мало того что, как правильно заметили выше, данные с Донора придется как то пересылать на Сацт, так еще и адового уровня защиту придется писать, иначе тебе там нагрузят на диск говна всякого вагон.
была такая идея, но занявшись защитой, понял что на Донор придется писать полноценную систему идентификации и межсерверной аутентификации
ramzes, все правильно, только я тебе предлагаю решение для задачи, которая у тебя называется "отправляется на донор". Вот предлагаю не отправлять на донор, а чтоб донор сам скачивал с основного сайта. Выгода в том, что:
Основному сайту не надо об этом заботиться
Поток выполнения основного сайта не будет тормозить санчала на скачивание файла, а после на пересылку
# Koenig (11.11.2016 / 14:56)
Delphinum, можно и импорт организовать, то есть после загрузки файла на основной, делаем запрос на дополнительный и запускаем импорт
это я и предлагаю. Основной сайт грузить себе файл, после отправляет сообщение дополнительному и забывает, а тот уже скачает себе этот файл (ну или что то еще перенесет файл с одного на другой сайт по таймингу), а после поправит одну запись в базе
ramzes, лучше не парься с аутентификацией и ограничься ssh сертификатом с доступом только из основного сайта в донор и обратно. А вся логика проверок и доступа остается на основном сайте