web-dev-qa-db-ja.com

PythonファイルをアップロードおよびダウンロードするためのrestplusAPI

python flask_restplus 投稿を取得し、ファイルを取得してサーバーにプッシュするメソッドを取得する正しい方法は何ですか?

マーシャリング を使用する必要がありますか?

参照: https://philsturgeon.uk/api/2016/01/04/http-rest-api-file-uploads/

この回答は一般的な情報を提供しますが、python> flask> restplusコンテキストでは提供しません: REST APIファイルのアップロード

10
user3313834

まず、パーサーを構成する必要があります

# parsers.py
import werkzeug
from flask_restplus import reqparse

file_upload = reqparse.RequestParser()
file_upload.add_argument('xls_file',  
                         type=werkzeug.datastructures.FileStorage, 
                         location='files', 
                         required=True, 
                         help='XLS file')

次に、API名前空間に新しいリソースを追加します

# api.py
import …
import parsers

@api.route('/upload/')
class my_file_upload(Resource):
    @api.expect(parsers.file_upload)
    def post(self):
        args = parsers.file_upload.parse_args()
        if args['xls_file'].mimetype == 'application/xls':
            destination = os.path.join(current_app.config.get('DATA_FOLDER'), 'medias/')
            if not os.path.exists(destination):
                os.makedirs(destination)
            xls_file = '%s%s' % (destination, 'custom_file_name.xls')
            args['xls_file'].save(xls_file)
        else:
            abort(404)
        return {'status': 'Done'}

これがお役に立てば幸いです。

11
k3z