它需要什么格式?
或者截图中第一个选项只允许 Amazon AWS S3 吗?
如果只输入主机名,它是否有效?
您的意思是,我只需在 S3 CDN URL 中填入 (https://)idrivee2-51.com?
不,它也报了同样的错误。
您有尾随空格吗?
查看验证器,它是:
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,但这会花费更多且速度更慢。
如果您没有配置 CDN 来放在您的存储桶前面,请将其留空。

