mirror of
https://github.com/gofiber/storage.git
synced 2025-12-19 00:38:24 +08:00
3.1 KiB
3.1 KiB
Minio
A Minio storage driver using minio/minio.
Note: Requires Go 1.19 and above
Table of Contents
Signatures
func New(config ...Config) Storage
func (s *Storage) Get(key string) ([]byte, error)
func (s *Storage) Set(key string, val []byte, exp time.Duration) error
func (s *Storage) Delete(key string) error
func (s *Storage) Reset() error
func (s *Storage) Close() error
func (s *Storage) CheckBucket() error
func (s *Storage) CreateBucket() error
func (s *Storage) RemoveBucket() error
func (s *Storage) Conn() *minio.Client
Installation
Install the Minio implementation:
go get github.com/gofiber/storage/minio
And then run minio on Docker
docker run -d --restart always -p 9000:9000 -p 9001:9001 --name storage-minio --volume=minio:/var/lib/minio -e MINIO_ROOT_USER='minio-user' -e MINIO_ROOT_PASSWORD='minio-password' minio/minio server --console-address ":9001" /var/lib/minio
Examples
Import the storage package.
import "github.com/gofiber/storage/minio"
You can use the following possibilities to create a storage:
// Initialize default config
store := minio.New()
// Initialize custom config
store := minio.New(minio.Config{
Bucket: "test-bucket",
Endpoint: "localhost:9000",
Credentials: Credentials{
accessKeyID: "minio-user",
secretAccessKey: "minio-password",
},
})
Config
// Config defines the config for storage.
type Config struct {
// Minio bucket name
Bucket string
// Minio endpoint
Endpoint string
// Minio region
Region string
// Minio token
Token string
// Minio secure
Secure bool
// Reset clears any existing keys in existing Bucket
// Optional. Default is false
Reset bool
// Credentials overrides Minio access key and Minio secret key. Not recommended.
// Optional. Default is Credentials{}
Credentials Credentials
// Get object options
GetObjectOptions minio.GetObjectOptions
// Put object options
PutObjectOptions minio.PutObjectOptions
// List object options
ListObjectsOptions minio.ListObjectsOptions
// Remove object options
RemoveObjectOptions minio.RemoveObjectOptions
}
Default Config
The default configuration lacks Bucket, Region, and Endpoint which are all required and must be overwritten:
// ConfigDefault is the default config
var ConfigDefault = Config{
Bucket: "",
Endpoint: "",
Region: "",
Token: "",
Secure: false,
Reset: false,
Credentials: Credentials{},
GetObjectOptions: minio.GetObjectOptions{},
PutObjectOptions: minio.PutObjectOptions{},
ListObjectsOptions: minio.ListObjectsOptions{},
RemoveObjectOptions: minio.RemoveObjectOptions{},
}
type Credentials struct {
accessKeyID string
secretAccessKey string
}