/SpringBootMinio

Spring Boot with the usage of Minio running on Docker , AOP and Exception Handling

Primary LanguageJava

Spring Boot Minio

Main Information

📖 Information

  • MinIO is the only object storage suite available on every public cloud with supporting high-performance.
  • It is API compatible with Amazon S3 cloud storage service
  • It can handle unstructured data such as photos, videos, log files, backups, and container images with (currently) the maximum supported object size of 5TB.
  • Here is the explanation of the project
    • Implement the process of uploading file to Minio
    • Implement the process of downloading file from Minio
    • Implement the process of adding bucketname to Minio
    • Implement the process of listing all file from bucketname in Minio
    • Implement the process of listing all bucketnames in Minio
    • Implement the process of deleting bucketname from Minio
    • Implement the process of deleting file list from bucketname from Minio
    • Implement the process of deleting file from bucketname from Minio

🔨 Run the App

1 ) Install Docker Desktop. Here is the installation link : https://docs.docker.com/docker-for-windows/install/

2 ) Open Terminal under resources folder to run Minio on Docker Container

    docker-compose up -d

3 ) Open Minio in the Browser

    127.0.0.1:9001

4 ) Enter username and password

    username : minioadmin
    password : minioadmin

5 ) Explore Rest APIs

Method Url Description Valid Request Body Valid Request Params
POST /upload Upload file to Minio Info
POST /addBucket/{bucketName} Add BucketName in Minio Info
GET /show/{bucketName} Show defined Bucketname by its name in Minio Info
GET /showBucketName Show all BucketNames in Minio Info
DELETE /removeBucket/{bucketName} Delete defined bucketname from Minio Info
DELETE /removeObject/{bucketName}/{objectName} Delete defined object in defined bucketname from Minio Info
DELETE /removeListObject/{bucketName} Remove object list in defined bucketname from Minio Info
GET /showListObjectNameAndDownloadUrl/{bucketName} List object names and its download url in defined bucketname of Minio Info
GET /download/{bucketName}/{objectName} Download object in BucketName from Minio Info

Used Dependencies

  • Spring Boot Web
  • Minio
  • Lombok
  • AspectJ
  • Apache Commons Lang
  • Swagger

Swagger

Access : http://localhost:8085/swagger-ui.html

Valid Request Body

    file : Uploaded File
    bucketname : commons
   [
       "de43ab54e89f4879a2baf87df1570f56.PNG",
       "f107737d21534f42a72dcf009a64a07d.PNG"
   ]

Valid Request Params

   http://localhost:8085/minio/addBucket/test1
   http://localhost:8085/minio/show/commons
   http://localhost:8085/minio/showBucketName
   http://localhost:8085/minio/removeBucket/test1
   http://localhost:8085/minio/removeBucket/test1
   http://localhost:8085/minio/download/commons/ad94ff2e9b404772a1f9b98f4e11b4f9.PNG
   http://localhost:8085/minio/removeObject/commons/a2d203e188f94ccb8393e688deaf216a.jpg

Screenshots

Click here to show the screenshots of project

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Figure 17

Figure 18

Figure 19

Figure 20