Active Storage生成的Variant文件存储在S3存储桶根目录而非指定路径的问题求助
Active Storage生成的Variant文件存储在S3存储桶根目录而非指定路径的问题求助
大家好,我最近在使用Rails的Active Storage时碰到了个头疼的问题,想过来请教下各位:
目前用Active Storage给模型记录添加图片的功能是正常的,但生成Variant(变体)文件的时候,这些变体居然直接存在了S3存储桶的根目录,比如生成的文件名是1nqwr0ncsnr57pcjsnoslame15sw这种。但根据我查的文档和相关信息,变体文件应该存在variants/<blob_id>/这样的前缀路径下才对。
这个问题直接导致了一个麻烦:当我删除对应的模型记录时,变体文件不会被自动清理掉。从销毁操作的日志里能看出来,系统是在找带variants/<blob_id>前缀的文件,但我的变体根本不在这个路径下:
Disk Storage (0.3ms) Deleted file from key: dl9t4j18brouy3kxvf51zokmcrda Disk Storage (0.0ms) Deleted files by key prefix: variants/dl9t4j18brouy3kxvf51zokmcrda/
我已经试过这些排查步骤了:
- 专门新建了一个干净的Rails项目测试,结果还是出现同样的问题
- 已经在配置里开启了变体追踪:
config.active_storage.track_variants = true
有没有朋友遇到过类似的情况?或者能帮我看看是不是哪里的配置漏了或者错了?麻烦指点一下,非常感谢!




