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