package data import ( "bytes" "context" "fm-upload/internal/biz" "fm-upload/internal/data/model" "github.com/go-kratos/kratos/v2/log" "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) type storageRepo struct { hw *Hw log *log.Helper } // NewGreeterRepo . func NewStorageRepo(hw *Hw, logger log.Logger) biz.StorageRepo { return &storageRepo{ hw: hw, log: log.NewHelper(logger), } } // 上传流文件到华为云 func (r *storageRepo) SaveToHw(ctx context.Context, data []byte, key string, bucket string) (*model.MyPutRet, error) { input := &obs.PutObjectInput{} input.Bucket = bucket input.Key = key input.Body = bytes.NewReader(data) _, err := r.hw.obs.PutObject(input) if err != nil { if obsError, ok := err.(obs.ObsError); ok { return nil, obsError } else { return nil, err } } return &model.MyPutRet{ReturnPrefix: r.hw.config.ReturnPrefix}, nil } // 上传文件到华为云 func (r *storageRepo) SaveFileToHw(ctx context.Context, localFile string, key string, bucket string) (*model.MyPutRet, error) { input := &obs.PutFileInput{} input.Bucket = bucket input.Key = key input.SourceFile = localFile _, err := r.hw.obs.PutFile(input) if err != nil { if obsError, ok := err.(obs.ObsError); ok { return nil, obsError } else { return nil, err } } return &model.MyPutRet{ReturnPrefix: r.hw.config.ReturnPrefix}, nil }