github.com/qiniu/go-sdk/v7@v7.27.0/storagev2/downloader/doc.go (about) 1 // Package downloader 提供七牛云对象存储的下载管理。 2 // 3 // [DownloadManager] 是推荐的下载入口,支持文件下载、流式下载和目录下载。 4 // 支持并发分片下载、断点续传和多种 URL 生成策略。 5 // 6 // # 基本用法 7 // 8 // downloadManager := downloader.NewDownloadManager(&downloader.DownloadManagerOptions{ 9 // Options: http_client.Options{Credentials: cred}, 10 // }) 11 // 12 // // 下载到文件(通过 ObjectOptions 指定 URL 生成策略) 13 // size, err := downloadManager.DownloadToFile(ctx, "my-file.txt", "/tmp/file.txt", &downloader.ObjectOptions{ 14 // DownloadURLsProvider: downloader.SignURLsProvider( 15 // downloader.NewStaticDomainBasedURLsProvider([]string{"cdn.example.com"}), 16 // downloader.NewCredentialsSigner(cred), 17 // nil, 18 // ), 19 // }) 20 // 21 // // 下载到 Writer 22 // size, err := downloadManager.DownloadToWriter(ctx, "my-file.txt", writer, nil) 23 // 24 // // 下载整个目录 25 // err := downloadManager.DownloadDirectory(ctx, "/tmp/backup", &downloader.DirectoryOptions{ 26 // BucketName: "my-bucket", 27 // }) 28 // 29 // # URL 生成策略 30 // 31 // 通过 [DownloadURLsProvider] 接口控制下载 URL 的生成方式: 32 // 33 // - [NewStaticDomainBasedURLsProvider]: 使用固定域名 34 // - [NewDefaultSrcURLsProvider]: 自动查询源站域名 35 // - [NewDomainsQueryURLsProvider]: 通过 API 查询域名 36 // - [CombineDownloadURLsProviders]: 组合多个 Provider 37 // 38 // # URL 签名 39 // 40 // 使用 [Signer] 接口为下载 URL 添加认证签名: 41 // 42 // signer := downloader.NewCredentialsSigner(cred) 43 // signedProvider := downloader.SignURLsProvider(urlsProvider, signer, nil) 44 // 45 // # 并发下载 46 // 47 // 使用 [NewConcurrentDownloader] 通过 HTTP Range 请求并发下载大文件: 48 // 49 // dest := downloader.NewConcurrentDownloader(&downloader.ConcurrentDownloaderOptions{ 50 // Concurrency: 4, 51 // PartSize: 4 * 1024 * 1024, 52 // }) 53 package downloader