К сожалению, у меня ничего не сработало на 100%. Что вы в итоге сделали?
Есть какие-то идеи, как это может работать в современных версиях 3.x? У меня на S3 всё ещё есть множество изображений, и мне нужно найти способ вернуть их локально. Открыт к предложениям. (команда rake uploads:migrate_from_s3 больше не существует)
Я настроил всё для работы с локальным хранилищем (резервные копии только на S3). Обнаружил, что многие посты всё ещё ссылаются на S3, используя ссылки вида:
<img src="//x.amazonaws.com/original/1X/afda2721f64341ca46576020acae7aaee92bd9d3.PNG" width="308" height="206">
которые ведут на
https://xxx.amazonaws.com/original/1X/afda2721f64341ca46576020acae7aaee92bd9d3.PNG
Есть ли у вас какие-либо предложения по этому вопросу? Я действительно устал от проблем с каждым обновлением или изменением ![]()
Не решено. Было бы неплохо, если бы у Discourse было решение
О. Если это ваш сайт и ваши файлы хранятся в S3, то вы должны иметь возможность включить S3, активировать скрытую настройку, описанную по адресу Enable hidden setting to include S3 uploads in the backups, создать резервную копию, изменить конфигурацию на локальные изображения и восстановить резервную копию.
Будем рады узнать, удалось ли кому-то заставить это работать.
Это работает для любого сайта, который мигрирует с хостинга Discourse.org на собственный хостинг (и у которого эта настройка была включена до создания резервной копии).
Это немного сложно, так как при создании резервной копии все настройки S3 должны быть уже настроены (в вашем YAML-файле), а затем их нужно полностью отключить (везде, включая базу данных, если вы когда-либо настраивали их там) перед восстановлением.
Это очень логичный метод, но он не работает для тех, кто использует Cloudflare R2. Или эта проблема только у меня. Когда я сделал резервную копию, я также включил скрытую настройку. К сожалению, файлы в R2 не включаются в резервную копию. Здесь возникает ошибка: Uploads in cloudflare R2 are not added to the backup: Failed to download ******* because Aws::S3::Errors::Http501Error
Документация и ваш опыт показывают, что R2 не поддерживается, поэтому вам придётся решить проблему другим способом.
Мне казалось, что у меня это работало, но я не проверял это тщательно и не использовал за пределами тривиального тестового запуска.
Если резервная копия не сможет загрузить файлы из R2, вам придётся использовать другой инструмент для извлечения файлов из R2, затем загрузить их в ваше новое хранилище и вручную обновить базу данных (я думаю, можно искать темы с помощью задачи rake remap).
Это сложный процесс, поэтому вам нужно будет хорошо разбираться в R2, S3 и загрузках Discourse. Скорее всего, будет трудно описать ваши конкретные проблемы с достаточной детализацией, чтобы получить решение на форуме.
Я вручную скачиваю файлы и загружаю их на сервер. Для тех, кто спрашивает, как это сделать, вы можете подключиться к аккаунтам S3 с помощью программы WinSCP. После этого вы можете легко импортировать файлы на свой компьютер. Далее я загрузил их на локальный сервер и воссоздал темы, но количество сообщений показало 0. Он не предпринял никаких действий. Я что-то изменил, но и тогда ничего не нашлось. Возможно, я упустил какой-то момент; я не хочу говорить об этом, не проверив ещё раз, возможно, это была моя ошибка. Если попробую снова, напишу о результатах. Спасибо.
Получение файлов на ваш сервер — это лишь (легкая) часть проблемы.
Вы можете просмотреть загрузки с помощью:
cd /var/discourse
./launcher enter app
rails c
Upload.pluck(:url)
Это покажет вам URL-адреса ваших загрузок. Затем вам нужно изменить все эти загрузки так, чтобы они содержали новый путь к вашему новому хранилищу (bucket). Попробуйте поискать команду remap. Думаю, она может сработать.
Я загрузил это локально и воссоздал темы,
Я не совсем понимаю, что это означает.
измените конфигурацию на локальные изображения
Можете подсказать, как выполнить эту часть? Вы имеете в виду просто отключить настройку «включить загрузку S3 в резервные копии», установив её в false, или что-то другое?
Настройка провайдера объектного хранилища, совместимого с S3, для загрузки файлов описывает, как настроить S3, добавив соответствующие параметры в ваш app.yml. Если вы не делали этого таким образом, то сбросьте все настройки, связанные с S3, в параметрах сайта, а затем настройте их этим способом.
Если вы уже настроили это таким образом, то просто закомментируйте эти настройки (или, возможно, только use_s3 и upload_bucket).