在Rails中,可以使用Active Storage库来处理文件上传和存储。要从blob中读取文件并将其保存到Rails的公用文件夹中,可以按照以下步骤进行操作:
config.active_storage.service = :local
file = params[:file]
blob = ActiveStorage::Blob.create_after_upload!(
io: file,
filename: file.original_filename,
content_type: file.content_type
)
open
方法打开文件,并将其保存到公用文件夹中。可以使用Rails的public
文件夹作为目标文件夹,例如:File.open(Rails.root.join('public', blob.filename.to_s), 'wb') do |file|
file.write(blob.download)
end
这将把文件保存到Rails的公用文件夹中,并使用原始文件名作为文件名。
需要注意的是,上述代码只是一个简单的示例,实际应用中可能需要进行错误处理、文件名处理等其他操作。
关于腾讯云相关产品,腾讯云提供了对象存储服务(COS)用于存储和管理大规模的非结构化数据,可以作为Active Storage的存储服务。您可以参考腾讯云对象存储(COS)的文档了解更多信息:腾讯云对象存储(COS)。
领取专属 10元无门槛券
手把手带您无忧上云