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