gpt4 book ai didi

python - 如何使用 Pylons 提供大文件?

转载 作者:太空宇宙 更新时间:2023-11-03 11:10:39 25 4
gpt4 key购买 nike

我正在编写一个基于 Pylons 的下载网关。网关的客户端将通过 ID 寻址文件:

/file_gw/download/1

在内部,文件本身通过内部文件服务器的 HTTP 访问:

http://internal-srv/path/to/file_1.content

文件可能很大,所以我想流式传输内容。我将有关文件的元数据存储在 StoredFile 模型对象中:

class StoredFile(Base):
id = Column(Integer, primary_key=True)
name = Column(String)
size = Column(Integer)
content_type = Column(String)
url = Column(String)

鉴于此,编写我的 file_gw Controller 的最佳方式(即:最符合架构、性能等)是什么?

最佳答案

您要避免的一件事是在将第一个字节返回给客户端之前将整个文件加载到内存中。在 wsgi 中,您可以为响应主体返回一个迭代器。 webob 文档有一个 example你应该能够在你的 Controller 中工作。毕竟,pylons 使用的是 webob。

这样做的总体效果是,无论返回第一个 block 需要多长时间,客户端都会立即获得文件正在下载的反馈。

您可能还想查看 GridFS对于 MongoDB 的实现,这是一个非常好的方式来获得分布式文件系统,该文件系统针对一次写入读取多种类型的文件操作进行了优化。

如果您必须自己做,那么结合这两件事将是一个好的开始。

关于python - 如何使用 Pylons 提供大文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4521123/

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