Do not store additional metadata in .metadata.json in the bucket itself

This commit is contained in:
Vitaliy Filippov 2021-07-16 22:16:37 +03:00
parent 560b3353de
commit 07c3e2eb6e
3 changed files with 42 additions and 106 deletions
pkg/s3

View file

@ -3,11 +3,8 @@ package s3
import (
"bytes"
"context"
"encoding/json"
"fmt"
"io"
"net/url"
"path"
"github.com/golang/glog"
"github.com/minio/minio-go/v7"
@ -221,34 +218,3 @@ func (client *s3Client) removeObjectsOneByOne(bucketName, prefix string) error {
return nil
}
func (client *s3Client) SetFSMeta(meta *FSMeta) error {
b := new(bytes.Buffer)
json.NewEncoder(b).Encode(meta)
opts := minio.PutObjectOptions{ContentType: "application/json"}
_, err := client.minio.PutObject(
client.ctx, meta.BucketName, path.Join(meta.Prefix, metadataName), b, int64(b.Len()), opts,
)
return err
}
func (client *s3Client) GetFSMeta(bucketName, prefix string) (*FSMeta, error) {
opts := minio.GetObjectOptions{}
obj, err := client.minio.GetObject(client.ctx, bucketName, path.Join(prefix, metadataName), opts)
if err != nil {
return &FSMeta{}, err
}
objInfo, err := obj.Stat()
if err != nil {
return &FSMeta{}, err
}
b := make([]byte, objInfo.Size)
_, err = obj.Read(b)
if err != nil && err != io.EOF {
return &FSMeta{}, err
}
var meta FSMeta
err = json.Unmarshal(b, &meta)
return &meta, err
}