Active Storage Blob
Blob 是一个记录,包含有关文件元数据和文件在服务中的存储位置的键。Blob 可以通过两种方式创建
-
在文件上传到服务器端服务之前,通过
create_and_upload!
。该操作需要服务器上提供包含文件内容的可回溯io
。 -
在文件直接上传到客户端服务之前,通过
create_before_direct_upload!
。
第一个选项不需要任何客户端 JavaScript 集成,并且可以被任何其他处理文件的后端服务使用。第二个选项速度更快,因为您没有使用自己的服务器作为上传的暂存点,并且可以与 Heroku 等不提供大量磁盘空间的部署一起使用。
Blob 旨在保持其对特定文件的引用不变。您可以在后续过程中更新 blob 的元数据,但不要更新键或更改上传的文件。如果您需要创建派生文件或以其他方式更改 blob,只需创建新的 blob 并清除旧的 blob 即可。
命名空间
- 模块 ActiveRecord
- 模块 ActiveRecord::Coders
- 模块 ActiveStorage
- 模块 Digest
- 类 ActiveStorage::Blob