@@ -54,7 +54,8 @@ func (d *Yun139) Init(ctx context.Context) error {
5454 "userInfo" : base.Json {
5555 "userType" : 1 ,
5656 "accountType" : 1 ,
57- "accountName" : d .Account },
57+ "accountName" : d .Account ,
58+ },
5859 "modAddrType" : 1 ,
5960 }, & resp )
6061 if err != nil {
@@ -732,7 +733,7 @@ func (d *Yun139) Put(ctx context.Context, dstDir model.Obj, stream model.FileStr
732733 "manualRename" : 2 ,
733734 "operation" : 0 ,
734735 "path" : path .Join (dstDir .GetPath (), dstDir .GetID ()),
735- "seqNo" : random .String (32 ), //序列号不能为空
736+ "seqNo" : random .String (32 ), // 序列号不能为空
736737 "totalSize" : reportSize ,
737738 "uploadContentList" : []base.Json {{
738739 "contentName" : stream .GetName (),
@@ -834,4 +835,48 @@ func (d *Yun139) Other(ctx context.Context, args model.OtherArgs) (interface{},
834835 }
835836}
836837
838+ func (d * Yun139 ) GetDetails (ctx context.Context ) (* model.StorageDetails , error ) {
839+ if d .UserDomainID == "" {
840+ return nil , errs .NotImplement
841+ }
842+ var total , free uint64
843+ if d .isFamily () {
844+ diskInfo , err := d .getFamilyDiskInfo (ctx )
845+ if err != nil {
846+ return nil , err
847+ }
848+ totalMb , err := strconv .ParseUint (diskInfo .Data .DiskSize , 10 , 64 )
849+ if err != nil {
850+ return nil , fmt .Errorf ("failed convert disk size into integer: %+v" , err )
851+ }
852+ usedMb , err := strconv .ParseUint (diskInfo .Data .UsedSize , 10 , 64 )
853+ if err != nil {
854+ return nil , fmt .Errorf ("failed convert used size into integer: %+v" , err )
855+ }
856+ total = totalMb * 1024 * 1024
857+ free = total - (usedMb * 1024 * 1024 )
858+ } else {
859+ diskInfo , err := d .getPersonalDiskInfo (ctx )
860+ if err != nil {
861+ return nil , err
862+ }
863+ totalMb , err := strconv .ParseUint (diskInfo .Data .DiskSize , 10 , 64 )
864+ if err != nil {
865+ return nil , fmt .Errorf ("failed convert disk size into integer: %+v" , err )
866+ }
867+ freeMb , err := strconv .ParseUint (diskInfo .Data .FreeDiskSize , 10 , 64 )
868+ if err != nil {
869+ return nil , fmt .Errorf ("failed convert free size into integer: %+v" , err )
870+ }
871+ total = totalMb * 1024 * 1024
872+ free = freeMb * 1024 * 1024
873+ }
874+ return & model.StorageDetails {
875+ DiskUsage : model.DiskUsage {
876+ TotalSpace : total ,
877+ FreeSpace : free ,
878+ },
879+ }, nil
880+ }
881+
837882var _ driver.Driver = (* Yun139 )(nil )
0 commit comments