added s3 support

This commit is contained in:
onysd 2026-08-05 02:34:24 +03:00
parent 03f10b66ee
commit 45f79148c2
12 changed files with 341 additions and 40 deletions

View file

@ -242,20 +242,29 @@ TELESRV_RATING_ENABLED=true
## Storage & Media -- Where uploaded media is stored, and how the server reacts to running low on space.
# Where uploaded media (photos, documents, stickers) is physically stored.
# "localfs" writes to TELESRV_BLOB_DIR on this machine's disk. "s3" writes to
# an S3-compatible object store -- self-hosted MinIO or AWS S3 -- configured
# below. Switching only affects new uploads; existing files stay wherever
# they were written and remain readable.
TELESRV_BLOB_BACKEND=localfs
# Only used when TELESRV_BLOB_BACKEND=s3.
TELESRV_S3_ENDPOINT=
# "s3" (the default) writes to an S3-compatible object store -- out of the
# box that's the self-hosted MinIO container started by
# deploy/docker-compose.yml (see its "minio" service), pre-configured below
# to just work; point TELESRV_S3_* at AWS S3 instead if you'd rather not
# self-host it. "localfs" writes to TELESRV_BLOB_DIR on this machine's disk
# instead -- fully supported, just not the default. Switching backends only
# affects new uploads: existing files stay wherever they were written and
# remain readable/deletable as long as that backend's settings below stay
# filled in (don't blank out the old backend's config right after switching
# away from it, or its files become unreachable).
TELESRV_BLOB_BACKEND=s3
# Only used when TELESRV_BLOB_BACKEND=s3 (or after switching away from s3,
# for as long as old s3-stored files still need to stay reachable).
# Defaults below match deploy/docker-compose.yml's "minio" service exactly.
TELESRV_S3_ENDPOINT=127.0.0.1:9000
TELESRV_S3_REGION=us-east-1
TELESRV_S3_BUCKET=
TELESRV_S3_ACCESS_KEY_ID=
TELESRV_S3_SECRET_ACCESS_KEY=
TELESRV_S3_USE_SSL=true
# MinIO typically needs this on (bucket in the URL path); AWS S3 does not.
TELESRV_S3_PATH_STYLE=false
TELESRV_S3_BUCKET=owpengram-media
TELESRV_S3_ACCESS_KEY_ID=owpengram
TELESRV_S3_SECRET_ACCESS_KEY=owpengram123
# Local MinIO runs plain HTTP; set to true for AWS S3 or a MinIO behind TLS.
TELESRV_S3_USE_SSL=false
# MinIO needs this on (bucket in the URL path); AWS S3 does not.
TELESRV_S3_PATH_STYLE=true
# Reject new uploads once storage is nearly full, instead of letting the disk
# fill up. Thresholds live in the Advanced section below.
TELESRV_STORAGE_LOW_SPACE_GUARD_ENABLE=true