为什么iDrive的S3端点被Discourse拒绝?

查看验证器,它是:

  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"
2 个赞