跳至内容 跳至搜索

通过应用程序代理文件。这避免了重定向并使文件更易于缓存。

警告:默认情况下,所有 Active Storage 控制器都可公开访问。生成的 URL 很难猜测,但设计上是永久性的。如果您的文件需要更高级别的保护,请考虑实施 身份验证控制器.

方法
S
包含的模块

实例公共方法

show()

# File activestorage/app/controllers/active_storage/blobs/proxy_controller.rb, line 14
def show
  if request.headers["Range"].present?
    send_blob_byte_range_data @blob, request.headers["Range"]
  else
    http_cache_forever public: true do
      response.headers["Accept-Ranges"] = "bytes"
      response.headers["Content-Length"] = @blob.byte_size.to_s

      send_blob_stream @blob, disposition: params[:disposition]
    end
  end
end