Skip to content

Commit

Permalink
change qdownload / qdownload2 / get doc (#405)
Browse files Browse the repository at this point in the history
  • Loading branch information
YangSen-qn authored Nov 8, 2023
1 parent 33a354b commit 497b93f
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 8 deletions.
5 changes: 4 additions & 1 deletion docs/get.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,12 @@ $ qshell get --doc
- Bucket:空间名。 【必选】
- Key:存储空间中的文件名字。 【必选】

## 注:
1. 使用 bucket 绑定的源站域名和七牛源站域名下载资源,这部分下载产生的流量会生成存储源站下载流量的计费,请注意,这部分计费不在七牛 CDN 免费 10G 流量覆盖范围,具体域名使用参考:--domain 选项。

# 选项
- -o/--outfile:保存在本地的文件路径;不指定,保存在当前文件夹,文件名使用存储空间中的名字【可选】
- --domain:指定下载请求的域名,当指定了下载域名则仅使用此下载域名进行下载;默认为空,此时 qshell 下载使用域名的优先级:1.bucket 绑定的域名(qshell 内部查询,无需配置) 2. 源站域名(qshell 内部查询,无需配置),当优先级高的域名下载失败后会尝试使用优先级低的域名进行下载。【可选】
- --domain:指定下载请求的域名,当指定了下载域名则仅使用此下载域名进行下载;默认为空,此时 qshell 下载使用域名的优先级:1.bucket 绑定的 CDN 域名(qshell 内部查询,无需配置) 2.bucket 绑定的源站域名(qshell 内部查询,无需配置) 3. 七牛源站域名(qshell 内部查询,无需配置),当优先级高的域名下载失败后会尝试使用优先级低的域名进行下载。【可选】
- --get-file-api: 当存储服务端支持 getfile 接口时才有效。【可选】
- --public:空间是否为公开空间;为 `true` 时为公有空间,公有空间下载时不会对下载 URL 进行签名,可以提升 CDN 域名性能,默认为 `false`(私有空间)【可选】
- --check-size: 下载后检测本地文件和服务端文件 size 的一致性。【可选】
Expand Down
7 changes: 3 additions & 4 deletions docs/qdownload.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@
`qdownload` 可以将七牛空间中的文件同步到本地磁盘中。支持只同步带特定前缀或者后缀的文件,也支持在本地备份路径不变的情况下进行增量同步。 需要额外指出的是,将文件同步到本地都是走的七牛存储源站的流量而不是 `CDN`
的流量,因为 `CDN` 通常情况下会认为大量的文件下载操作是非法访问从而进行限制。

注:
## 注:
- 使用 bucket 绑定的源站域名和七牛源站域名下载资源,这部分下载产生的流量会生成存储源站下载流量的计费,请注意,这部分计费不在七牛 CDN 免费 10G 流量覆盖范围,具体域名使用参考配置:domain 。
- `Key` 中的 `/` 会被当做路径处理,也即任何以 `/` 结尾的 `Key` 均会被当做文件夹处理。
- 如果使用的是 CDN 域名,且 CDN 域名开启了图片优化中的图片自动瘦身功能时,下载文件的信息和七牛服务端记录的文件信息不一致,此时下载不要使用 --check-size 和 --check-hash 选项,否则下载会失败。

### 注:【该功能默认需要计费,如果希望享受 10G 的免费流量,请自行将 domain 参数设置为 CDN 域名,如不设置,需支付源站流量费用,无法减免!!!】

本工具批量下载文件支持多文件并发下载,另外还支持单个文件的断点下载。除此之外,也可以支持指定前缀或者后缀的文件同步,注意这里的前缀只能指定一个,但是后缀可以指定多个,多个后缀直接使用英文的逗号(,)分隔。

# 格式
Expand Down Expand Up @@ -69,7 +68,7 @@ $ qshell qdownload --doc
- save_path_handler:指定一个回调函数;在构建文件的保存路径时,优先使用此选项进行构建,如果不配置则使用 $dest_dir + $文件分割符 + $Key 方式进行构建。文档下面有常用场景实例。此函数通过 Go 语言的模板实现,函数验证使用 func 命令,具体语法可参考 func 命令说明,handler 使用方式下方有示例可供参考 【可选】
- check_size:下载后检测本地文件和服务端文件 size 的一致性,默认为 `false`。【可选】
- check_hash:是否验证 hash,如果开启可能会耗费较长时间,默认为 `false` 【可选】
- domain:指定下载请求的域名,当指定了下载域名则仅使用此下载域名进行下载;默认为空,此时 qshell 下载使用域名的优先级:1.bucket 绑定的域名(qshell 内部查询,无需配置) 2. 源站域名(qshell 内部查询,无需配置),当优先级高的域名下载失败后会尝试使用优先级低的域名进行下载。【该功能默认需要计费,如果希望享受 10G 的免费流量,请自行配置此参数为 CDN 域名,如不配置,需支付源站流量费用,无法减免!!!】 【可选】
- domain:指定下载请求的域名,当指定了下载域名则仅使用此下载域名进行下载;默认为空,此时 qshell 下载使用域名的优先级:1.bucket 绑定的 CDN 域名(qshell 内部查询,无需配置) 2.bucket 绑定的源站域名(qshell 内部查询,无需配置) 3. 七牛源站域名(qshell 内部查询,无需配置),当优先级高的域名下载失败后会尝试使用优先级低的域名进行下载。【可选】
- referer:如果下载请求域名配置了域名白名单防盗链,需要指定一个允许访问的 referer 地址;默认为空 【可选】
- public:空间是否为公开空间;为 `true` 时为公有空间,公有空间下载时不会对下载 URL 进行签名,可以提升 CDN 域名性能,默认为 `false`(私有空间)【可选】
- enable_slice: 是否开启切片下载,需要注意 `slice_file_size_threshold` 切片阈值选项的配置,只有开启切片下载,并且下载的文件大小大于切片阈值方会启动切片下载。默认不开启。【可选】
Expand Down
5 changes: 3 additions & 2 deletions docs/qdownload2.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
# 简介
`qdownload2` 功能和 `qdownload` 一致,不过 `qdownload2` 通过命令行的方式来指定各个需要的参数,例如:
`qdownload2` 功能和 `qdownload` 一致,选项也是一一对应,不过 `qdownload2` 通过命令行的方式来指定各个需要的参数,例如:
```
qshell qdownload2 --dest-dir=/home/jemy/temp --bucket=test
```

注:
## 注:
- 使用 bucket 绑定的源站域名和七牛源站域名下载资源,这部分下载产生的流量会生成存储源站下载流量的计费,请注意,这部分计费不在七牛 CDN 免费 10G 流量覆盖范围,具体域名使用参考 qdownload 命令的同功能配置:domain 。
- `Key` 中的 `/` 会被当做路径处理,也即任何以 `/` 结尾的 `Key` 均会被当做文件夹处理。
- 如果使用的是 CDN 域名,且 CDN 域名开启了图片优化中的图片自动瘦身功能时,下载文件的信息和七牛服务端记录的文件信息不一致,此时下载不要使用 --check-size 和 --check-hash 选项,否则下载会失败。

Expand Down
2 changes: 1 addition & 1 deletion iqshell/storage/object/download/downloader.go
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ func downloadTempFileWithDownloader(dl downloader, fInfo *fileInfo, info *Downlo

// 检查 fromBytes 和 fileSize,fromBytes 不能 > fileSize
if info.RangeFromBytes > 0 {
if info.RangeFromBytes > info.FileSize || info.RangeFromBytes > info.RangeToBytes {
if info.RangeFromBytes > info.FileSize || (info.RangeFromBytes > info.RangeToBytes && info.RangeToBytes > 0) {
errorDesc := "download, check fromBytes error: fromBytes bigger than file size, should remove temp file and retry."
log.Warning(errorDesc)
if e := fInfo.cleanTempFile(); e != nil {
Expand Down

0 comments on commit 497b93f

Please sign in to comment.