Skip to content

Commit 9aa4333

Browse files
winddiesnighca
winddies
authored andcommitted
fix chrome 内存占用过高的问题 (#364)
1 parent c39f796 commit 9aa4333

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "qiniu-js",
33
"jsName": "qiniu",
4-
"version": "2.2.1",
4+
"version": "2.2.2",
55
"private": false,
66
"description": "Javascript SDK for Qiniu Resource (Cloud) Storage AP",
77
"main": "dist/qiniu.min.js",

src/upload.js

+3-7
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,12 @@ import {
1212
getHeadersForChunkUpload,
1313
getHeadersForMkFile,
1414
request,
15-
readAsArrayBuffer,
15+
computeMd5,
1616
getUploadUrl,
1717
filterParams
1818
} from "./utils";
1919

2020
import { Pool } from "./pool";
21-
import SparkMD5 from "spark-md5";
2221

2322
let BLOCK_SIZE = 4 * 1024 * 1024;
2423

@@ -205,11 +204,8 @@ export class UploadManager {
205204
return reuseSaved();
206205
}
207206

208-
return readAsArrayBuffer(chunk).then(body => {
207+
return computeMd5(chunk).then(md5 => {
209208

210-
let spark = new SparkMD5.ArrayBuffer();
211-
spark.append(body);
212-
let md5 = spark.end();
213209
if (savedReusable && md5 === info.md5) {
214210
return reuseSaved();
215211
}
@@ -224,7 +220,7 @@ export class UploadManager {
224220
return request(requestUrl, {
225221
method,
226222
headers,
227-
body,
223+
body: chunk,
228224
onProgress,
229225
onCreate
230226
}).then(response => {

src/utils.js

+9
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { urlSafeBase64Encode, urlSafeBase64Decode } from "./base64";
22
import { regionUphostMap } from "./config";
3+
import SparkMD5 from "spark-md5";
34

45
// 对上传块本地存储时间检验是否过期
56
// TODO: 最好用服务器时间来做判断
@@ -113,6 +114,14 @@ export function createXHR() {
113114
return new window.ActiveXObject("Microsoft.XMLHTTP");
114115
}
115116

117+
export function computeMd5(data) {
118+
return readAsArrayBuffer(data).then(buffer => {
119+
let spark = new SparkMD5.ArrayBuffer();
120+
spark.append(buffer);
121+
return spark.end();
122+
});
123+
}
124+
116125
export function readAsArrayBuffer(data) {
117126
return new Promise((resolve, reject) => {
118127
let reader = new FileReader();

0 commit comments

Comments
 (0)