@@ -165,6 +165,7 @@ func putIncorrect(file string) error {
165165}
166166
167167// size 第一次上传的大小
168+ // 断点续传测试函数
168169func putBigFile (file string , size int64 ) error {
169170 utils .Log .Printf (utils .Info , "open file, %s\n " , file )
170171 f , e := os .Open (filepath + file )
@@ -268,4 +269,36 @@ func putBigFile(file string, size int64) error {
268269 return nil
269270}
270271
272+ func getBigFile (file string , size int64 ) error {
273+ r , _ := http .NewRequest (http .MethodGet , apihost + file , nil )
274+ r .Header .Set ("Range" , fmt .Sprintf ("bytes=%v-" , size ))
275+ client := http.Client {}
276+ response , err := client .Do (r )
277+ if err != nil {
278+ return err
279+ }
280+ if response .StatusCode < 200 || response .StatusCode >= 300 {
281+ return fmt .Errorf ("size get %s" , response .Status )
282+ }
283+ ran := response .Header .Get ("content-range" )
284+ fmt .Println (ran )
285+ data_1 , _ := os .Create ("data_1" )
286+ defer data_1 .Close ()
287+ io .Copy (data_1 , response .Body )
271288
289+ // 第二次 获取全部数据
290+ r .Header .Set ("Range" , "bytes=0-" )
291+ response , err = client .Do (r )
292+ if err != nil {
293+ return err
294+ }
295+ if response .StatusCode < 200 || response .StatusCode >= 300 {
296+ return fmt .Errorf ("all get %s" , response .Status )
297+ }
298+ ran = response .Header .Get ("content-range" )
299+ fmt .Println (ran ) // 应该是空的
300+ data_all , _ := os .Create ("data_all" )
301+ defer data_all .Close ()
302+ io .Copy (data_all , response .Body )
303+ return nil
304+ }
0 commit comments