gpt4 book ai didi

ruby-on-rails - 在 Rails 应用程序中将私有(private)文档放在哪里?

转载 作者:行者123 更新时间:2023-12-04 18:13:00 25 4
gpt4 key购买 nike

我有一些我想在我的 rails 应用程序中使用的模板文件。我想知道在给定两种情况下将它们放在哪里(在哪个目录下):

  • 它们是我的应用程序私有(private)的(只有网站管理员可以删除、更改它们)
  • 它们是我的应用程序私有(private)的,但也可以由管理员管理(已删除、修改)
  • 最佳答案

    评论后更新

    由于您想在本地提供文件,只需将它们放在/public/文件夹之外和任何/assets/文件夹之外,您应该会很好。您可以在此处阅读有关公共(public)和 Assets 文件夹的更多信息: Section 2 How to use the Asset Pipeline 比方说:

    /private/

    我相信 Section 11 send_file在下面我的原始答案中链接的 SO 问题中也使用了仍然是您通过 Controller 而不是静态地提供对文件的访问的方式。改编自文档:
    send_file("#{Rails.root}/private/#{filename}",
    :filename => "#{filename}",
    :type => "application/pdf", #for example if pdf
    :disposition => 'inline') #send inline instead of attachment

    远程服务的原始答案以及下面的 send_file

    关于 1) 应用程序私有(private)的文件
    正如 Callmeed 在 中解释的那样,您可以将这些私有(private)文件锁定在像 Amazon S3 这样提供授权访问的系统中。 this SO question .然后,只有您的应用程序才能授权访问文件。

    关于 2) 管理员也可以访问

    仅使用第 1 部分)的问题在于它会在有限的时间段内解锁文件,在此期间我假设它们是公开可用的。因此,如果您想解决这个问题,我认为您实际上需要在上面的同一个 SO 问题中从 Pavel Shved 那里获取解决方案。

    在该解决方案中,文件是通过提供文件二进制数据的路由/ Controller 提供的,而不是使用指向文件的 URL。

    组合解决方案

    从 S3 读取文件,仅授权您的应用程序进行该访问(不公开打开它)。然后直接通过 Controller 提供数据, Controller 可以授权任何你想要的人。

    注意事项
  • 直接从 Controller 提供二进制数据似乎会降低
    如果经常使用它的应用程序,但我从未尝试过。
  • 如果您能找到更简单的方法来完成第 1) 部分,第 2) 部分仍然可以使用该解决方案
  • 关于ruby-on-rails - 在 Rails 应用程序中将私有(private)文档放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9354139/

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