S3 上传 - 使用 CDN 来处理 PDF 文件?

大家好:

我刚刚在我的 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 个赞

很有趣的观察,我以前从未注意到。

我做了一些测试。

一些现有的 PDF 上传确实直接链接到 CDN:

一些现有的 PDF 上传使用 CDN:

有什么区别? :thinking:

我不知道 :man_shrugging: 我需要检查更多例子。

我通过私信给自己并发布新帖子做了一个快速测试,显示 /short-url/,正如你所详述的:

点击链接后,直接从 S3 存储桶拉取,正如你所描述的:

我不确定为什么我们的一些帖子使用 CDN 而另一些不会,但我可以重现你看到的一些情况。

1 个赞

我认为你需要重新烘焙帖子。在添加 CDN 之前上传的帖子不会自动更新,重新烘焙所有匹配模式的帖子(也许重新烘焙所有帖子会更容易)。

1 个赞

感谢 @pfaffman

我刚刚重新烘焙了所有帖子,没有发现任何变化。烘焙后,我又创建了一些测试帖子。总结一下我看到的情况(看起来 @Richie 也是这样):

  • 帖子中的图片正确地链接到帖子内联显示的图片的 CDN。
  • 但是,图片的“下载”链接(在全屏查看图片时右下角)链接到一个短 URL,该短 URL 重定向到我的 S3 存储桶(而不是 CDN)。
  • 对于 PDF 上传,链接指向一个短 URL,该短 URL 重定向到我的 S3 存储桶(而不是 CDN)。

看起来,任何时候使用短 URL,重定向都不会使用 CDN。

对于我的 Discourse 设置,我同时使用 S3 进行上传和备份。我还没有将我所有现有的上传文件移动到 S3(一旦我解决了这个问题就会这样做)。我也没有启用安全上传。

谢谢!

4 个赞

感谢您报告此问题,我们将在下周进行查看,并处理任何遗漏的 CDN 绕过。我们应始终尽可能连接到 CDN,但请注意,如果您启用了安全上传,我们将无法轻易做到这一点。

5 个赞

我也注意到其他文件上传也有这个问题:

1 个赞