# utils/hash_generator.py from jose import jwt from datetime import datetime, timedelta from datetime import date import hashlib # Função que gera o hash baseado na data atual def generate_storage_hash() -> str: """ Gera um hash SHA-256 baseado na data atual no formato YYYYMMDD. Útil, por exemplo, para criar chaves ou nomes únicos em arquivos estáticos. Retorna: str: Hash SHA-256 em formato hexadecimal. """ # Obtém a data atual (somente ano, mês e dia) today = date.today() # Formata a data como string "YYYYMMDD" storage_date = today.strftime("%Y%m%d") # Cria o objeto de hash SHA-256 h = hashlib.sha256() # Atualiza o hash com o texto codificado em UTF-8 h.update(storage_date.encode("utf-8")) # Retorna o hash em formato hexadecimal return h.hexdigest() # Função que gera o token temporário para acesso ao documento # def generate_temporary_token( # expires_minutes: int, # secret_key: str, # algorithm: str, # ) -> str: # """Gera um token JWT válido por poucos minutos.""" # expire = datetime.utcnow() + timedelta(minutes=expires_minutes) # payload = { # "exp": expire, # } # return jwt.encode(payload, secret_key, algorithm=algorithm) def generate_temporary_token( file_id: str, file_path: str, expires_minutes: int, secret_key: str, algorithm: str, ) -> str: """Gera um token JWT válido por poucos minutos.""" expire = datetime.utcnow() + timedelta(minutes=expires_minutes) payload = { "sub": file_id, "filename": file_path, # caminho relativo completo "exp": expire, } return jwt.encode(payload, secret_key, algorithm=algorithm)