@@ -35,7 +35,7 @@ func (client *FS) Upload(cfg pkg.UploadConfig, cloud string, locals ...string) e
3535 // up = append(up, u)
3636 continue
3737 }
38- files , err := client .uploadLocal (dir , local )
38+ files , err := client .uploadLocal (dir , local , cfg . Parten )
3939 if err != nil {
4040 log .Println (err )
4141 continue
@@ -45,9 +45,6 @@ func (client *FS) Upload(cfg pkg.UploadConfig, cloud string, locals ...string) e
4545 task := cfg .NewTask ()
4646 uploader := client .api .Uploader ()
4747 for _ , v := range up {
48- if ! cfg .Match (v .Name ()) {
49- continue
50- }
5148 r := v
5249 task .Run (func () {
5350 if err = uploader .Write (r ); err != nil {
@@ -59,7 +56,7 @@ func (client *FS) Upload(cfg pkg.UploadConfig, cloud string, locals ...string) e
5956 return nil
6057}
6158
62- func (client * FS ) uploadLocal (parent pkg.File , local string ) ([]pkg.Upload , error ) {
59+ func (client * FS ) uploadLocal (parent pkg.File , local string , parten string ) ([]pkg.Upload , error ) {
6360 stat , err := os .Stat (local )
6461 if err != nil {
6562 return nil , err
@@ -72,23 +69,40 @@ func (client *FS) uploadLocal(parent pkg.File, local string) ([]pkg.Upload, erro
7269 dirs := map [string ]string {
7370 "." : parent .Id (),
7471 }
75- filepath .WalkDir (local , func (path string , d fs.DirEntry , err error ) error {
72+ parten = filepath .Join (local , parten )
73+ files , err := filepath .Glob (parten )
74+ if err != nil {
75+ return nil , err
76+ }
77+ for _ , localFile := range files {
78+ info , err := os .Stat (localFile )
7679 if err != nil {
77- return err
80+ log .Println (err )
81+ continue
7882 }
79- if d .IsDir () {
80- rel := file .Rel (local , path )
81- if rel == "." {
82- return nil
83- }
84- f , _ := client .api .Mkdir (parent , rel )
85- dirs [rel ] = f .Id ()
86- return nil
83+ if info .IsDir () {
84+ filepath .WalkDir (localFile , func (path string , d fs.DirEntry , err error ) error {
85+ if err != nil {
86+ return err
87+ }
88+ if d .IsDir () {
89+ rel := file .Rel (local , path )
90+ if rel == "." {
91+ return nil
92+ }
93+ f , _ := client .api .Mkdir (parent , rel )
94+ dirs [rel ] = f .Id ()
95+ return nil
96+ }
97+ dir , _ := filepath .Split (path )
98+ rel := file .Rel (local , dir )
99+ up = append (up , file .NewLocalFile (dirs [rel ], path ))
100+ return err
101+ })
102+ } else {
103+ up = append (up , file .NewLocalFile (parent .Id (), localFile ))
87104 }
88- dir , _ := filepath .Split (path )
89- rel := file .Rel (local , dir )
90- up = append (up , file .NewLocalFile (dirs [rel ], path ))
91- return err
92- })
105+
106+ }
93107 return up , nil
94108}
0 commit comments