gpt4 book ai didi

django - 如何混合使用 Django、Uploadify 和 S3Boto 存储后端?

转载 作者:行者123 更新时间:2023-12-03 22:45:34 25 4
gpt4 key购买 nike

背景

我正在 Django 上上传相当大的文件。文件大小一般为10MB-100MB。

我在 Heroku 上,我一直在达到 30 秒的请求超时。

开始

为了绕过限制,Heroku 的 recommendation是从浏览器直接上传到S3。

亚马逊通过向您展示如何 write an HTML form 来记录这一点执行上传。

由于我使用的是 Django,而不是手动编写 HTML,我使用的是 django-uploadify-s3 (example)。这为我提供了一个包裹在 JS 中的 SWF 对象,它执行实际的上传。

这部分工作正常!万岁!

问题

问题在于以一种理智的方式将这些数据绑定(bind)回我的 Django 模型。
现在数据作为一个简单的 URL 字符串返回,指向文件的位置。

但是,我之前使用的是 S3 Boto from django-storagesFileFields 管理我的所有文件,由令人愉快的 S3BotoStorageFile 支持.

重申一下,S3 Boto 单独运行良好,Uploadify 单独运行良好,问题在于将两者放在一起。

我的理解是填充 FileField 的唯一方法是通过提供 filename AND the file content .当您将文件从浏览器上传到 Django 时,这没问题,因为 Django 将文件内容保存在缓冲区中,并且可以随心所欲地使用它。但是,当像我一样进行直接到 S3 的上传时,Django 只接收文件名和 URL,而不是二进制数据,所以我无法正确填充 FieldFile .

求救

有人知道将 S3Boto 的 FileField 与直接到 S3 上传结合使用的优雅方式吗?

否则,仅基于 URL 管理 S3 文件的最佳方法是什么?包括设置过期时间、key id等。

非常感谢!

最佳答案

使用 URLField .

关于django - 如何混合使用 Django、Uploadify 和 S3Boto 存储后端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9729613/

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