Ruby on Rails中Active Storage如何实现XML文件上传处理?
- 内容介绍
- 相关推荐
本文共计806个文字,预计阅读时间需要4分钟。
Active Storage 本身不限制文件类型,但 Rails 默认的 `content_type` 白名单会拦截 `application/xml` 和 `text/xml` 类型。上传 XML 文件时,可能会遇到 `ActiveStorage::InvariableError` 或静默失败(实际上没有上传 Blob)。根本原因是 Rails 7 对非图像/文本/视频等常规类型做了默认过滤。
- 检查日志里是否出现
Skipping Active Storage attachment: unsupported content type - 不是 Active Storage 不能存 XML,而是
ActiveStorage::Blob.create_after_upload!被中间件提前拒绝了 - 绕过方式不是改源码,而是显式声明允许类型
如何让 Active Storage 接收 XML 文件
在初始化配置中扩展允许的 MIME 类型列表。
本文共计806个文字,预计阅读时间需要4分钟。
Active Storage 本身不限制文件类型,但 Rails 默认的 `content_type` 白名单会拦截 `application/xml` 和 `text/xml` 类型。上传 XML 文件时,可能会遇到 `ActiveStorage::InvariableError` 或静默失败(实际上没有上传 Blob)。根本原因是 Rails 7 对非图像/文本/视频等常规类型做了默认过滤。
- 检查日志里是否出现
Skipping Active Storage attachment: unsupported content type - 不是 Active Storage 不能存 XML,而是
ActiveStorage::Blob.create_after_upload!被中间件提前拒绝了 - 绕过方式不是改源码,而是显式声明允许类型
如何让 Active Storage 接收 XML 文件
在初始化配置中扩展允许的 MIME 类型列表。

