Я хочу создать API, который может принимать видеофайл, используя метод POST, а метод POST вернет имя файла zip после выполнения обработки на видео. Используя это имя, API должен вернуть zip-файл, используя метод GET.
Я не могу загрузить файл с помощью запроса GET из пользовательского интерфейса Swagger Flask-Restplus.
Я попробовал какое-то решение из интернета, но не могу его решить. Я попытался использовать @api.representation('application/zip')
, который может изменить тип содержимого ответа, но также не может загрузить его.
upload_parser = api.parser()
upload_parser.add_argument('file', location='files', type=FileStorage, required=True)
download_parser = api.parser()
download_parser.add_argument('filename', type=str, required=True)
....
@api.route('/upload')
class Upload(Resource):
@api.expect(upload_parser)
def post(self):
args = upload_parser.parse_args()
uploaded_file = args['file'] # This is FileStorage instance
uploaded_file.save('F:/IT Sem-7/Internship/demo/uploaded_file.mp4')
zipObj = ZipFile('uploaded_file.zip', 'w')
zipObj.write('uploaded_file.mp4')
zipObj.close()
return {'Output': 'file uploaded successfully', 'filename': 'uploaded_file.zip'}, 201
@api.route('/download')
@api.representation('application/zip')
class Download(Resource):
@api.expect(download_parser)
def get(self):
args = upload_parser.parse_args()
return send_file('F:/IT Sem-7/Internship/demo/'+args['filename'],
mimetype='application/zip', attachment_filename=args['filename'],
as_attachment=True)
#return send_from_directory('F:/IT Sem-7/Internship/demo/',
args['filename'])
Ошибка из Swagger UI Swagger UI Error Image