从Web下载文件到烧瓶服务器

时间:2019-10-04 19:46:32

标签: python file flask download

我的flask应用程序应该从json对象发布的URL中下载文件。 应下载文件以进行进一步处理。我没有收到错误消息。很多教程都是关于用户如何上传文件的,但这不是我的情况。有人可以帮忙吗?

import os


from flask import Flask, request, jsonify
import urllib.request as web

app = Flask(__name__)
download_folder=os.path.join(app.instance_path,'downloads')
app.config['DOWNLOAD_FOLDER'] = download_folder


@app.route('/syncaudio', methods=['POST'])
def syncaudio():
    files = request.get_json(force=True)

    for file_url in files['syncFileUrls']:
        local_file = os.path.join(app.config['DOWNLOAD_FOLDER'], file_url.rsplit('/')[-1])
        web.urlretrieve(file_url, local_file)


if __name__ == '__main__':
    app.run(debug=True)

2 个答案:

答案 0 :(得分:0)

urlretrieve(file_url,local_file)是正确的实现方式,但Flask并没有特定的内容。

我建议您尝试使用Python解释器,看看是否可行:

>>> import urllib.request
>>> urllib.request.urlretrieve('http://some/url', '/some/file/location.txt')

如果可行,这意味着您的代码将永远不会执行。

您可能需要打印files的值以查看列表是否不为空。

答案 1 :(得分:0)

我找到了解决方案!

要从Web下载到烧瓶服务器,我不需要创建这样的文件夹:

download_folder=os.path.join(app.instance_path,'downloads') app.config['DOWNLOAD_FOLDER'] = download_folder

我只需要通过以下方法创建一个下载文件夹:

os.makedirs('downloads')

真的很简单:)