2016-03-01 36 views
0

我有一個簡單的應用程序通過gevent服務器運行。當通過代理下載url時,通過gevent服務器,我有一個簡單的應用程序通過代理服務器下載URL

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() 

我如何將能夠使它所以當我的我的控制檯功能運行,它通過代理運行下載的網址,而不是服務器的IP呢?

回答

0

回答了這個問題,

所需只需在POPEN

env = dict(os.environ) 
env['http_proxy'] = proxies[random.randrange(0, len(proxies))] 
env['https_proxy'] = proxies[random.randrange(0, len(proxies))] 
更新環境變量