-
Release v1.0.0 Stable
released this
2026-05-29 10:04:21 -06:00 | 0 commits to main since this releasev1.0.0
code.nochebuena.dev/einherjar/storage-minio
Architecture Decisions Resolved
Decision Outcome Provider interface scope PutObject, RemoveObject, GetObject, PresignedGetObject — covers the common ops; Native()is the escape hatchNative() escape hatch *miniogo.Clientreturned directly — callers that need multipart upload or bucket management import minio-go directlyHealth check mechanism BucketExists — verifies both connectivity and bucket availability Health priority LevelCritical— object storage outage halts the service
API
import "code.nochebuena.dev/einherjar/storage-minio" // Interfaces type Provider interface { PutObject(ctx context.Context, bucket, key string, reader io.Reader, size int64, opts miniogo.PutObjectOptions) (miniogo.UploadInfo, error) RemoveObject(ctx context.Context, bucket, key string, opts miniogo.RemoveObjectOptions) error GetObject(ctx context.Context, bucket, key string, opts miniogo.GetObjectOptions) (*miniogo.Object, error) PresignedGetObject(ctx context.Context, bucket, key string, expires time.Duration, reqParams url.Values) (*url.URL, error) HandleError(err error) error } type Component interface { lifecycle.Component observability.Checkable observability.Identifiable Provider Native() *miniogo.Client } // Config type Config struct { Endpoint string `env:"EINHERJAR_MINIO_ENDPOINT,required"` AccessKey string `env:"EINHERJAR_MINIO_ACCESS_KEY,required"` SecretKey string `env:"EINHERJAR_MINIO_SECRET_KEY,required"` Bucket string `env:"EINHERJAR_MINIO_BUCKET,required"` UseSSL bool `env:"EINHERJAR_MINIO_USE_SSL" envDefault:"false"` Region string `env:"EINHERJAR_MINIO_REGION" envDefault:"us-east-1"` } func DefaultConfig() Config // Constructor func New(logger logging.Logger, cfg Config) Component // Package-level error handler (also available as Provider.HandleError) func HandleError(err error) error
Install
go get code.nochebuena.dev/einherjar/storage-minio@v1.0.0
Dependencies
Module Version Role code.nochebuena.dev/einherjar/contractsv1.0.0 lifecycle.Component,observability.Checkable,logging.Loggercode.nochebuena.dev/einherjar/corev1.0.0 xerrorsgithub.com/minio/minio-go/v7v7.1.0 MinIO/S3 client Downloads