gpt4 book ai didi

python - 如何将 block 长度从上传方法传递到流媒体内容?

转载 作者:行者123 更新时间:2023-11-28 18:52:19 25 4
gpt4 key购买 nike

在我的 Flask 项目中,我使用 ftputil图书馆。在其中一个应用程序部分中,我使用了内容流,如 Flask documentation 中所述。 :

@app.route('/section')
def section():
def generate():
ftp.upload(source, target, "b", callback)
yield 'completed'
return Response(generate())

示例中的函数 generate 使文件上传到 FTP 服务器,如 ftputil documentation 中所述。 .

upload 方法中使用的回调函数 [callback(chunk)] 对每个上传的文件 block 执行。

是否有可能将 len(chunk) 从回调输出到流?也非常欢迎任何肮脏的黑客攻击。

感谢您的帮助!

最佳答案

我假设 ftp.upload() 同步运行,这是有道理的。我还没有测试下面的代码,所以它可能充满了错误,但这个想法应该可行。

import threading, Queue

@app.route('/section')
def section():
q = Queue.Queue()
def callback(chunk):
q.put(len(chunk))
t = threading.Thread(target=lambda: ftp.upload(source, target, "b", callback) or q.put(None))
t.setDaemon(True)
t.start()
def generate():
while 1:
l = q.get()
if l is None:
return
yield unicode(l) + '\n'
return Response(generate())

关于python - 如何将 block 长度从上传方法传递到流媒体内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10550424/

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