Opening Settings
Access the settings window using the keyboard shortcut: ⌘ + , Or select Settings from the app menu.R2 Credentials Setup
r2Vault requires four essential credentials to connect to your Cloudflare R2 bucket:Account ID
Your Cloudflare account identifier. Find this in the R2 dashboard URL or your Cloudflare account settings.
Access Key ID
The public part of your R2 API token. Generate this from R2 > Manage R2 API Tokens in your Cloudflare dashboard.
Secret Access Key
The private part of your R2 API token. This is shown only once when you create the token — store it securely.
Test Connection
After entering your credentials, click Test Connection to verify:- Account ID and bucket name are correct
- Access keys have proper permissions
- Network connectivity to Cloudflare R2
✓ Connected to R2
Custom Domain (Optional)
If you’ve configured a custom domain for your R2 bucket, enter it in the Custom Domain field:Include the full URL with
https:// scheme. This domain will be used to generate public URLs for uploaded files instead of the default R2 endpoint.How Custom Domains Work
With a custom domain configured:- Without custom domain:
https://<account>.r2.cloudflarestorage.com/<bucket>/<file> - With custom domain:
https://cdn.example.com/<file>
- Auto-copying URLs to clipboard after upload
- Generating presigned download URLs
- Displaying URLs in the upload history
Multiple Bucket Support
r2Vault can manage multiple R2 buckets from the same or different Cloudflare accounts.Adding a New Bucket
- Open Settings (
⌘,) - Select New Connection from the Bucket dropdown
- Enter credentials for the new bucket
- Click Save
Switching Between Buckets
From the Settings window:Deleting a Bucket Connection
- Select the bucket from the dropdown
- Click Delete
- Confirm the action
Credential Storage
All credentials are stored securely in the macOS Keychain using these conventions:- Service:
com.r2vault.credentials - Account: The bucket’s unique UUID identifier
- Data: Encrypted JSON containing account ID, access keys, bucket name, and custom domain
KeychainService.swift (source: Fiaxe/Services/KeychainService.swift)