Джефф Этвуд ( Coding Horror славы) сидел за ужас, когда он понял, что его сервер упал, и его данные прошла, а какой-то причине, механизм резервного копирования не работал. Полные данные в Coding Horror и блог StackOverflow исчез.
С момента своего блога очень популярен, многие архивные системы, включая кэш Google есть копии страниц, и я надеюсь, что они уже вернули полной текстовой информации. Самая большая проблема в этом случае возвращается изображений. Есть не так много архиве услуги, которые могут иметь полное резервное копирование изображений на веб-сайте.
Так что же Jeff теперь делать?
После кодирования ужас высокой трафик блога, я думаю, что есть способ вернуть хотя бы часть изображения. (Вероятность этого рабочие во многом зависит от трафика на сайт и немного удачи)
Вот шаги:
- Настройка веб-сервера для возврата 304 для каждого изображения запросу. Код статуса HTTP 304 означает, что файл не изменен, а это означает, что браузер будет получать файл из кэша, если он присутствует там. (Кредит: на этой суперпользователя ответ)
- В каждой страницы сайта, добавить небольшой скрипт, чтобы сделать снимок данных и отправить его на сервер.
- Сохранить изображение данных на сервере.
- Преобразование пиксельных данных, чтобы получить оригинальный images.Voila!
Захват изображения данных
Мы собираемся использовать функциональность Картина в HTML 5, чтобы вернуться изображения.
Вот код, вы должны вставить в страницы веб-сайта. Он получает все изображения в текущей страницы, загружает его в HTML Холст, получает пиксельных данных для изображений и отправляет его на сервер через пост Ajax.
Этот сценарий PHP (PHP Можно спасательных Jeff?
Чтобы быть справедливым, код серверной части тривиально) сохраняет данные в файлы на сервере. Обратите внимание, что сами файлы не будет изображения, они будут содержать только данные сенсора изображений. В дополнение к этому, мы также сохранения и имя исходного файла, и размеры изображения. Это означает, что мы можем легко восстановить исходное изображение, из этих данных. Данные каждого посетителя сохраняется в отдельный файл, чтобы просто чтобы убедиться, что у вас достаточно избыточности (Следите за своей избыточности заполнения дисков сервера)
Помните, что это доказательство концепции код. Вам придется изменить его для использования в обычных средах производства и получить реальную пользу от него. Есть много ограничений для этого кода. Само собой разумеется, что вы получите изображение данных от пользователей, только если они имеют изображения сохраняться в своих браузерах. Этот сценарий будет работать только в последней версии Chrome, Firefox, Safari, Opera т.д. (не все ожидаем, что он работать в IE в течение следующего десятилетия). В дополнение к этому, помните, что пиксельных данных будет во много раз больше, чем исходный размер файла, и вы, возможно, придется тщательно проанализировать использование дискового пространства данного сценария. (Я думаю, в чрезвычайной ситуации, ни один из них действительно имеет значение).
Вы должны изменить сообщение URL в скрипте чтобы они соответствовали вашим доменным именем.
Наконец, я проверил код и, кажется, работает (для меня, по крайней мере). Необходимо включить в JQuery страниц с помощью этого сценария и помнить, что из-за ограничений по безопасности в браузерах, вам придется поставить все эти файлы под тем же именем домена. Скажите, пожалуйста, Есть любые другие недостатки в коде.
[Updated: код изменения уменьшить размер файла на 50%. Десятичных чисел были преобразованы в шестнадцатеричную и пространства между ними номера удаляются. Размеры файлов могут быть дополнительно уменьшены с помощью полного набора символов.]


Awesome пост!
Теперь у вас другого абонента и последователем, благодаря @ RT Спольски в
Сделать, что два новых последователей от RT.
Awesome! очень креативное решение, слава
Поздравляю, вы на меня впечатление.
Очень умный.
Поистине огромная!
[...] Diovo: Получить кэшированные рисунки от Ваших посетителей Вы запускаете на сайте. Благодаря сочетанию контроля и ошибок, вы теряете каждого изображения на вашем сайте. O-голосующие что теперь? Этот человек имеет решение: Возвращение 304 для каждого изображения запрос, вызвав браузеров прошлом посетителей, чтобы загрузить изображение из кэша, а затем использовать немного JavaScript, чтобы захватить данные каждого изображения и отправить его обратно на сервер, который сохраняет ее. Очень умно! (Теги: JavaScript, PHP изображения HTTP) [...]
Все самое лучшее с вашими глазами, и я надеюсь, что вы ее устранения и могут быть перед компьютерами опять совершенно очевидно, что это место, где у вас есть возможность
Слава за это очень умный предложение! Но вы можете принять его все дальше и автоматизировать этот процесс.
Крафт некоторые PHP, которая проверяет, например. параметр запроса, и если нашли, добавить перенаправление на страницу. Перенаправляет на каждой странице будет разработана с целью создать "цепочку", так браузера будет проходить каждую страницу сайта. Jeff читателей может затем нажмите 1 ссылке и оставить свои браузеры для выполнения своих задач (например, на ночь).
Чтобы ускорить процесс, поставить перенаправление в window.onload событие, а не с мета-тега.
cadams,
Нет необходимости в какой-либо переадресацию. Просто отправьте браузера список пропавших без вести файлов изображений. Как вы можете видеть, любое изображение может быть возвращен на любой странице!
Я знаю, что это ВОУ код, но ...
Возможно, вы захотите добавить проверки в файл PHP, так как в его нынешнем виде, он рисует огромные быки глаз на вашем сайте для удаленного подвиги, загружать код, и т.д. ...
Помимо очевидных и управляемой вопросы безопасности, это абсолютно гениально!
Потрясающие трюки!
С первого взгляда я не мог понять, почему это "я + = 5", не "я + = 4" в строке 34.
Энде,
Это было ошибкой. Она должна быть "я + = 1". Исправленная сейчас.
Super Cool решения.
Фантастический solution.Its действительно огромная.
[...] Жесткий диск пошел к ее место последнего упокоения. Один из читателей Атвуд пришел с удивительно элегантный и умный способ восстановления некоторых из этих изображений в браузере кэш кодирования читателей ужасов (в комплекте с примерами кода). Это своего рода рубить я люблю: умный, [...]
[...] Общая Получить кэшированные рисунки от Ваших посетителей | Diovo. [...]
Nice идея
Поздравляю, вы на меня впечатление.
Очень умный.