Active Storage映射机制及文件与数据库匹配方法(Azure迁移场景)
Active Storage数据库条目与存储文件的映射方法
Active Storage的本地存储路径是由active_storage_blobs表中的key字段生成的,并非直接使用文件名,这是你之前没匹配到的核心原因,具体规则如下:
- 拆分
active_storage_blobs表中目标文件的key值:取前2个字符作为第一级文件夹名,接下来的2个字符作为第二级文件夹名,剩余的所有字符就是存储的文件名 - 把这三部分按层级组合,就是文件在存储中的完整路径
举个实际例子:
如果active_storage_blobs里某条记录的key是a1b2c3d4e5,那么对应的存储路径就是a1/b2/a1b2c3d4e5,完全匹配你提到的两级文件夹结构。
如果涉及图片变体等衍生文件,变体的存储路径同样基于原blob的key生成,你可以通过blob.variant(resize: "100x100").key获取变体的key,再按上述规则拆分路径即可。
内容的提问来源于stack exchange,提问作者Tobias
相关产品推荐
相关产品推荐

