它需要什么格式?
或者截图中第一个选项只允许 Amazon AWS S3 吗?
如果只输入主机名,它是否有效?
1 个赞
您的意思是,我只需在 S3 CDN URL 中填入 (https://)idrivee2-51.com?
不,它也报了同样的错误。
您有尾随空格吗?
2 个赞
查看验证器,它是:
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 个赞
没有。一点也没有。
但我很惊讶今天它接受了同样的值,而之前(一直以来,我只是从 idrive 网站复制,然后粘贴在这里,今天也做了同样的事情)它一直没有接受。
而且,我认为它有时会拒绝接受刚才还能接受的值。
但总而言之,我现在已经解决了这个问题。
好的,现在已经解决了。
但是请告诉我,S3 CDN url 字段应该填写什么(或者留空)?它已经填入了之前/AWS 时期的值:https://bhdisco.s3.ap-south-1.amazonaws.com/uploads
您确实想在 cdn 字段上放置 cdn。您可以放置存储桶 URL,但这会花费更多且速度更慢。
1 个赞
好的,我明白了。
但这感觉太麻烦了,我最好只使用推荐的 S3 存储桶提供商,AWS!因此,我再次恢复了 AWS ID 和密钥。
但在此过程中,我遇到了新的障碍。尽管我没有在 AWS 界面中更改任何内容,除了加强我的登录验证之外,现在只有当我为所有“公共”设置打开“读取”访问权限时,上传到其中的媒体文件才能在我的网站上显示。
我不知道它之前是如何工作的,以及为什么我现在必须这样设置我的存储桶内容的“权限”:
(我现在更改了两个用红色显示的选项,否则我甚至无法预览我自己的上传内容)
如果您没有配置 CDN 来放在您的存储桶前面,请将其留空。
2 个赞

