Skip to content

Commit 9cdd687

Browse files
committed
check crc32 for each block
1 parent 462aec6 commit 9cdd687

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

qiniu/storage/resume.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ const rpc = require('../rpc');
55
const path = require('path');
66
const mime = require('mime');
77
const fs = require('fs');
8+
const getCrc32 = require('crc32');
89

910
exports.ResumeUploader = ResumeUploader;
1011
exports.PutExtra = PutExtra;
@@ -157,12 +158,12 @@ function putReq(config, uploadToken, key, rsStream, rsStreamLen, putExtra,
157158
mkblkReq(upDomain, uploadToken, readData, function(respErr,
158159
respBody,
159160
respInfo) {
160-
if (respInfo.statusCode != 200) {
161+
var bodyCrc32 = parseInt("0x" + getCrc32(readData));
162+
if (respInfo.statusCode != 200 || respBody.crc32 != bodyCrc32) {
161163
callbackFunc(respErr, respBody, respInfo);
162164
return;
163165
} else {
164166
finishedBlock += 1;
165-
rsStream.resume();
166167
var blkputRet = respBody;
167168
finishedCtxList.push(blkputRet.ctx);
168169
finishedBlkPutRets.push(blkputRet);
@@ -176,6 +177,8 @@ function putReq(config, uploadToken, key, rsStream, rsStreamLen, putExtra,
176177
encoding: 'utf-8'
177178
});
178179
}
180+
181+
rsStream.resume();
179182
}
180183
});
181184
}

0 commit comments

Comments
 (0)