This is the 11th day of my participation in the August Wenwen Challenge.More challenges in August

preface

MinIO is a popular open source object storage server that is perfectly compatible with Amazon’s S3 protocol and has very friendly support for K8s, designed for cloud-native workloads such as AI. From building high-performance cloud native data machine learning, big data analytics, to massive storage infrastructure, MinIO can provide data workloads. According to statistics, in mainland China, many enterprises, such as Alibaba, Tencent, Baidu, China Unicom, Huawei, China Mobile and more than 9000 enterprises, are also using MinIO products.

A brief introduction to MinIO

There must be a reason MinIO is so popular. So, what are the specific reasons? Let’s take a look.

  1. High performance. MinIO is the world’s leading object storage service pioneer with millions of users worldwide. On standard hardware, read/write speeds are up to 183 GB/SEC and 171 GB/SEC.

  2. Scalability. MinIO borrows from the Web zoomer and brings a simple zooming model to object storage. When MinIO is deployed, scaling starts with a single cluster,

  3. Cloud native support. MinIO is a piece of software built from scratch over the past four years that conforms to all native cloud architecture and build processes and includes the latest cloud computing technologies and concepts.

  4. A pure open source. MinIO is 100% open source based on the Apache V2 license. This means that MinIO’s customers are free to use and integrate MinIO automatically, without limits, free to innovate and create, free to modify, free to re-release new versions and software.

  5. Compatible with S3 storage. Amazon Cloud’S S3 API (Interface Protocol) is a globally agreed object storage protocol, which is a universally recognized standard.

  6. Simple. Minimalism is MinIO’s guiding design principle. Simplicity reduces error opportunities, improves uptime, and provides reliability, while simplicity is the foundation of performance. I have used MinIO in my own project, which is used to store file objects. In terms of usage, it is basically not too different from OSS of Ali Cloud and COS of Tencent cloud, and it is very fast to get started.

The API is introduced

Operating a bucket

Buckets can be regarded as data containers used to separate and store data. Apis for buckets are as follows:

  1. MakeBucket: creates a bucket
  2. ListBuckets queries the current bucket list
  3. BucketExists, check whether buckets exist
  4. RemoveBucket: Deletes a bucket
  5. ListObjects: Lists all objects in the bucket
  6. ListObjectsV2, listing all objects in the bucket (version V2)
  7. ListIncompleteUploads: Queries the list of incomplete uploaded objects in the bucket

Bucket Policy

Related policies of buckets are as follows:

  1. SetBucketPolicy: sets the access permissions of buckets or objects. The permission types can be None, Read-only, Write only, or Read-write.
  2. GetBucketPolicy: Queries the access permission of buckets or objects.

Manipulating file objects

The operations of file storage objects are as follows:

  1. FPutObject uploads the specified file to an object. When an object is smaller than 128MB, a PUT request is invoked to upload the object. If the size of the file is larger than 128MB, the system automatically divides the file into 128MB or larger files for uploading. Note that the maximum size of the object is 5TB.
  2. FGetObject, download the file and save it to the local file system.
  3. FPutObjectWithContext, which is the same as the FPutObject interface, but allows you to cancel the upload request.
  4. FGetObjectWithContext, which is the same as the FGetObject interface, but allows you to cancel the download request.

Action object

The operations of storage objects are as follows:

  1. GetObject, download the object
  2. PutObject, upload object
  3. GetObjectWithContext, which is the same as the GetObject interface, but allows you to cancel the download request.
  4. PutObjectWithContext, which is the same as the PutObject interface, but allows you to cancel the upload request.
  5. StatObject: gets the data information of an object.
  6. CopyObject
  7. RemoveObject: Deletes an object
  8. RemoveObjects: Removes a collection of objects
  9. RemoveIncompleteUpload deletes an incomplete upload object.

At the end

MinIO is an object storage service based on the Apache License V2.0 open source protocol. Compatible with Amazon S3 cloud storage service interface, it is very suitable for storing large amount of unstructured data, such as pictures, videos, log files, backup data and container/VM images, and an object file can be any size, ranging from a few KB to a maximum of 5 TB. MinIO is a very lightweight service that can be easily combined with other applications.

Calendar Clocking (August Challenge)