|
@@ -16,11 +16,8 @@ from typing import TYPE_CHECKING, Any, Awaitable, Callable, Generator, Optional,
|
|
|
|
|
|
from fastapi import Request
|
|
from fastapi import Request
|
|
from fastapi.responses import StreamingResponse
|
|
from fastapi.responses import StreamingResponse
|
|
-from starlette.middleware import Middleware
|
|
|
|
-from starlette.middleware.sessions import SessionMiddleware
|
|
|
|
|
|
|
|
from . import background_tasks, globals # pylint: disable=redefined-builtin
|
|
from . import background_tasks, globals # pylint: disable=redefined-builtin
|
|
-from .storage import RequestTrackingMiddleware
|
|
|
|
|
|
|
|
if TYPE_CHECKING:
|
|
if TYPE_CHECKING:
|
|
from .client import Client
|
|
from .client import Client
|
|
@@ -125,16 +122,6 @@ def schedule_browser(host: str, port: int) -> Tuple[threading.Thread, threading.
|
|
return thread, cancel
|
|
return thread, cancel
|
|
|
|
|
|
|
|
|
|
-def set_storage_secret(storage_secret: Optional[str] = None) -> None:
|
|
|
|
- """Set storage_secret and add request tracking middleware."""
|
|
|
|
- if any(m.cls == SessionMiddleware for m in globals.app.user_middleware):
|
|
|
|
- # NOTE not using "add_middleware" because it would be the wrong order
|
|
|
|
- globals.app.user_middleware.append(Middleware(RequestTrackingMiddleware))
|
|
|
|
- elif storage_secret is not None:
|
|
|
|
- globals.app.add_middleware(RequestTrackingMiddleware)
|
|
|
|
- globals.app.add_middleware(SessionMiddleware, secret_key=storage_secret)
|
|
|
|
-
|
|
|
|
-
|
|
|
|
def get_streaming_response(file: Path, request: Request) -> StreamingResponse:
|
|
def get_streaming_response(file: Path, request: Request) -> StreamingResponse:
|
|
"""Get a StreamingResponse for the given file and request."""
|
|
"""Get a StreamingResponse for the given file and request."""
|
|
file_size = file.stat().st_size
|
|
file_size = file.stat().st_size
|