
Updated
The old recommendation needs an update
The public minio/minio repository is archived and read-only as checked in September 2026. An old tutorial with a container tag is therefore not enough justification for a new production installation. Review the current distribution, maintenance and support path before choosing it.
An existing installation does not need a blind overnight migration. First identify the running version, data volume, exposed endpoints and recovery procedure. Consult the release history and the support arrangement that applies to your deployment. Avoid equating an archived repository with the status of every commercial product under the same name.
What belongs in object storage?
Use a database for records and relationships. Object storage holds files such as images, documents and exports. A database record can store an object key while the storage service holds the bytes. Those two parts must agree during deletion, backup and recovery.
A public image bucket and a private document bucket have different access requirements. Keep write credentials on the server, scope them to the required operations and avoid exposing an administrative console simply because it is convenient during development.
S3 compatibility is a test plan, not a promise
Changing an endpoint is only the start of a migration. Test the operations your application actually uses. Amazon's S3 API reference is a reference for behaviour, not proof that another implementation supports every feature.
| Application operation | What to verify |
|---|---|
| Upload | Limits, content type, metadata and multipart behaviour |
| Download | Private access, signed URL expiry and caching |
| List and delete | Pagination, object prefixes and error handling |
| Browser access | CORS rules and allowed origins |
| Recovery | File contents, object counts and database references |
Do not use an ETag as a universal file checksum. Its meaning depends on the upload and encryption path. Choose an integrity check that is valid for both source and destination.
How I would plan a move
Copy a representative sample to the candidate destination and run the application against it. Verify private and public objects, large uploads and failures. Then plan the full copy, any write pause or change capture, and the rollback window. Keep the source until the destination and backups have been verified.
Storage decisions are part of operating an application, not only choosing a container. Wegweiser Leben includes storage alongside its Rust backend. For a new system, I would include the maintenance and restore plan in the web application scope.