Scaleway что-то изменила? У меня всё работало до 48 часов назад, но теперь это больше не работает.
Оплачен ли ваш счёт? В чём проблема? Работают ли какие-либо изображения? Они все пропали, или вы просто не можете добавить новые?
Не могли бы вы добавить немного больше поддержки? Например, Tencent COS из Китая более удобен для китайских пользователей, а CDN-узлы Tencent Cloud COS расположены по всему миру, что обеспечивает очень быстрый доступ.
Вы пробовали? Это работает?
Я использовал это в тестовой среде, но могу делать резервные копии только в Tencent COS. Надеюсь, что разработчики Discourse добавят поддержку Tencent COS, чтобы облегчить работу разработчикам из Китая.
Думаю, вам стоит поделиться тем, что вы уже сделали, и какие ошибки или проблемы возникли. Тогда кто-нибудь сможет предложить, как это исправить. Возможно, стоит посмотреть на другие примеры и попробовать применить их для решения вашей задачи.
Скорее всего, они не будут вносить изменения в ядро, чтобы поддержать это.
Backblaze:
- Я настроил бакет B2 в своей учетной записи
- Добавил данные в секцию
envфайлаapp.yml - Запустил
./launcher rebuild app
…но я не вижу подтверждения в панели управления экземпляром Discourse, что эти настройки применились. Куда мне следует посмотреть?
Привет,
Мне удалось успешно протестировать и использовать Cloudflare R2 для загрузки файлов и создания резервных копий. Подробный пост здесь: Cloudflare R2: Navigating Setup and Handling Configuration Errors - #40 by kamaljain
Прошу вас также протестировать это с вашей стороны и установить отметку «Работает с Discourse» на «Да» для Cloudflare R2. На самом деле это проще, чем S3, и экономичнее: бесплатно при объёме хранилища менее 10 ГБ.
Я тоже протестировал настройку на мультисайте и тоже считаю, что она работает.
Я увидел что-то, что заставляет меня задуматься, можно ли получить список резервных копий. Я попробую проверить свою настройку.
Привет, бро, можно с тобой поговорить? У меня возникли проблемы с настройкой MinIO.
Спасибо.
Настройка iDrive
Хотел сообщить, что использование версии E2 хранилища S3 от iDrive отлично работает с этими настройками:
Переменные окружения в YAML-файле
Убедитесь, что ваш бакет имеет как минимум права Public и Read в настройках iDrive.
Это настройки, которые я использую для одного бакета, разделяющего uploads и backups.
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: ваш-регион
DISCOURSE_S3_ENDPOINT: https://ваш-эндпоинт-idrive.dev
DISCOURSE_S3_ACCESS_KEY_ID: ваш-ключ-доступа
DISCOURSE_S3_SECRET_ACCESS_KEY: ваш-секретный-ключ
DISCOURSE_S3_CDN_URL: https://ваш-кастомный-cdn-url.com/uploads
DISCOURSE_S3_BUCKET: ваше-имя-бакета/uploads
DISCOURSE_S3_BACKUP_BUCKET: ваше-имя-бакета/backups
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_INSTALL_CORS_RULE: false
По умолчанию iDrive настроен на Общий доступ ко всему в этом регионе для всех источников, поэтому всё должно работать сразу из коробки независимо от источников. При желании вы можете ограничить доступ только своими доменами.
Я использую сертификат источника от Cloudflare для создания CNAME, указывающего на эндпоинт iDrive.
Синхронизация существующих вложений
Пересборка
Пересоберите приложение после изменения этих переменных окружения.
Загрузка и повторная обработка
Затем войдите в контейнер и выполните:
rake uploads:migrate_to_s3
Подождите завершения загрузки, затем выполните:
rake posts:rebake_uncooked_posts
Выйдите из контейнера.
Добавление в секцию hooks YAML-файла
В секции hooks:
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets
Это гарантирует, что файлы JS/CSS будут загружены в iDrive после вложений, иначе в браузере появится множество ошибок консоли, так как они будут отсутствовать.
Пересборка
Снова выполните пересборку после добавления команды для ассетов.
Всё должно работать корректно!
Возможно, стоит добавить службу объектного хранилища Hetzner в таблицу?
Мне удалось использовать Contabo для загрузки файлов. Как старые (мигрированные) файлы, так и новые загрузки работали отлично. В моём случае URL ведра был https://eu2.contabostorage.com/mybucket. Секрет заключался в том, чтобы указать EU2 как имя ведра и https://contabostorage.com/mybucket как конечную точку.
Единственная проблема в том, что при загрузке сайта также запрашиваются другие файлы, например JS-скрипты плагинов, из ведра, и они не загружаются, так как файлы недоступны. Я понял, что это происходит потому, что я установил URL CDN таким же, как URL ведра. Это пока не совсем ясно для меня. Кто-нибудь может подсказать, как это правильно настроить? Насколько я понял, мне нужно создать CNAME-запись, указывающую на основной домен (сервер Discourse), и проксировать его через Cloudflare. Правильно ли я понимаю?
Вы упустили этот момент:
Я уверен, что всё сделал правильно, но, возможно, где-то ошибся. В итоге я восстановил из резервной копии, поэтому сейчас всё по памяти… Но тогда возникает вопрос: почему не рекомендуется настраивать CDN в качестве бакета? Какие проблемы это может вызвать? Попробую разобраться завтра.
Спасибо.
Я не думаю, что описанная вами проблема возникла из-за того, что вы указали URL CDN в качестве URL ведра (если загрузка работает, но ресурсы — нет).
Завтра обновлю информацию, спасибо
И это сработало ![]()
Пошаговое описание моих действий в надежде помочь другим:
Отредактировал app.yml и добавил
after_assets_precompile:
- exec: cd: $home
cmd: - sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets
после хуков (сразу после git clone плагинов…)
и
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: EU
DISCOURSE_S3_ENDPOINT: https://contabostorage.com/bucketname
DISCOURSE_S3_ACCESS_KEY_ID: accesskey
DISCOURSE_S3_SECRET_ACCESS_KEY: secretaccesskey
DISCOURSE_S3_CDN_URL: https://eu2.contabostorage.com/randomlettersthatcontaboaddstothelinks:bucketname
DISCOURSE_S3_BUCKET: eu2
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_INSTALL_CORS_RULE: false
после настроек электронной почты.
Затем я установил те же значения в меню Discourse и включил загрузку через S3.
Пересобрал приложение командой
cd /var/discourse
sudo ./launcher rebuild app
затем
./launcher enter app
rake uploads:migrate_to_s3
Это занимает некоторое время; в моём случае несколько часов (80 тысяч файлов, 100 ГБ).
После завершения
rake posts:rebake_uncooked_posts
Обновление: некоторые пользователи не могли загрузить сайт (ресурсы и файлы). Мы выяснили, что домен contabostorage.com был добавлен в некоторые чёрные списки как фишинговый сайт. Решение оказалось простым:
Настройте поддомен files.mydomain.com, как описано здесь: Can I Setup a Custom Domain for My Object Storage? : Contabo
Обновите DISCOURSE_S3_CDN_URL: https://files.mydomain.com в файле app.yml
Затем выполните:
cd /var/discourse
sudo ./launcher rebuild app
И для завершения работы:
./launcher enter app
rake posts:rebake
Теперь все ресурсы и загрузки загружаются с https://files.mydomain.com/pathtofile/file.ext
Готово.
