Feat: finish object storage

This commit is contained in:
2025-12-07 21:24:33 +08:00
parent b609421a6e
commit 203a787063
16 changed files with 232 additions and 48 deletions

View File

@@ -184,3 +184,13 @@ func (self *BunDatabase) UpdateAliases(
return nil
})
}
func (self *BunDatabase) InsertImage(
ctx context.Context,
image *models.Image,
) error {
_, err := self.db.NewInsert().
Model(image).
Exec(ctx)
return err
}

View File

@@ -1,4 +1,36 @@
package implements
import (
"context"
"io"
"github.com/minio/minio-go/v7"
"github.com/spf13/viper"
)
type MinIOObjectStorage struct {
mc *minio.Client
}
func NewMinIOObjectStorage(mc *minio.Client) *MinIOObjectStorage {
return &MinIOObjectStorage{mc: mc}
}
func (self *MinIOObjectStorage) PutImage(
ctx context.Context,
name string,
r io.Reader,
size int64,
) error {
_, err := self.mc.PutObject(ctx,
viper.GetString("minio-bucket"), name, r, size, minio.PutObjectOptions{})
return err
}
func (self *MinIOObjectStorage) GetImage(
ctx context.Context,
name string,
) (io.Reader, error) {
return self.mc.GetObject(ctx,
viper.GetString("minio-bucket"), name, minio.GetObjectOptions{})
}