| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 
							- from flask import Response
 
- from flask_restful import Resource, reqparse
 
- from werkzeug.exceptions import Forbidden, NotFound
 
- from controllers.files import api
 
- from core.tools.tool_file_manager import ToolFileManager
 
- from libs.exception import BaseHTTPException
 
- class ToolFilePreviewApi(Resource):
 
-     def get(self, file_id, extension):
 
-         file_id = str(file_id)
 
-         parser = reqparse.RequestParser()
 
-         parser.add_argument('timestamp', type=str, required=True, location='args')
 
-         parser.add_argument('nonce', type=str, required=True, location='args')
 
-         parser.add_argument('sign', type=str, required=True, location='args')
 
-         args = parser.parse_args()
 
-         if not ToolFileManager.verify_file(file_id=file_id,
 
-                                             timestamp=args['timestamp'],
 
-                                             nonce=args['nonce'],
 
-                                             sign=args['sign'],
 
-         ):
 
-             raise Forbidden('Invalid request.')
 
-         
 
-         try:
 
-             result = ToolFileManager.get_file_generator_by_tool_file_id(
 
-                 file_id,
 
-             )
 
-             if not result:
 
-                 raise NotFound('file is not found')
 
-             
 
-             generator, mimetype = result
 
-         except Exception:
 
-             raise UnsupportedFileTypeError()
 
-         return Response(generator, mimetype=mimetype)
 
- api.add_resource(ToolFilePreviewApi, '/files/tools/<uuid:file_id>.<string:extension>')
 
- class UnsupportedFileTypeError(BaseHTTPException):
 
-     error_code = 'unsupported_file_type'
 
-     description = "File type not allowed."
 
-     code = 415
 
 
  |