Какой формат требуется?
Или первый вариант на скриншоте поддерживает только Amazon AWS S3?
Работает ли это, если просто указать имя хоста?
Вы имеете в виду, что нужно просто указать (https://)idrivee2-51.com в URL S3 CDN?
Нет, это тоже выдает ту же ошибку.
У вас есть пробелы в конце строки?
Судя по валидатору, он выглядит так:
s3_endpoint:
default: ""
regex: '^https?:\/\/.+[^\/]$'
Таким образом, проверка введенного вами значения показывает, что оно абсолютно корректно:
[1] pry(main)> 'https://b1v7.or.idrive2-51.com'.match /^https?:\/\/.+[^\/]$/
=> #<MatchData "https://b1v7.or.idrive2-51.com">
Очевидно, что в поле что-то указано неверно. Как предлагает @pfaffman, проверьте наличие пробелов.
Если это всё ещё не сработает, работает ли это из консоли Rails?
Я ожидал бы, что это вызовет ошибку:
[1] pry(main)> SiteSetting.s3_endpoint = 'gopher://b1v7.or.idrive2-51.com'
Discourse::InvalidParameters: s3_endpoint: Value doesn't match the required format.
from /home/michael/prog/Discourse/discourse/lib/site_settings/type_supervisor.rb:288:in `validate_value'
а это должно сработать:
[1] pry(main)> SiteSetting.s3_endpoint = 'https://b1v7.or.idrive2-51.com'
=> "https://b1v7.or.idrive2-51.com"
Нет. Совсем нет.
Но меня удивляет, что сегодня он принял то же самое значение, которое раньше никогда не принимал (до сегодняшнего дня я всегда просто копировал значение с помощью кнопки «Копировать» на сайте IDrive и вставлял его сюда, и сегодня я сделал то же самое).
И сейчас, похоже, он иногда отказывается принимать значение, которое только что принимал.
Но в целом по этому вопросу у меня теперь всё в порядке.
Спасибо, теперь всё в порядке.
Но скажите, пожалуйста, что мне указать (или оставить пустым) в поле S3 CDN url?
Там уже заполнено значение из предыдущих времен AWS: https://bhdisco.s3.ap-south-1.amazonaws.com/uploads
Вы действительно хотите указать CDN в поле CDN. Вы можете указать URL-адрес бакета, но это будет стоить дороже и работать медленнее.
Хорошо, я понял.
Но всё это кажется настолько громоздким, что я лучше воспользуюсь только рекомендованным провайдером S3-ведер — AWS! Поэтому я снова восстановил свой идентификатор и секретный ключ AWS.
Однако при этом я столкнулся с новой проблемой. Несмотря на то, что я не менял ничего в интерфейсе AWS, кроме ужесточения правил входа, теперь медиафайлы, загруженные в него, видны на моём сайте только если я включу доступ «Чтение» для всех «Публично».
Я не знаю, как это работало раньше, и почему только сейчас мне нужно настроить «Разрешения» содержимого моего ведра следующим образом:
(Оба элемента, выделенные красным, были изменены мной; иначе я даже не могу просмотреть свои собственные загрузки)
Если вы не настроили CDN перед вашим хранилищем бакетов, оставьте это поле пустым.

