diff options
| author | Jan Friedli | 2020-09-13 16:56:02 +0200 |
|---|---|---|
| committer | Jan Friedli | 2020-09-13 16:56:02 +0200 |
| commit | f93a79346909e853a4b9f4c7626df1df9f3df79f (patch) | |
| tree | 0e1c4f8ad49e98c592971f88d01d68627f563919 /matweb/rest_api.py | |
| parent | 493626e1953b0ad79f1298e054c687aff8936aeb (diff) | |
handle not supported files in zips
Diffstat (limited to '')
| -rw-r--r-- | matweb/rest_api.py | 46 |
1 files changed, 24 insertions, 22 deletions
diff --git a/matweb/rest_api.py b/matweb/rest_api.py index d3d9d8f..ef1a55a 100644 --- a/matweb/rest_api.py +++ b/matweb/rest_api.py | |||
| @@ -46,29 +46,31 @@ class APIUpload(Resource): | |||
| 46 | if parser is None: | 46 | if parser is None: |
| 47 | current_app.logger.error('Upload - Invalid mime type %s', mime) | 47 | current_app.logger.error('Upload - Invalid mime type %s', mime) |
| 48 | abort(415, message='The type %s is not supported' % mime) | 48 | abort(415, message='The type %s is not supported' % mime) |
| 49 | 49 | try: | |
| 50 | meta = parser.get_meta() | 50 | if not parser.remove_all(): |
| 51 | if not parser.remove_all(): | 51 | raise ValueError() |
| 52 | meta = parser.get_meta() | ||
| 53 | key, secret, meta_after, output_filename = utils.cleanup(parser, filepath, | ||
| 54 | current_app.config['UPLOAD_FOLDER']) | ||
| 55 | return utils.return_file_created_response( | ||
| 56 | utils.get_file_removal_max_age_sec(), | ||
| 57 | output_filename, | ||
| 58 | mime, | ||
| 59 | key, | ||
| 60 | secret, | ||
| 61 | meta, | ||
| 62 | meta_after, | ||
| 63 | url_for( | ||
| 64 | 'api_bp.apidownload', | ||
| 65 | key=key, | ||
| 66 | secret=secret, | ||
| 67 | filename=output_filename, | ||
| 68 | _external=True | ||
| 69 | ) | ||
| 70 | ), 201 | ||
| 71 | except (ValueError, RuntimeError) as e: | ||
| 52 | current_app.logger.error('Upload - Cleaning failed with mime: %s', mime) | 72 | current_app.logger.error('Upload - Cleaning failed with mime: %s', mime) |
| 53 | abort(500, message='Unable to clean %s' % mime) | 73 | abort(400, message='Unable to clean %s' % mime) |
| 54 | |||
| 55 | key, secret, meta_after, output_filename = utils.cleanup(parser, filepath, current_app.config['UPLOAD_FOLDER']) | ||
| 56 | return utils.return_file_created_response( | ||
| 57 | utils.get_file_removal_max_age_sec(), | ||
| 58 | output_filename, | ||
| 59 | mime, | ||
| 60 | key, | ||
| 61 | secret, | ||
| 62 | meta, | ||
| 63 | meta_after, | ||
| 64 | url_for( | ||
| 65 | 'api_bp.apidownload', | ||
| 66 | key=key, | ||
| 67 | secret=secret, | ||
| 68 | filename=output_filename, | ||
| 69 | _external=True | ||
| 70 | ) | ||
| 71 | ), 201 | ||
| 72 | 74 | ||
| 73 | 75 | ||
| 74 | class APIDownload(Resource): | 76 | class APIDownload(Resource): |
