feat: add chunked desktop client release uploads
This commit is contained in:
@@ -103,6 +103,16 @@ func (c *minioClient) PutBytes(
|
||||
objectKey string,
|
||||
content []byte,
|
||||
contentType string,
|
||||
) error {
|
||||
return c.PutReader(ctx, objectKey, bytes.NewReader(content), int64(len(content)), contentType)
|
||||
}
|
||||
|
||||
func (c *minioClient) PutReader(
|
||||
ctx context.Context,
|
||||
objectKey string,
|
||||
reader io.Reader,
|
||||
size int64,
|
||||
contentType string,
|
||||
) error {
|
||||
if err := c.Validate(); err != nil {
|
||||
return err
|
||||
@@ -110,6 +120,9 @@ func (c *minioClient) PutBytes(
|
||||
if strings.TrimSpace(objectKey) == "" {
|
||||
return fmt.Errorf("object key is required")
|
||||
}
|
||||
if reader == nil {
|
||||
return fmt.Errorf("object reader is required")
|
||||
}
|
||||
|
||||
exists, err := c.client.BucketExists(ctx, c.bucket)
|
||||
if err != nil {
|
||||
@@ -131,14 +144,14 @@ func (c *minioClient) PutBytes(
|
||||
}
|
||||
}
|
||||
|
||||
_, err = c.client.PutObject(ctx, c.bucket, objectKey, bytes.NewReader(content), int64(len(content)), minio.PutObjectOptions{
|
||||
_, err = c.client.PutObject(ctx, c.bucket, objectKey, reader, size, minio.PutObjectOptions{
|
||||
ContentType: contentType,
|
||||
})
|
||||
if err != nil {
|
||||
c.logError(ctx, "minio put object failed",
|
||||
zap.String("bucket", c.bucket),
|
||||
zap.String("object_key", objectKey),
|
||||
zap.Int("content_size", len(content)),
|
||||
zap.Int64("content_size", size),
|
||||
zap.Error(err),
|
||||
)
|
||||
return fmt.Errorf("put minio object: %w", err)
|
||||
|
||||
Reference in New Issue
Block a user