English
S3 / MinIO
Sync your diary via S3-compatible object storage — suitable for self-hosted MinIO, Cloudflare R2, Alibaba Cloud OSS (S3-compatible mode), and similar.
Preparation
Using MinIO as an example:
- Deploy or subscribe to an S3-compatible storage service.
- Create a bucket, for example
moodiary. - Create an Access Key / Secret Key pair for it, and grant read/write on that bucket.
Configure in Moodiary
Go to Settings → Services → S3 Sync:
| Field | Description | Example |
|---|---|---|
| Endpoint | Service address (without bucket) | https://s3.example.com |
| Bucket | Bucket name | moodiary |
| Region | Region; can be left blank for some services | us-east-1 |
| Access Key | Access key ID | |
| Secret Key | Secret access key | |
| Use SSL | Whether to use HTTPS | On by default |
Least privilege
Create a dedicated key for Moodiary with read/write limited to the target bucket only — don't hand an entire storage account's control to a phone.
Recommendations
- Enable Use SSL unless you're on a fully isolated internal network.
- Pair it with end-to-end encryption so the storage provider can't read your content.
- For services like Cloudflare R2, the endpoint needs your account-specific prefix — use the value shown in the provider's console.
FAQ
- Signature error / 403: check that the Access Key and Secret Key are a matching pair, haven't been revoked, and that the bucket name is spelled correctly.
- Region mismatch: some services are region-sensitive; enter the region shown in the provider's console. For local MinIO deployments,
us-east-1is typical.