fix: compressão real p/ stream DCTDecode + auth c/ chave vazia
- Substitui xobj._data por page.images[].replace() em compress.py e pdfa.py - Adiciona compress_with_stats() com feedback honesto na UI - Trata PDFTOOLKIT_API_KEY vazia como modo dev (auth desabilitado) - Atualiza engine.py e app.py para exibir redução real ou 'já otimizado'
This commit is contained in:
18
core/auth.py
18
core/auth.py
@@ -2,8 +2,8 @@
|
||||
Autenticação via API Key para a API REST.
|
||||
|
||||
A chave é lida da variável de ambiente PDFTOOLKIT_API_KEY.
|
||||
Se a variável não estiver definida, a autenticação fica desabilitada
|
||||
(útil para desenvolvimento local).
|
||||
Se a variável não estiver definida **ou estiver vazia**, a
|
||||
autenticação fica desabilitada (útil para desenvolvimento local).
|
||||
|
||||
Uso:
|
||||
export PDFTOOLKIT_API_KEY="sua-chave-secreta-aqui"
|
||||
@@ -15,8 +15,9 @@ from fastapi.security import APIKeyHeader
|
||||
|
||||
API_KEY_ENV = "PDFTOOLKIT_API_KEY"
|
||||
|
||||
# Lê a chave do ambiente (None se não configurada)
|
||||
_API_KEY = os.environ.get(API_KEY_ENV, None)
|
||||
# Lê a chave do ambiente (None se não configurada ou vazia)
|
||||
_API_KEY_CANDIDATE = os.environ.get(API_KEY_ENV, None)
|
||||
_API_KEY = _API_KEY_CANDIDATE if _API_KEY_CANDIDATE else None
|
||||
|
||||
# Schema de header: X-API-Key
|
||||
api_key_header = APIKeyHeader(name="X-API-Key", auto_error=False)
|
||||
@@ -26,11 +27,12 @@ def verify_api_key(api_key: str = Security(api_key_header)) -> str:
|
||||
"""
|
||||
Dependência FastAPI que valida a API Key.
|
||||
|
||||
- Se PDFTOOLKIT_API_KEY não foi definida no ambiente → permite acesso livre
|
||||
(modo desenvolvimento).
|
||||
- Se foi definida → exige que o header X-API-Key corresponda exatamente.
|
||||
- Se PDFTOOLKIT_API_KEY não foi definida ou está vazia → permite
|
||||
acesso livre (modo desenvolvimento).
|
||||
- Se foi definida → exige que o header X-API-Key corresponda
|
||||
exatamente.
|
||||
|
||||
Retorna a própria chave se válida, ou levanta 401.
|
||||
Retorna a própria chave se válida, ou levanta 401/403.
|
||||
"""
|
||||
# Modo desenvolvimento: sem chave configurada
|
||||
if _API_KEY is None:
|
||||
|
||||
Reference in New Issue
Block a user