大家好:
我刚刚在我的 Discourse 实例上启用了 S3 上传,并配置了 Cloudfront CDN。我刚刚测试了将图片和 PDF 文件作为附件上传到帖子中,它们已成功上传到 S3 存储桶。但是,在检查显示两者的页面时,我发现 PDF 没有使用 CDN 链接,而图片使用了。
对于图片,img src 指向 CDN,浏览器使用它来加载缩略图。
对于 PDF 文件,链接 src 指向一个相对 URL(/uploads/short-url/xxxxxxxxxxxxx.pdf),该 URL 似乎重定向到我实际 S3 存储桶中的文件(而不是 CDN)。
这是预期的吗?这是我第一次使用 CDN,所以也许通常不会通过它来提供较大的文件?在将所有旧帖子迁移到 S3 之前,我只想确保我所有的设置都正确且正常工作。
谢谢!
4 个赞
Richie
(Richie Rich)
2
很有趣的观察,我以前从未注意到。
我做了一些测试。
一些现有的 PDF 上传确实直接链接到 CDN:
一些现有的 PDF 上传不使用 CDN:
有什么区别? 
我不知道
我需要检查更多例子。
我通过私信给自己并发布新帖子做了一个快速测试,显示 /short-url/,正如你所详述的:
点击链接后,直接从 S3 存储桶拉取,正如你所描述的:
我不确定为什么我们的一些帖子会使用 CDN 而另一些不会,但我可以重现你看到的一些情况。
1 个赞
pfaffman
(Jay Pfaffman)
3
我认为你需要重新烘焙帖子。在添加 CDN 之前上传的帖子不会自动更新,重新烘焙所有匹配模式的帖子(也许重新烘焙所有帖子会更容易)。
1 个赞
感谢 @pfaffman
我刚刚重新烘焙了所有帖子,没有发现任何变化。烘焙后,我又创建了一些测试帖子。总结一下我看到的情况(看起来 @Richie 也是这样):
- 帖子中的图片正确地链接到帖子内联显示的图片的 CDN。
- 但是,图片的“下载”链接(在全屏查看图片时右下角)链接到一个短 URL,该短 URL 重定向到我的 S3 存储桶(而不是 CDN)。
- 对于 PDF 上传,链接指向一个短 URL,该短 URL 重定向到我的 S3 存储桶(而不是 CDN)。
看起来,任何时候使用短 URL,重定向都不会使用 CDN。
对于我的 Discourse 设置,我同时使用 S3 进行上传和备份。我还没有将我所有现有的上传文件移动到 S3(一旦我解决了这个问题就会这样做)。我也没有启用安全上传。
谢谢!
4 个赞
sam
(Sam Saffron)
5
感谢您报告此问题,我们将在下周进行查看,并处理任何遗漏的 CDN 绕过。我们应始终尽可能连接到 CDN,但请注意,如果您启用了安全上传,我们将无法轻易做到这一点。
5 个赞