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  }