Feature: S3-compatible storage backend #16

Open
opened 2026-06-02 20:29:30 +00:00 by jmiller · 1 comment
Owner

Add S3-compatible remote storage (AWS S3, Wasabi, Backblaze B2, MinIO).

Description

Many hosting setups use S3-compatible storage for offsite backups. Add an S3 uploader that works with any S3-compatible API.

Requirements

  • New RemoteUploaderInterface implementation: S3Uploader
  • Profile fields: endpoint URL, access key, secret key, bucket, path prefix, region
  • Multipart upload for large files
  • No SDK dependency (use cURL with AWS Signature V4)
  • Support custom endpoints (Wasabi, B2, MinIO)
  • Connection test method
Add S3-compatible remote storage (AWS S3, Wasabi, Backblaze B2, MinIO). ## Description Many hosting setups use S3-compatible storage for offsite backups. Add an S3 uploader that works with any S3-compatible API. ## Requirements - [ ] New RemoteUploaderInterface implementation: S3Uploader - [ ] Profile fields: endpoint URL, access key, secret key, bucket, path prefix, region - [ ] Multipart upload for large files - [ ] No SDK dependency (use cURL with AWS Signature V4) - [ ] Support custom endpoints (Wasabi, B2, MinIO) - [ ] Connection test method
jmiller added the type: featurepriority: mediumcomponent: remotestatus: ready labels 2026-06-02 20:29:30 +00:00
Author
Owner

Testing Plan

TC-F3.1: AWS S3 upload

  1. Configure with AWS S3 credentials
  2. Run backup
  3. Verify file appears in S3 bucket

TC-F3.2: Custom endpoint (Wasabi/MinIO)

  1. Configure with custom endpoint URL
  2. Run backup
  3. Verify upload to custom S3-compatible service

TC-F3.3: Large file multipart

  1. Create backup > 100 MB
  2. Upload to S3
  3. Verify multipart upload completes

TC-F3.4: Connection test

  1. Run testConnection()
  2. Verify bucket is accessible

TC-F3.5: Invalid credentials

  1. Use wrong access key
  2. Verify clear error message
  3. Verify local backup preserved
## Testing Plan **TC-F3.1: AWS S3 upload** 1. Configure with AWS S3 credentials 2. Run backup 3. Verify file appears in S3 bucket **TC-F3.2: Custom endpoint (Wasabi/MinIO)** 1. Configure with custom endpoint URL 2. Run backup 3. Verify upload to custom S3-compatible service **TC-F3.3: Large file multipart** 1. Create backup > 100 MB 2. Upload to S3 3. Verify multipart upload completes **TC-F3.4: Connection test** 1. Run testConnection() 2. Verify bucket is accessible **TC-F3.5: Invalid credentials** 1. Use wrong access key 2. Verify clear error message 3. Verify local backup preserved
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoJoomBackup#16