gpt4 book ai didi

ruby-on-rails - 获取 ActiveStorage blob 作为 blob

转载 作者:行者123 更新时间:2023-12-01 21:56:24 31 4
gpt4 key购买 nike

我正在构建一个 Rails 应用程序,该应用程序将允许用户直接在浏览器中访问某些上传的文件,但访问的 URL 与实际文件不同。这样可以通过强制登录来保护文件。

例如,您可以访问以下位置的文件:domain.com/file/19371da

过去,我通过使用 CarrierWave 然后执行 to_blob 来完成此操作文件本身,然后使用 send_data 将其发回并使用数据库中存储的有关该文件的数据:

send_data @file.file.to_blob, stream: false, filename: @file.name, type: @file.mime_type, disposition: 'inline'

但是,当使用新的 Active Storage 作为 CarrierWave 的潜在替代品时,我在将实际文件本身作为 blob 传递到 send_data 时遇到了障碍。方法。

例如

send_data @file.file.to_blob, stream: false, filename: @file.file.blob.filename, type: @user.file.blob.content_type, disposition: 'inline'

它给出了一个错误undefined method 'to_blob' for #<ActiveStorage::Attached::One:0x007f8f23ca2718> .

如何获取 Active Storage 中 Blob 形式的实际文件?

最佳答案

查看source对于 ActiveStorage::Attached::One ,它看起来有一个 blob 方法,这意味着您应该能够调用:

@file.file.blob

关于ruby-on-rails - 获取 ActiveStorage blob 作为 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48211124/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com