Files
baiyue-logistics-chat/logistics_chat/routes/files.py
T

29 lines
858 B
Python

"""HTTP adapters for files; business logic lives in services."""
from flask import Blueprint, abort, request, send_from_directory
from .. import file_service, visitor_service
from ..config import get_setting
bp = Blueprint('files', __name__)
@bp.route('/api/upload', methods=['POST'])
def upload_file():
return file_service.upload_file(request.files)
@bp.route('/uploads/<path:name>')
def uploaded_file(name):
if not visitor_service.owns_upload(name):
abort(404)
response = send_from_directory(get_setting('UPLOAD_DIR'), name)
response.headers['Cache-Control'] = 'private, no-store'
return response
@bp.route('/api/staff/uploads/<path:name>')
def staff_uploaded_file(name):
response = send_from_directory(get_setting('UPLOAD_DIR'), name)
response.headers['Cache-Control'] = 'private, no-store'
return response