Skip to content

Commit da93582

Browse files
lzfee0227nighca
authored andcommitted
improve doc && demo && code (#349)
1 parent b0a296b commit da93582

File tree

4 files changed

+19
-20
lines changed

4 files changed

+19
-20
lines changed

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ subscription.unsubscribe() // 上传取消
133133
},
134134
error(err){
135135
// ...
136-
},
136+
},
137137
complete(res){
138138
// ...
139139
}
@@ -144,10 +144,10 @@ subscription.unsubscribe() // 上传取消
144144
* total.total: `number`,本次上传的总量控制信息,单位为字节,注意这里的 total 跟文件大小并不一致。
145145
* total.percent: `number`,当前上传进度,范围:0100
146146

147-
* error: 上传错误后触发当不是 xhr 请求错误时,会把当前错误产生原因直接抛出,诸如 JSON 解析异常等;当产生 xhr 请求错误时,参数 err 为一个包含 `code``message``isRequestError` 三个属性的 `object`
147+
* error: 上传错误后触发;自动重试本身并不会触发该错误,而当重试次数到达上限后则可以触发。当不是 xhr 请求错误时,会把当前错误产生原因直接抛出,诸如 JSON 解析异常等;当产生 xhr 请求错误时,参数 err 为一个包含 `code``message``isRequestError` 三个属性的 `object`
148148
* err.isRequestError: 用于区分是否 xhr 请求错误;当 xhr 请求出现错误并且后端通过 HTTP 状态码返回了错误信息时,该参数为 `true`;否则为 `undefined`
149149
* err.reqId: `string`,xhr请求错误的 `X-Reqid`
150-
* err.code: `number`,请求错误状态码,只有在 `err.isRequestError`true 的时候才有效,当出现 `599` 错误上传会自动重试,整个上传过程中出现 `599` 次数最多6次,否则会停止当前上传并输出错误信息。可查阅码值对应[说明](https://developer.qiniu.com/kodo/api/3928/error-responses)。
150+
* err.code: `number`,请求错误状态码,只有在 `err.isRequestError`true 的时候才有效。可查阅码值对应[说明](https://developer.qiniu.com/kodo/api/3928/error-responses)。
151151
* err.message: `string`,错误信息,包含错误码,当后端返回提示信息时也会有相应的错误信息。
152152

153153
* complete: 接收上传完成后的后端返回信息,具体返回结构取决于后端sdk的配置,可参考[上传策略](https://developer.qiniu.com/kodo/manual/1206/put-policy)。
@@ -169,7 +169,7 @@ subscription.unsubscribe() // 上传取消
169169
* config.useCdnDomain: 表示是否使用 cdn 加速域名,为布尔值,`true` 表示使用,默认为 `false`
170170
* config.disableStatisticsReport: 是否禁用日志报告,为布尔值,默认为 `false`
171171
* config.region: 选择上传域名区域;当为 `null``undefined` 时,自动分析上传域名区域。
172-
* config.retryCount: 当上传过程中出现 `599` 内部错误时,上传自动重试次数,默认三次
172+
* config.retryCount: 上传自动重试次数(整体重试次数,而不是某个分片的重试次数);默认 3 次(即上传失败后最多重试两次);**目前仅在上传过程中产生 `599` 内部错误时生效****但是未来很可能会扩展为支持更多的情况**
173173

174174
* **putExtra**:
175175

@@ -185,7 +185,7 @@ subscription.unsubscribe() // 上传取消
185185
* params: `object`,用来放置自定义变量
186186
* mimeType: `null || array`,用来限制上传文件类型,为 `null` 时表示不对文件类型限制;限制类型放到数组里:
187187
`["image/png", "image/jpeg", "image/gif"]`
188-
188+
189189
### qiniu.createMkFileUrl(url: string, size: number, key: string, putExtra: object): string
190190

191191
返回创建文件的 url;当分片上传时,我们需要把分片返回的 ctx 信息拼接后通过该 url 上传给七牛以创建文件。
@@ -255,7 +255,7 @@ subscription.unsubscribe() // 上传取消
255255
返回添加水印后的图片地址
256256
* **key** : 文件资源名
257257
* **domain**: 为七牛空间(bucket)对应的域名,选择某个空间后,可通过"空间设置->基本设置->域名设置"查看获取,前端可以通过接口请求后端得到
258-
258+
259259
```JavaScript
260260
261261
var imgLink = qiniu.watermark({
@@ -272,7 +272,7 @@ subscription.unsubscribe() // 上传取消
272272
// 若未指定key,可以通过以下方式获得完整的 imgLink,下同
273273
// imgLink = '<domain>/<key>?' + imgLink
274274
// <domain> 为七牛空间(bucket)对应的域名,选择某个空间后,可通过"空间设置->基本设置->域名设置"查看获取
275-
275+
276276
// 或者
277277
278278
var imgLink = qiniu.watermark({

src/upload.js

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ export class UploadManager {
4848
this.onData = () => {};
4949
this.onError = () => {};
5050
this.onComplete = () => {};
51+
this.retryCount = 0;
5152
Object.assign(this, handlers);
5253
}
5354

@@ -75,19 +76,17 @@ export class UploadManager {
7576
}
7677
}, err => {
7778
this.stop();
78-
if (err.isRequestError){
79-
if (!this.config.disableStatisticsReport){
80-
if (err.code === 0){
79+
if (err.isRequestError) {
80+
if (!this.config.disableStatisticsReport) {
81+
if (err.code === 0) {
8182
this.sendLog("", -2);
8283
} else {
8384
this.sendLog(err.reqId, err.code);
8485
}
85-
}
86-
if (err.code === 599){
87-
if (this.config.retryCount-- > 0){
88-
this.putFile();
89-
return;
90-
}
86+
}
87+
if (err.code === 599 && ++this.retryCount < this.config.retryCount) {
88+
this.putFile();
89+
return;
9190
}
9291
}
9392
this.onError(err);
@@ -265,7 +264,7 @@ export class UploadManager {
265264
notifyResumeProgress() {
266265
this.progress = {
267266
total: this.getProgressInfoItem(
268-
sum(this.loaded.chunks) + this.loaded.mkFileProgress,
267+
sum(this.loaded.chunks) + this.loaded.mkFileProgress,
269268
this.file.size + 1
270269
),
271270
chunks: this.chunks.map((chunk, index) => {

test/demo1/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@
212212
<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
213213
<!--<![endif]-->
214214
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
215-
<script src="http://cdnjs.cloudflare.com/ajax/libs/json3/3.3.2/json3.min.js"></script>
215+
<script src="https://cdn.bootcss.com/json3/3.3.2/json3.min.js"></script>
216216
<script type="text/javascript" src='./js/plupload.full.min.js'></script>
217217
<script type="text/javascript" src='/dist/qiniu.min.js'></script>
218218
<script type="text/javascript" src='./component/widget.js'></script>
@@ -223,4 +223,4 @@
223223
<script type="text/javascript" src='./scripts/uploadWithSDK.js'></script>
224224
<script type="text/javascript" src='./main.js'></script>
225225

226-
</html>
226+
</html>

test/demo1/main.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
var config = {
55
useCdnDomain: true,
66
disableStatisticsReport: false,
7-
retryCount: 5,
7+
retryCount: 6,
88
region: qiniu.region.z2
99
};
1010
var putExtra = {

0 commit comments

Comments
 (0)