package mq /* import ( "gitlink.org.cn/cloudream/common/consts/errorcode" "gitlink.org.cn/cloudream/common/pkgs/logger" "gitlink.org.cn/cloudream/common/pkgs/mq" stgglb "gitlink.org.cn/cloudream/storage2/common/globals" agtmq "gitlink.org.cn/cloudream/storage2/common/pkgs/mq/agent" coormq "gitlink.org.cn/cloudream/storage2/common/pkgs/mq/coordinator" ) func (svc *Service) StorageCreatePackage(msg *agtmq.StorageCreatePackage) (*agtmq.StorageCreatePackageResp, *mq.CodeMessage) { coorCli, err := stgglb.CoordinatorMQPool.Acquire() if err != nil { logger.Warnf("new coordinator client: %s", err.Error()) return nil, mq.Failed(errorcode.OperationFailed, "new coordinator client failed") } defer stgglb.CoordinatorMQPool.Release(coorCli) pub, err := svc.stgAgts.GetPublicStore(msg.StorageID) if err != nil { return nil, mq.Failed(errorcode.OperationFailed, err.Error()) } createResp, err := coorCli.CreatePackage(coormq.NewCreatePackage(msg.UserID, msg.BucketID, msg.Name)) if err != nil { return nil, mq.Failed(errorcode.OperationFailed, err.Error()) } uploader, err := svc.uploader.BeginUpdate(msg.UserID, createResp.Package.PackageID, msg.StorageAffinity, nil, nil) if err != nil { return nil, mq.Failed(errorcode.OperationFailed, err.Error()) } objPathes, err := pub.List(msg.Path, true) for _, p := range objPathes { o, err := pub.Read(p) if err != nil { logger.Warnf("read object %s: %v", p, err) continue } err = uploader.Upload(p, o) o.Close() if err != nil { logger.Warnf("upload object %s: %v", p, err) continue } } _, err = uploader.Commit() if err != nil { return nil, mq.Failed(errorcode.OperationFailed, err.Error()) } return mq.ReplyOK(agtmq.RespStorageCreatePackage(createResp.Package)) } */