This service allows to upload a file in the configured bucket of a defined instance of[Minio](https://min.io/)(compatible with S3).
This service allows you to upload a file on the[Minio](https://min.io/)instance (compatible with S3) of your choice. The file will be stored in the bucket defined in the configuration of the service.
## How it works
...
...
@@ -10,11 +10,11 @@ This service allows to upload a file in the configured bucket of a defined insta
The entrypoint of the service is a REST API provided by a [NestJS](https://github.com/nestjs/nest) application. The service uses the [Javascript MinIO SDK](https://docs.min.io/docs/javascript-client-quickstart-guide.html) to interact with a running instance of Minio.
Before uploading the file, it makes sure that the specified bucket is created. If it is not the case, it creates it with a `public read access`.
Before uploading the file, it makes sure that the specified bucket is created. If this is not the case, it creates it with a `public read access`.
The files are classified in sub-buckets as following `/<specified-bucket-name>/<year-YYYY>/<month-MM>/`.
The files are folded in sub-buckets as following `/<specified-bucket-name>/<year-YYYY>/<month-MM>/`.
The uploaded files keep there original name but are prefixed by an md5 computed based on their content with gives the following pattern for file names: `<md5>-<original-name>`. This means that if we upload twice the exact same picture, with the same name there will be only on file stored in MinIO.
The uploaded file keep its original name but is prefixed by an md5 computed based on its content witch gives the following pattern for file names: `<md5>-<original-name>`. This means that if we upload twice the exact same file, with the same name there will be only one file stored in MinIO.