Так, я также хотел разместить свои загрузки за Cloudflare, используя Wasabi вместо S3, поэтому CloudFront недоступен.
В итоге я напрямую изменил базу данных и перезапустил Discourse, и всё заработало. Также, действительно ли важно использование HTTPS между CDN и S3, если бакет имеет только публичный доступ на чтение?
UPDATE site_settings SET value = 'uploads.domain.tld' WHERE name = 's3_upload_bucket';
Я могу без проблем настроить URL CDN и указать его напрямую на Wasabi. Однако единственный способ заставить трафик сначала проходить через Cloudflare — это создать CNAME-запись для моего домена, указывающую на s3.wasabisys.com, где имя бакета должно соответствовать формату поддомена.your.domain.
Например, я не могу использовать бакет с именем xyz-uploads и размещать его за Cloudflare с CNAME на s3.wasabisys.com.
После множества разочарований и поисков в Google я наткнулся на эту тему и удивился, увидев, что она была создана ещё в 2015 году, и что эта проблема всё ещё актуальна? Это вполне обоснованный сценарий использования: применять бакет S3 с точками в названии, использовать функцию статического хостинга S3, а затем размещать перед ним CloudFlare с SSL. В такой конфигурации нет ничего неправильного, за исключением того, что Discourse в настоящее время не позволяет нам это делать.
Если Discourse действительно хочет опекать всех остальных пользователей, защищая их от проблем с SSL из-за точек в именах бакетов S3, то не может ли он хотя бы просто отображать ссылку на документацию, чтобы они могли разобраться в вопросе, одновременно позволяя тем, кто знает, как правильно настроить это, делать это?