好的,我找到了生成 Markdown 附件 的地方,据我所知,插件 API 无法(轻松地)覆盖它(我甚至认为不应该这样做)。
所以,我最初想在这些 URL 中添加 ?dl=1 参数的想法似乎是错误的方法。
关于不强制下载已解析的短 URL:如果我正确理解了 S3 存储桶公共 ACL 的反对意见,那么应该:
- 通过 CDN 提供 S3 文件(正如 @martin 指出的,对于附件来说是不可行的,因为在这种情况下我们可能无法正确设置下载文件名)
- 为 S3 对象创建预签名 URL
但目前的行为既没有这样做,也没有期望 S3 存储桶具有公共 ACL。对于支持的 S3 提供商(包括亚马逊)似乎也是如此,那么为什么在解析 S3 存储的短 URL 时,不将 Discourse.store.url_for 中的 force_download 选项默认设置为 true 呢?