You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
S3-compatible storage: besides Azure Blob Storage, the media can live on Amazon S3, Cloudflare R2, Backblaze B2, DigitalOcean Spaces, Wasabi, Google Cloud Storage (HMAC keys) or any server that speaks the S3 API, such as MinIO. Pick the service and the plugin fills in the endpoint and the public URL; the Public URL field is also where a CDN or a custom domain goes. Test Connection proves the keys can write to the bucket and that browsers can read what is stored, and refuses a private bucket. Large files go up in 5 MiB parts; the secret access key is encrypted like the Azure key. "Force HTTPS for cloud storage URLs" leaves alone a Public URL that is plain http on purpose, such as a server on a private network.
Only a configuration that passed Test Connection can be saved, now checked on the server too: a key other than the tested one is refused.
The admin is one menu with a screen per submenu (Overview, Cloud Provider, Sync & Offloading, Settings, Status) and tabs only where a screen needs a second level: Connection and Credentials; Sync, Offloading and Disconnect; Transfers, Serving and Logging; Health and System. Every screen is headed "DiluxOne Offload | Screen", shows the site's state at a glance in a column beside the content, and the open tab follows your admin colour scheme. Old links to the tabs keep working.
Status › Health shows the connection health the plugin already recorded (status, last check, last success, consecutive failures) and how many files the tracking table knows, with a "Check now" button that asks the provider right away; Status › System shows the free disk.
The screens say what is where: Sync shows how many files are synced, how many still have a local copy, how many live in the cloud only, the last upload made through the site and what the last scan left out (and why); Offloading shows where the media is served from, where the bytes are and since when; Disconnect shows what it would bring back and whether the disk has room; Cloud Provider shows since when it is connected.
Files uploaded through the site while offloading is on are now counted like the ones the initial sync moved, and deleting the local copies no longer empties the plugin's tracking table, so those figures stay right on the sites that use offloading. A very long list of failed files shows its first 50 rows and says how many there are.
The Overview shows three state cards (the fourth repeated them); Cloud Provider › Connection offers "Rotate the key" and "Delete Cloud Provider" as buttons; every button with an icon has the icon and its label on one line, and the sync window's buttons read at their size.
The "Upload Timeout" setting is now "Transfer Timeout" and governs every upload request: the single upload, each block and its commit, and the sync's parallel transfers. Before, block commits waited a fixed 300 seconds whatever the setting said. Downloads keep waiting at least the 300 seconds they always had; a higher setting raises that too.
A transfer that runs past the timeout is reported as such: the connection-health banner says "Cloud Transfer Timed Out" and links to Settings, instead of showing a made-up error code.
With debug logging on, every successful upload through the stream wrapper writes one line (path and size).
The suites now prove what each setting does, not only that it is saved.
What was merged since 1.0.0
✨ Features
admin three state cards, provider actions as buttons, icons centred on every button (#17)
providers S3-compatible storage, from Amazon S3 and R2 to MinIO, with presets per service (#15)
admin the screens show what is where: counts, timestamps, last upload, skipped, Check now (#12)
admin one menu, a screen per submenu, tabs only where needed, a rail beside each (#11)
adopt DiluxOne/.github v2, stamp development builds, release as a deployment (#7)
🐛 Fixes
providers Google copies, aborted multipart commits; R2 and Google in the real suite (#16)
admin the hostname media is served from fits its card, smaller and wrapped at its dots (#14)
📝 Documentation
plans version numbers and step names agree with the roadmap; readme locales in architecture (#2)
✅ Tests
admin the figures, the skipped list, the timestamps and Check now, end to end (#13)
settings each setting proves what it does; the transfer timeout governs every transfer (#4)
👷 CI
release the development build is the pre-release in Releases; bug reports name the build (#10)
release one page for how a change becomes a version; the readme is the switch; dry-run off (#9)
release the caller grants pull-requests read, which the version job asks for (#8)
security the environment's secrets reach the shared release and check jobs (#6)
security explicit secrets for the shared workflows; the release pinned, reading its environment (#5)
real the real Azure suite runs on a pull request only when code changed (#3)