[Feature] Storage Driver Abstraction (S3-Compatible & WebDAV / Nextcloud) #8
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Depends on
#9 [Feature] Full System Backup Orchestration, Snapshot Engine & Disaster Recovery
JackPrince/GoBDLogBook
Reference
JackPrince/GoBDLogBook#8
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
To guarantee data sovereignty, GDPR compliance, and European digital independence (mitigating dependency on US hyperscalers), the application requires an extensible storage abstraction layer. Beyond the local filesystem, the system must natively support S3-compatible open-source object stores (such as SeaweedFS, Garage, Ceph RGW, or self-hosted MinIO), European IaaS providers (e.g., Hetzner Object Storage/Storage Box, Wasabi EU), and WebDAV (Nextcloud / ownCloud).
Context & Compliance
Requirements
1. Unified Storage Abstraction Layer
put(path, contents, options)get(path)/readStream(path)delete(path)exists(path)temporaryUrl(path, expiration)2. S3-Compatible Driver (Self-Hosted FOSS & Managed EU Providers)
S3_ENDPOINT(e.g.,http://garage:3900orhttps://fsn1.your-objectstorage.com)S3_KEYS3_SECRETS3_BUCKETS3_REGION(configurable with a sane default likeeu-central-1orgarage)S3_USE_PATH_STYLE_ENDPOINT(boolean, defaults totruefor self-hosted compatibility)3. WebDAV / Nextcloud Driver
WEBDAV_BASE_URI,WEBDAV_USER,WEBDAV_PASSWORD/ app token).GoBDLogBook/receipts/YYYY/MM/).4. Disk Configuration & Fallback
local,s3,nextcloud).STORAGE_DISK=s3).Definition of Done (DoD)
.env.exampleand repository documentation.