我构建了Rails应用程序,并确定我会使用Active Storage(AS)。然后,我意识到AS将所有文件都转储到存储根目录中。我需要将其隔离在客户之间,而且我宁愿在模型的基础上进行组织,等等。Carrierwave(CW)可以直接使用。我将构建一个rake任务,以将这些旧附件迁移过来。
AS Blob键是本地存储的文件名,但在我的本地计算机上,其存储方式如下:
/storage/HR/mw/HRmWZZNk4wd7dD1nt9iUbi1n
以及在我的S3兼容商店中:
/HRmWZZNk4wd7dD1nt9iUbi1n
似乎没有内置方法返回AS文件(CW具有)的本地路径。我知道我可以即时建立本地路径,但是想看看这里是否缺少明显的东西。
答案 0 :(得分:0)
在这里找到它
Get path to ActiveStorage file on disk
ActiveStorage::Blob.service.send(:path_for, user.avatar.key)