mirror of
				https://github.com/langgenius/dify.git
				synced 2025-11-04 12:53:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from flask import Response, request
 | 
						|
from flask_restful import Resource
 | 
						|
from werkzeug.exceptions import NotFound
 | 
						|
 | 
						|
import services
 | 
						|
from controllers.files import api
 | 
						|
from controllers.files.error import UnsupportedFileTypeError
 | 
						|
from services.account_service import TenantService
 | 
						|
from services.file_service import FileService
 | 
						|
 | 
						|
 | 
						|
class ImagePreviewApi(Resource):
 | 
						|
    def get(self, file_id):
 | 
						|
        file_id = str(file_id)
 | 
						|
 | 
						|
        timestamp = request.args.get("timestamp")
 | 
						|
        nonce = request.args.get("nonce")
 | 
						|
        sign = request.args.get("sign")
 | 
						|
 | 
						|
        if not timestamp or not nonce or not sign:
 | 
						|
            return {"content": "Invalid request."}, 400
 | 
						|
 | 
						|
        try:
 | 
						|
            generator, mimetype = FileService.get_image_preview(file_id, timestamp, nonce, sign)
 | 
						|
        except services.errors.file.UnsupportedFileTypeError:
 | 
						|
            raise UnsupportedFileTypeError()
 | 
						|
 | 
						|
        return Response(generator, mimetype=mimetype)
 | 
						|
 | 
						|
 | 
						|
class WorkspaceWebappLogoApi(Resource):
 | 
						|
    def get(self, workspace_id):
 | 
						|
        workspace_id = str(workspace_id)
 | 
						|
 | 
						|
        custom_config = TenantService.get_custom_config(workspace_id)
 | 
						|
        webapp_logo_file_id = custom_config.get("replace_webapp_logo") if custom_config is not None else None
 | 
						|
 | 
						|
        if not webapp_logo_file_id:
 | 
						|
            raise NotFound("webapp logo is not found")
 | 
						|
 | 
						|
        try:
 | 
						|
            generator, mimetype = FileService.get_public_image_preview(
 | 
						|
                webapp_logo_file_id,
 | 
						|
            )
 | 
						|
        except services.errors.file.UnsupportedFileTypeError:
 | 
						|
            raise UnsupportedFileTypeError()
 | 
						|
 | 
						|
        return Response(generator, mimetype=mimetype)
 | 
						|
 | 
						|
 | 
						|
api.add_resource(ImagePreviewApi, "/files/<uuid:file_id>/image-preview")
 | 
						|
api.add_resource(WorkspaceWebappLogoApi, "/files/workspaces/<uuid:workspace_id>/webapp-logo")
 |