gpt4 book ai didi

Django 作为 S3 代理

转载 作者:行者123 更新时间:2023-12-03 16:42:46 24 4
gpt4 key购买 nike

我使用自定义字段“下载文件”扩展了 ModelAdmin,它是我的 Django 项目中 URL 的链接,例如:

http://www.myproject.com/downloads/1

在那里,我想提供一个存储在 S3 存储桶中的文件。存储桶中的文件不是公开可读的,用户可能无法直接访问它。现在我想
  • 避免必须将文件加载到服务器内存中(这些是多 GB 文件)
  • 避免在服务器上放置临时文件

  • 理想的解决方案是让 django 充当代理,将 S3 块直接传输给用户。我使用 boto,但没有找到流式传输块的可能性。
    有任何想法吗?

    谢谢。

    最佳答案

    而不是代理,为什么不简单地重定向?

    使用 www.myproject.com/downloads/1 上的 django View 提供到 S3 存储 URL 的 HTTP 重定向 - 可以生成有时间限制的经过身份验证的 URL,例如看这里 https://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html

    然后客户端直接从 S3 下载文件,但内容仍然是安全的,访问必须通过您的 Django 应用程序

    关于Django 作为 S3 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2636783/

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