feat(provider): new deployment provider: s3

This commit is contained in:
Fu Diwei
2026-01-19 11:31:35 +08:00
committed by RHQYZ
parent edb858cfec
commit c0bcf6d0fd
21 changed files with 703 additions and 85 deletions
+13 -2
View File
@@ -1,6 +1,7 @@
package s3
import (
"bytes"
"context"
"errors"
"fmt"
@@ -87,11 +88,11 @@ func NewClient(config *Config) (*Client, error) {
}, nil
}
func (c *Client) PutObject(ctx context.Context, bucket, key string, reader io.Reader) error {
func (c *Client) PutObject(ctx context.Context, bucket, key string, reader io.Reader, size int64) error {
putOpts := minio.PutObjectOptions{
DisableMultipart: true,
}
_, err := c.client.PutObject(ctx, bucket, key, reader, 1024*1024*16, putOpts)
_, err := c.client.PutObject(ctx, bucket, key, reader, size, putOpts)
if err != nil {
return err
}
@@ -99,6 +100,16 @@ func (c *Client) PutObject(ctx context.Context, bucket, key string, reader io.Re
return nil
}
func (c *Client) PutObjectString(ctx context.Context, bucket, key string, data string) error {
reader := strings.NewReader(data)
return c.PutObject(ctx, bucket, key, reader, reader.Size())
}
func (c *Client) PutObjectBytes(ctx context.Context, bucket, key string, data []byte) error {
reader := bytes.NewReader(data)
return c.PutObject(ctx, bucket, key, reader, reader.Size())
}
func (c *Client) RemoveObject(ctx context.Context, bucket, key string) error {
removeOpts := minio.RemoveObjectOptions{}
err := c.client.RemoveObject(ctx, bucket, key, removeOpts)