Min*_*jer 8 ruby ruby-on-rails rails-activestorage
我在 Rails 5.2 中使用主动存储。我遵循 EdgeRails 指南,并已将 Active-Storage 配置为使用本地磁盘。
当我使用 Rails 应用程序时,文件上传效果很好。
但是,问题是我需要在不使用 Rails 作为中介的情况下物理访问这些上传的文件。
对文件存储位置的查询返回:
url_for(@employee_staff.avatar)
=> "/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBGUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--e76664d247cb5437fe1cd11f7ee0ded24f95aee2/profilepic3.jpeg"
Run Code Online (Sandbox Code Playgroud)
我想弄清楚这个文件路径在我的本地磁盘中的保存位置。到目前为止,我没有运气。
非常感谢有关 Active-Storage 如何工作以及我可以在哪里看到上传文件的任何解释。
在您的本地开发机器上(因为您提到了本地磁盘),您应该有一个包含config/storage.yml类似于以下块的文件:
local:
service: Disk
root: <%= Rails.root.join('storage') %>
Run Code Online (Sandbox Code Playgroud)
在上面的这个例子中,我将文件存储在一个以storage我的 rails 应用程序的根目录命名的文件夹中。在该文件夹中,您会找到不打算通过文件资源管理器/Finder 导航的嵌套文件夹(但您可以)。
通过您的 rails 应用程序,例如通过视图,您将使用尚未详细记录的url 助手。
从轨控制台,你可以尝试,名为模型Foo,用has_one_attached :photo
Foo.last.photo.blob.key
Run Code Online (Sandbox Code Playgroud)
它应该给你一个 ~24 个字符的字符串。
子文件夹内是一个文件,其名称与您在上面打印的密钥相匹配(无扩展名)。那是你的文件。
| 归档时间: |
|
| 查看次数: |
6413 次 |
| 最近记录: |