下载时的 Flask gevent url 通过代理进行
Flask gevent when downloading url do through proxy
我有一个简单的 flask 应用程序我正在 运行 通过 gevent 服务器。
app = Flask(__name__)
def console(cmd):
p = Popen(cmd, shell=True, stdout=PIPE)
while True:
data = p.stdout.read(512)
yield data
if not data:
break
if isinstance(p.returncode, int):
if p.returncode > 0:
# return code was non zero, an error?
print 'error:', p.returncode
break
@app.route('/mp3', methods=['POST'])
def generate_large_mp3():
video_url = "url.com"
title = 'hello'
mp3 = console('command')
return Response(stream_with_context(mp3), mimetype="audio/mpeg3",
headers={"Content-Disposition": 'attachment;filename="%s.mp3"' % filename})
if __name__ == '__main__':
http_server = WSGIServer(('', 5000), app)
http_server.serve_forever()
当我的控制台功能运行时,我如何才能通过代理运行它来下载 url 而不是服务器的 ip?
已回答,
需要简单地更新 Popen 中的 env 变量
env = dict(os.environ)
env['http_proxy'] = proxies[random.randrange(0, len(proxies))]
env['https_proxy'] = proxies[random.randrange(0, len(proxies))]
我有一个简单的 flask 应用程序我正在 运行 通过 gevent 服务器。
app = Flask(__name__)
def console(cmd):
p = Popen(cmd, shell=True, stdout=PIPE)
while True:
data = p.stdout.read(512)
yield data
if not data:
break
if isinstance(p.returncode, int):
if p.returncode > 0:
# return code was non zero, an error?
print 'error:', p.returncode
break
@app.route('/mp3', methods=['POST'])
def generate_large_mp3():
video_url = "url.com"
title = 'hello'
mp3 = console('command')
return Response(stream_with_context(mp3), mimetype="audio/mpeg3",
headers={"Content-Disposition": 'attachment;filename="%s.mp3"' % filename})
if __name__ == '__main__':
http_server = WSGIServer(('', 5000), app)
http_server.serve_forever()
当我的控制台功能运行时,我如何才能通过代理运行它来下载 url 而不是服务器的 ip?
已回答,
需要简单地更新 Popen 中的 env 变量
env = dict(os.environ)
env['http_proxy'] = proxies[random.randrange(0, len(proxies))]
env['https_proxy'] = proxies[random.randrange(0, len(proxies))]