问题描述
如果rails应用程序是唯一需要使用这些文件的软件,那么这很好。
但是,如果该应用仅用作将图像上传到S3以便其他一些(完全独立的)服务可以使用它们的方式,该怎么办?
问题是,其他开发人员将无法理解目录和文件,因为它们以Rails可以理解的方式进行了标记,但是人类却无法理解(例如,名为“ O2”的文件夹的含义)是什么意思?)。
是否有某种方法可以确保以人性化的方式存储上传内容?例如每个文件夹可以是一个user_id,其中包含其资产? (或类似)
解决方法
据我所记得,您将必须实施自己的服务,以某种方式将key
替换为其他内容(例如S3Service),或修补ActiveStorage以在不同的密钥中创建密钥本身道路。我不确定这是否足够,因为该密钥很可能用于服务之外的其他关键功能。
或者,您可以戳ActiveStorage::Blob来摆弄key
。也就是说,ActiveStorage不支持您开箱即用的功能,您将不得不冒其内部混乱的风险。
解决该问题(但不能回答您的问题)的一种解决方案可能是实施问题注释中概述的API。