将文件从远程 url 流式传输到 Django 视图响应

2023-11-22

有没有办法使用 Django Response 从远程 URL 流式传输文件(无需在本地下载文件)?

# view.py
def file_recover(request, *args, **kwargs):    
    file_url = "http://remote-file-storage.com/file/111"

    return StreamFileFromURLResponse(file_url)

我们有文件存储(文件可以很大 - 1 GB 或更多)。我们无法共享下载网址(存在安全问题)。文件流可以显着 通过将下载流转发到 Django 响应来提高下载速度。


Django 已经内置了流式Http响应应该为该类提供一个生成字符串作为内容的迭代器。在下面的例子中我正在使用requests 原始响应内容

import requests
from django.http import StreamingHttpResponse


def strem_file(request, *args, **kwargs):
    r = requests.get("http://host.com/file.txt", stream=True)

    resp = StreamingHttpResponse(streaming_content=r.raw)

    # In case you want to force file download in a browser 
    # resp['Content-Disposition'] = 'attachment; filename="saving-file-name.txt"'

    return resp

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将文件从远程 url 流式传输到 Django 视图响应 的相关文章

随机推荐

  • 为什么 Scala 的 Future 没有 .get / get(maxDuration) 方法,迫使我们求助于 Await.result() 呢?

    解耦有什么特别的好处吗 get方法从Future类 我希望它驻留在其中 并强制编码器必须了解这个名为的外部两种方法类Await 解耦有什么特别的好处吗 get方法从Future class 是的 让开发商很难做错误的事情 A Future表
  • 在 Web 部署之外应用 Web.Config 转换

    有没有办法在 Web 部署之外应用 VS 2010 Web Config 转换 例如在调试期间 能够在不同的环境之间自由切换 会给我很大的提升 是的 您可以显式执行 Web config 转换通过调用TransformXmlMSBuild
  • OPENJSON - 关键字“with”附近的语法不正确

    想知道是否有人能找出这有什么问题 当我从 HubSpotCache 之外的另一个数据库 仍在同一个 SQL 实例中 读取表时 我不断收到此错误 消息 319 第 15 级 状态 1 第 33 行关键字 with 附近的语法不正确 如果此语句
  • 为什么我的编译器保留的空间多于函数堆栈帧所需的空间?

    我有一个功能 void func int a int x a 2 在汇编代码中 在函数序言中 push ebp mov esp ebp sub 0x10 esp 代码只需要为x预留空间 即4个字节 但它保留了 16 个字节 这是为什么 我总
  • Rmarkdown 裁剪 ggplots 周围的空白区域

    尽管我在这里使用水平条形图作为示例 但这本身并不是问题 一般问题是如何处理使用后在 rmarkdown 中 ggplots 周围创建的空白 坐标 固定 比率 为了减少条形图使用的空间 特别是在因子较少的情况下 我更喜欢水平条形图 其中我使用
  • 在 iOS 7 中使用 UITableViewCell 的背景视图覆盖了默认的删除按钮

    我正在使用 UITableviewCell 的背景视图 它是一个图像视图 我使用图像视图来实现第一个和最后一个单元格的两个侧角 它工作正常但问题是当我使用这个背景视图时 当我们按下 tableviewcell 默认编辑按钮时出现的默认单元格
  • 如何将视频或图像序列转换为包文件?

    我是 ROS 新手 我需要转换预先存在的视频文件 或者large可以连接到视频流中的图像数量 bagROS 中的文件 我在网上找到了这段代码 http answers ros org question 11537 creating a ba
  • 将 CSV 文件转换为二维数组

    我在一维数组中有一个我的想法的例子 它只会输出列 我的想法是使用二维数组来选择行和列 这是我的代码 String fName c csv myfile csv String thisLine int count 0 FileInputStr
  • 测试 lambda 是否无状态?

    我将如何测试 lambda 是否是无状态的 即它是否捕获任何内容 我的猜测是使用重载解析和函数指针重载 或者模板专门化 int a auto l1 a return 1 auto l2 return 2 test l1 and l2 get
  • .Net 4.6可以在Linux上运行吗

    我正在将一个Web项目从DotNet 4 6升级到DotNetCore 2 0 并且我打算在Linux上运行这个应用程序 我想推迟将某些代码升级到 DotNetCore 例如引用的 DLL 我发现你可以在这个答案中引用DotNetCore中
  • 如何发出通行证推送通知

    我已经做了一个通行证网络服务 接下来 我需要在我的通行证更新时发出推送通知 从Updating a pass of passkit 编程指南来看 并没有详细说明 你能详细解释一下吗 推送通知的要求和协议记录在推送通知编程指南 Passboo
  • 计算 Pandas 中的年初至今总计

    我有一个如下所示的数据框 FinancialYearStart MonthOfFinancialYear SalesTotal 0 2015 1 10 1 2015 2 10 2 2015 5 10 3 2015 6 50 4 2016 1
  • 尝试了解 array_diff_uassoc 优化

    看来数组在内部相互比较之前已排序array diff uassoc 这种方法有什么好处 测试脚本 function compare a b echo a b n return strcmp a b a array a gt 1 b gt 2
  • 在模拟器上运行自定义 Android ROM

    我基于 AOSP Nexus 6 为 7 0 构建了一个自定义 ROM 我想将此 ROM 与 SDK 模拟器一起使用 我相信构建的午餐组合是 aosp x86 64 eng 应该可以在 SDK 模拟器上运行 但是 我在 AVD Manage
  • 我想使用一种在部署到服务器后仅调用一次的方法[重复]

    这个问题在这里已经有答案了 我是 Servlet 新手 我想使用一种在部署到服务器后仅调用一次的方法 我在看HttpServlet init 但我发现每个请求都会调用它 难道是我理解错了 有哪些替代方案init 不 不会在每个请求中调用它
  • 如何在 C# 中使用 SMTPclient 向 gmail 发送电子邮件?

    我正在使用 Outlook 2003 和 Visual Studio 2008 我想开发一个将电子邮件发送到任何域的应用程序 但是当我尝试向 gmail hotmail 等发送电子邮件时 我的代码失败了 实际上所有消息都存储在C Inetp
  • React - 未经身份验证时重定向到登录页面

    这是我的主要反应文件 App tsx const App FC gt const isLoggedIn boolean localStorage getItem logged user null return
  • maven:bash mvn 权限被拒绝

    这就是我所看到的 mvn bash usr local apache maven apache maven 3 1 1 bin mvn Permission denied 我的 bash 文件 if f etc bashrc then et
  • 确定互联网连接是否可用

    我知道我不是第一个问这个问题的人 我如何知道我的申请是否在线 我找到了这个帖子 堆栈溢出 我想用 C 和 NET 3 5 来实现 建议定期对资源执行 ping 操作 我对这个建议不太满意 我宁愿检测网络更改 然后 ping 我的服务以检查它
  • 将文件从远程 url 流式传输到 Django 视图响应

    有没有办法使用 Django Response 从远程 URL 流式传输文件 无需在本地下载文件 view py def file recover request args kwargs file url http remote file