@@ -54,7 +54,8 @@ func (d *Yun139) Init(ctx context.Context) error {
54
54
"userInfo" : base.Json {
55
55
"userType" : 1 ,
56
56
"accountType" : 1 ,
57
- "accountName" : d .Account },
57
+ "accountName" : d .Account ,
58
+ },
58
59
"modAddrType" : 1 ,
59
60
}, & resp )
60
61
if err != nil {
@@ -732,7 +733,7 @@ func (d *Yun139) Put(ctx context.Context, dstDir model.Obj, stream model.FileStr
732
733
"manualRename" : 2 ,
733
734
"operation" : 0 ,
734
735
"path" : path .Join (dstDir .GetPath (), dstDir .GetID ()),
735
- "seqNo" : random .String (32 ), //序列号不能为空
736
+ "seqNo" : random .String (32 ), // 序列号不能为空
736
737
"totalSize" : reportSize ,
737
738
"uploadContentList" : []base.Json {{
738
739
"contentName" : stream .GetName (),
@@ -834,4 +835,48 @@ func (d *Yun139) Other(ctx context.Context, args model.OtherArgs) (interface{},
834
835
}
835
836
}
836
837
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
+
837
882
var _ driver.Driver = (* Yun139 )(nil )
0 commit comments