Всем привет,
Хочу поделиться своим опытом и пошаговой инструкцией по успешной настройке Cloudflare R2 для загрузки файлов и создания резервных копий в моём форуме на Discourse. Надеюсь, это поможет другим, кто планирует использовать Cloudflare R2 с Discourse.
Обзор настройки:
- Платформа: Discourse (установка от Bitnami)
- Ведро (Bucket): Cloudflare R2
- Пользовательский домен: Настроен для публичного доступа к файлам
- Конфигурация: Выполнена полностью через настройки сайта Discourse (переменные окружения не затрагивались)
Пошаговое руководство:
- Создание ведра Cloudflare R2:
- Войдите в свою учётную запись Cloudflare и перейдите в раздел R2 Storage.
- Создайте новое ведро для загрузок вашего форума (например,
forum-uploads). - Запишите S3 API URL ведра, Access Key ID и Secret Access Key.
- Настройка пользовательского домена для CDN:
- Чтобы публично предоставлять содержимое вашего ведра R2, создайте пользовательский домен в Cloudflare.
- Например, я использовал
forumfiles.example.in. - Убедитесь, что настройки DNS указывают на предоставленный Cloudflare CNAME. Поскольку мой домен уже находится в Cloudflare, это было сделано автоматически.
- Настройка параметров сайта Discourse:
- s3_bucket: Имя вашего ведра R2 (например,
forum-uploads). - s3_region: Установите значение US East (N. Virginia). Опции «автоматически» не было.
- s3_endpoint: Используйте S3 API URL ведра, предоставленный Cloudflare (например,
https://<your-bucket-unique-id>.r2.cloudflarestorage.com). - s3_access_key_id: Ваш Access Key ID для R2.
- s3_secret_access_key: Ваш Secret Access Key для R2.
- s3_cdn_url: Ваш пользовательский домен для CDN (например,
https://forumfiles.example.in).
- s3_bucket: Имя вашего ведра R2 (например,
- Убедитесь, что включены опции enable s3 backups и enable s3 uploads.
- Настройка прав доступа и CORS:
- Установите для вашего ведра R2 приватный доступ и настройте политику CORS:
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "POST", "PUT", "HEAD"],
"AllowedOrigins": ["*"],
"ExposeHeaders": ["ETag"],
"MaxAgeSeconds": 3000
}
]
- Это обеспечит корректную работу загрузок без проблем с CORS.
- Проверка настройки:
- Загрузите тестовый файл или изображение через ваш форум на Discourse, чтобы убедиться, что загрузка работает корректно.
- Проверьте доступность файлов по вашему пользовательскому домену (например,
https://forumfiles.example.in/original/1X/...). - Проверьте резервные копии: у меня успешно выполнялись задачи создания резервных копий. Я также проверил это в ведре R2, и они отображаются в настройках сайта.
Заключение:
Следуя этим шагам, мне удалось бесшовно интегрировать Cloudflare R2 с Discourse, эффективно обрабатывая как загрузку файлов, так и создание резервных копий. Если у вас возникнут вопросы или возникнут проблемы, не стесняйтесь спрашивать!