You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Rails ActiveStorage的S3文件Key中获取真实文件名

问题:从Rails ActiveStorage的S3 Blob Key获取真实文件名

我需要将通过Rails ActiveStorage上传至S3的图片迁移到另一WordPress网站,但发现S3中的文件名是类似5jEWBoezkaNyJtQA1icpnuSs的Blob Key,请问能否从该Key中获取如"docker-life-cycle"这类真实文件名?

解决方法

  • 可以获取真实文件名。ActiveStorage不会把原始文件名直接作为S3存储的Key,而是生成随机唯一的Blob Key,但文件的原始名称、元数据等信息会存在Rails应用的数据库中,和Blob Key一一关联。
  • 具体操作步骤:
    1. 访问你的Rails应用数据库,找到active_storage_blobs表——这是ActiveStorage存储所有上传文件元数据的核心表。
    2. 在表中通过key字段匹配你拿到的Blob Key(比如5jEWBoezkaNyJtQA1icpnuSs),对应的filename字段就是你需要的真实文件名(例如"docker-life-cycle.png")。
    3. 如果需要批量处理所有文件,可以用SQL查询导出Blob Key与真实文件名的映射关系,示例查询语句:
      SELECT key, filename FROM active_storage_blobs;
      
    4. 拿到映射关系后,你可以批量修改S3上的文件名称,或者在迁移到WordPress时直接用真实文件名替换Blob Key。

注意:如果你的Rails应用数据库已经丢失,那无法从Blob Key直接反推出真实文件名——因为ActiveStorage的Blob Key是随机生成的唯一标识,本身不包含任何原始文件名的信息。

内容的提问来源于stack exchange,提问作者Dhanu Gurung

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 11:15:55