Загрузки потеряны во время миграции сервера

Я переехал с хостинга Discourse на собственный хостинг, но потерял все изображения на своём форуме. Я понял это слишком поздно, и с момента миграции прошло уже более 30 дней.

Когда я это осознал, я выполнил следующий код, но он не сработал:

> ./launcher enter app
> rake posts:rebake

Я обратился в поддержку Discourse, но они сообщили, что не могут восстановить резервную копию, так как прошло более 30 дней. Что я могу сделать, чтобы решить эту проблему:

Мне не хочется это говорить, но, возможно, здесь вам уже ничем не помочь.

Если вы не сделали полную резервную копию, включающую изображения, и не осознали это после того, как ваш хостинг-провайдер удалил свои собственные резервные копии, то данные, скорее всего, утеряны.

Если вы не против, что я спрашиваю, что произошло, если прошло целое месяца, прежде чем вы обнаружили, что изображений нет в резервной копии? Сайт был недоступен в течение целого месяца?

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

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

Также существует настройка «backup with uploads», которая пропускает загрузки.

Какого размера файл резервной копии?

Скорее всего, вы скачали резервную копию до отмены аккаунта, и в неё не входили загруженные файлы.

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

Если они смогут это сделать, вы сможете загрузить эти изображения из S3 и затем снова загрузить их в свой собственный бакет S3 или каким-либо другим способом импортировать их в Discourse. Это довольно трудоемкая задача, но она выполнима.

Это вероятно; ссылка на финальную полную резервную копию включает загрузки S3, но другие резервные копии — нет.

Я не могу найти никаких предыдущих запросов в поддержку от этого аккаунта. С аккаунта, привязанного к электронной почте вашего бывшего сайта, отправьте личное сообщение @team с названием сайта, и я перепроверю, чтобы убедиться, что загрузки больше недоступны.

Вы этого не замечаете, так как перенесённый сайт продолжает загружать изображения из CDCK S3, пока они не будут удалены, а тогда уже будет слишком поздно.

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

Я понимаю, как работает S3 — это обычно огромный плюс при переносе сайта между серверами. Я имел в виду относительно значительную разницу в размерах файлов.

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

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

Если текущий порядок вещей может запутать как новых, так и опытных пользователей, возможно, нам стоит добавить более явный индикатор в имя файла, приписав complete и no-uploads? Существующий подход создаёт у пользователей ложное чувство безопасности, поэтому здесь определённо есть пространство для улучшений.

Будете ли вы открыты к этому, @supermathie?

Что ж, думаю, мы с вами одного поколения, и я бы тоже на это не повелся.

С одной стороны, мы (как сообщество) постоянно говорим людям: «Идите и хостите сами, это легко, просто следуйте инструкциям», а теперь ожидаем, что они не только проверят размер своих резервных копий, но и просмотрят содержимое файла .tar.gz, о котором, вероятно, никогда не слышали и не знают, как это сделать. Даже если они это сделают, трудно сказать, достаточно ли файлов уже загружено. Большинство форумов, хранящих загрузки на S3, имеют также и локальные файлы. Ситуация не столь однозначна: либо все файлы на месте, либо их нет вовсе.

Проблема восстановления форума, у которого загрузки остались на предыдущем месте в S3, в том, что процесс действительно работает. Всё выглядит нормально, пока через месяц загрузки не исчезнут. И даже если файлы отсутствуют, разве процесс восстановления не говорит, что нормально видеть «отсутствующие изображения» и что со временем всё исправится?

Так может, стоит улучшить и это?

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

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