Skip to main content

RSE standard file storage helpers with Vault-backed configuration and GCS support.

Project description

rse-files-core

RSE standard file storage package for Python APIs.

Features:

  • GCS upload/download helpers
  • storage configuration from local environment or HashiCorp Vault
  • filename and storage key sanitization
  • SHA-256 checksums
  • PDF/content-type/max-size validation
  • standardized metadata and exceptions

Usage

from rse_files import (
    build_storage_key,
    create_file_storage,
    validate_pdf_bytes,
)

storage = create_file_storage()

validate_pdf_bytes(content)

storage_key = build_storage_key(
    namespace="nc",
    owner_type="action-plan-evidence",
    owner_id=123,
    filename="evidencia.pdf",
)

metadata = storage.upload_bytes(
    content=content,
    storage_key=storage_key,
    content_type="application/pdf",
    filename="evidencia.pdf",
)

Local Configuration

When RSE_ENV=local, the package reads regular environment variables:

RSE_FILES_STORAGE_PROVIDER=gcs
RSE_FILES_BUCKET=my-bucket
RSE_FILES_PREFIX=uploads

Vault

When RSE_ENV is stg or prd, the package reads Vault using:

  • RSE_ENV as the KV v2 mount point
  • RSE_VAULT_HOST as the Vault URL
  • RSE_VAULT_TOKEN as the Vault token
  • RSE_FILES_VAULT_PATH as the secret path, defaulting to shared

Expected keys:

rse_files_storage_provider
rse_files_bucket
rse_files_prefix

Fallback keys are also accepted for compatibility:

document_storage_provider
gcs_documents_bucket
gcs_documents_prefix

Example:

stg/shared.rse_files_storage_provider = gcs
stg/shared.rse_files_bucket = rse-documents-stg
stg/shared.rse_files_prefix = files

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rse_files_core-0.1.0.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rse_files_core-0.1.0-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file rse_files_core-0.1.0.tar.gz.

File metadata

  • Download URL: rse_files_core-0.1.0.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for rse_files_core-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a46bfd772ca0783e907c349a5eb027a0c94b71b13bd7fbf9899a0c6504c554f8
MD5 38689e1652f0c694420c339cda5620de
BLAKE2b-256 828dd7fbf361668c0baa9c1e6672475cf73c557610f073b9ed5eb5670c711ce6

See more details on using hashes here.

File details

Details for the file rse_files_core-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: rse_files_core-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for rse_files_core-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b37724adb3b48d29d65f63b079261cb78430c7a3f2512a1b26527c0713dd032a
MD5 4c41edfc69a61985bfb4fdc15c09023a
BLAKE2b-256 494bd096a547bdd54bb5bff5a7d80634c30589f27ecf1a04d55484b77ad3253a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page