Я написал следующее Resource
:
from config import AWS_S3_BUCKET
from flask_api import status
from flask_restful import Resource, reqparse
from werkzeug.datastructures import FileStorage
from werkzeug.utils import secure_filename
import helpers
class FileUpload(Resource):
def post(self):
parse = reqparse.RequestParser()
parse.add_argument('user_file', type=FileStorage, location='user_file')
parse.add_argument('user_id', type=int, location='user_id')
args = parse.parse_args()
file = args['user_file']
if file:
file.filename = secure_filename(file.filename)
url = helpers.upload_file_to_s3(file, AWS_S3_BUCKET)
return {'url': url}, status.HTTP_201_CREATED
return 'Invalid file', status.HTTP_400_BAD_REQUEST
После того, как я пытаюсь загрузить свой файл в cURL с помощью этой команды:
curl -F '[email protected]' -F 'user_id=5' http://127.0.0.1:5000/files/new
В отладчике вызывается конечная точка, но все поля: user_file
и user_id
равны NoneType
.
Что я делаю не так?
P.S. Файл recovery.fstab
находится в каталоге home
.