akhil
(Akhil)
03.Ноябрь.2023 13:48:33
1
Всем привет!
Я следовал этому руководству , чтобы настроить S3.
Единственный параметр, который я не смог найти, — это «убедитесь, что флажок Программный доступ установлен».
Я не нашёл ни одного такого параметра.
Но S3 не работает.
Примечание: CDN работает через CloudFront (S3 является источником для CloudFront).
Спасибо.
Запускаемая вами задача rake настаивает на том, чтобы указанные значения находились в переменных окружения; она не будет использовать значения из настроек сайта.
akhil
(Akhil)
03.Ноябрь.2023 14:21:51
3
Спасибо за ответ.
Я использовал rake, думая, что URL-адреса изображений будут заменены на ссылки CDN.
Но сама настройка S3 не работает.
Не упустил ли я что-то в конфигурации S3?
Да, для выполнения задачи rake по миграции на S3 необходимо установить переменные окружения.
akhil
(Akhil)
03.Ноябрь.2023 14:29:20
5
Я не понимаю. Надеюсь, вы проверили мои настройки Discourse.
Нужны ли какие-либо дополнительные шаги помимо этого руководства? Set up file and image uploads to S3
Я считаю, что вы можете получить обзор необходимых переменных окружения здесь:
Configure an S3 compatible object storage provider for uploads
РЕДАКТИРОВАНИЕ: В контексте команды rake см. ответ ниже
или из ошибки:
Они должны быть заданы в окружении, а не в настройках сайта.
Вы можете передать их при запуске задачи rake, например:
DISCOURSE_S3_BUCKET=foo DISCOURSE_S3_REGION=us-east-1 DISCOURSE_S3_USE_IAM_PROFILE=true rake uploads:migrate_to_s3
akhil
(Akhil)
03.Ноябрь.2023 14:35:51
8
О, хорошо!
Значит, я добавлю это в app.yml
Пример:
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: us-west-1
DISCOURSE_S3_ACCESS_KEY_ID: myaccesskey
DISCOURSE_S3_SECRET_ACCESS_KEY: mysecretkey
DISCOURSE_S3_CDN_URL: https://falcoland-files-cdn.falco.dev
DISCOURSE_S3_BUCKET: falcoland-files
DISCOURSE_S3_BACKUP_BUCKET: falcoland-files/backups
DISCOURSE_BACKUP_LOCATION: s3
Пожалуйста, прочитайте ответ Майкла!
akhil
(Akhil)
03.Ноябрь.2023 14:42:06
10
Так как моя установка свежая!
Мое единственное беспокойство касается новых изображений. Я выполнил Rake, как было предложено в статье.
Я думал, что достаточно просто добавить настройки S3 через административную панель Discourse, чтобы новые изображения обслуживались из S3!
pfaffman
(Jay Pfaffman)
03.Ноябрь.2023 15:05:13
11
akhil
(Akhil)
03.Ноябрь.2023 15:16:06
12
Да, так как у меня настроены S3 и Cloudfront, я добавил код для S3 следующим образом.
Сейчас пересобираю. Надеюсь, S3 заработает!
akhil
(Akhil)
03.Ноябрь.2023 15:31:59
13
Не сработало! Мне кажется, не хватает чего-то, связанного с правами доступа к S3!
akhil
(Akhil)
03.Ноябрь.2023 16:36:52
14
Есть какие-нибудь предложения?
Здесь три вопроса:
Может ли Discourse читать/записывать и т.д. в бакет?
Могут ли анонимные пользователи читать из бакета?
Может ли CDN читать из бакета?
Похоже, не работает второй пункт?
akhil
(Akhil)
04.Ноябрь.2023 09:34:02
17
Пожалуйста, проверьте мою конфигурацию и дайте знать, если я что-то упустил: S3 и CDN CloudFront
Основано на этом руководстве
Создано два бакета:
Один для CDN (также включена ACL)
Один для резервных копий
Создана политика с добавлением двух бакетов, привязана к пользователю IAM и сгенерированы ключи доступа.
Создано два распределения CloudFront:
cdn.mysite.com (источник — бакет CDN) с настройкой CNAME.
assets.mysite.com (источник — mysite.com ) (Сообщество находится на основном домене, а не на поддомене) с настройкой CNAME.
Основано на этом руководстве :
Добавлен код AWS S3 и конфигурация в файл app.yml следующим образом:
Спасибо.
akhil
(Akhil)
04.Ноябрь.2023 18:00:59
19
Большое спасибо @pfaffman
За подсказку по использованию www в адресе хоста . Мой форум использовал версию без www!
Я переключился на версию с www и пересобрал его!
Теперь всё работает отлично, включая CDN и активы!
Спасибо.
pfaffman
(Jay Pfaffman)
05.Ноябрь.2023 00:03:51
20
Не совсем понимаю, как это помогло, но рад, что вы всё решили!
akhil
(Akhil)
05.Ноябрь.2023 04:53:16
21
Как я объяснял здесь , после этого действия сайт перестал быть доступным. Поэтому я не смог увидеть результат. Однако, когда я попробовал ту же настройку на тестовом поддомене, всё работало исправно. Следовательно, я подозреваю, что проблема связана с SSL.
Исходя из вашего указания на www, я изменил адрес хоста, и проблема немедленно решилась.
Также я подозреваю, что сайт мог стать недоступным из-за недавнего сбоя в работе Cloudflare .
В любом случае, всё исправилось.
Спасибо!