github.com/qiniu/go-sdk/v7@v7.27.0/storagev2/downloader/urls_provider_utils.go (about) 1 package downloader 2 3 import ( 4 "context" 5 "net/url" 6 ) 7 8 // GetURLs 从 DownloadURLsProvider 读取出所有 URL 返回 9 func GetURLs(ctx context.Context, provider DownloadURLsProvider, objectName string, options *GenerateOptions) ([]*url.URL, error) { 10 var ok bool 11 12 iter, err := provider.GetURLsIter(ctx, objectName, options) 13 if err != nil { 14 return nil, err 15 } 16 urls := make([]*url.URL, 0, 16) 17 for { 18 u := new(url.URL) 19 ok, err = iter.Peek(u) 20 if err != nil || !ok { 21 break 22 } 23 urls = append(urls, u) 24 iter.Next() 25 } 26 return urls, nil 27 } 28 29 // GetURLStrings 从 DownloadURLsProvider 读取出所有 URL 并转换成字符串返回 30 func GetURLStrings(ctx context.Context, provider DownloadURLsProvider, objectName string, options *GenerateOptions) ([]string, error) { 31 urls, err := GetURLs(ctx, provider, objectName, options) 32 if err != nil { 33 return nil, err 34 } 35 strs := make([]string, len(urls)) 36 for i, u := range urls { 37 strs[i] = u.String() 38 } 39 return strs, nil 40 }