Skip to content

Commit a5286ab

Browse files
authored
Merge pull request #187 from frogcjn/master
fix missing crc32 form field
2 parents 4ed7c79 + 46957e5 commit a5286ab

File tree

3 files changed

+27
-15
lines changed

3 files changed

+27
-15
lines changed

index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
var libpath = process.env.QINIU_COV ? './lib-cov' : './qiniu';
33

44
module.exports = {
5+
auth: {
6+
digest: require(libpath + '/auth' + '/digest.js')
7+
},
58
io: require(libpath + '/io.js'),
69
rs: require(libpath + '/rs.js'),
710
rsf: require(libpath + '/rsf.js'),

qiniu/io.js

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,21 +33,21 @@ function PutRet(hash, key) {
3333

3434
// onret: callback function instead of ret
3535
function putReadable (uptoken, key, rs, extra, onret) {
36-
if(!extra) {
36+
if (!extra) {
3737
extra = new PutExtra();
3838
}
3939
if (!extra.mimeType) {
4040
extra.mimeType = 'application/octet-stream';
4141
}
4242

43-
if(!key) {
43+
if (!key) {
4444
key = exports.UNDEFINED_KEY;
4545
}
4646

4747
rs.on("error", function (err) {
4848
onret({code: -1, error: err.toString()}, {});
4949
});
50-
50+
5151
var form = getMultipart(uptoken, key, rs, extra);
5252

5353
return rpc.postMultipart(conf.UP_HOST, form, onret);
@@ -58,12 +58,14 @@ function put(uptoken, key, body, extra, onret) {
5858
rs.push(body);
5959
rs.push(null);
6060

61-
if(!extra) {
61+
if (!extra) {
6262
extra = new PutExtra();
6363
}
6464
if (extra.checkCrc == 1) {
6565
var bodyCrc32 = getCrc32(body);
6666
extra.crc32 = '' + parseInt(bodyCrc32, 16);
67+
} else if (extra.checkCrc == 2 && extra.crc32) {
68+
extra.crc32 = '' + extra.crc32
6769
}
6870
return putReadable(uptoken, key, rs, extra, onret)
6971
}
@@ -77,11 +79,15 @@ function getMultipart(uptoken, key, rs, extra) {
7779
var form = formstream();
7880

7981
form.field('token', uptoken);
80-
if(key != exports.UNDEFINED_KEY) {
82+
if (key != exports.UNDEFINED_KEY) {
8183
form.field('key', key);
8284
}
8385
form.stream('file', rs, key, extra.mimeType);
8486

87+
if (extra.crc32) {
88+
form.field('crc32', extra.crc32);
89+
}
90+
8591
for (var k in extra.params) {
8692
form.field(k, extra.params[k]);
8793
}
@@ -93,14 +99,16 @@ function putFile(uptoken, key, loadFile, extra, onret) {
9399

94100
var rs = fs.createReadStream(loadFile);
95101

96-
if(!extra) {
102+
if (!extra) {
97103
extra = new PutExtra();
98104
}
99105
if (extra.checkCrc == 1) {
100106
var fileCrc32 = getCrc32(fs.readFileSync(loadFile));
101107
extra.crc32 = '' + parseInt(fileCrc32, 16);
108+
} else if (extra.checkCrc == 2 && extra.crc32) {
109+
extra.crc32 = '' + extra.crc32
102110
}
103-
if(!extra.mimeType) {
111+
if (!extra.mimeType) {
104112
extra.mimeType = mime.lookup(loadFile);
105113
}
106114

qiniu/rs.js

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@ Client.prototype.move = function(bucketSrc, keySrc, bucketDest, keyDest, onret)
5151
}
5252

5353
Client.prototype.forceMove = function(bucketSrc, keySrc, bucketDest, keyDest, force, onret) {
54-
54+
5555
var encodedEntryURISrc = getEncodedEntryUri(bucketSrc, keySrc);
5656
var encodedEntryURIDest = getEncodedEntryUri(bucketDest, keyDest);
57-
var uri = conf.RS_HOST + '/move/' + encodedEntryURISrc + '/' + encodedEntryURIDest +'/force/'+force;
57+
var uri = conf.RS_HOST + '/move/' + encodedEntryURISrc + '/' + encodedEntryURIDest +'/force/'+force;
5858

5959
var digest = util.generateAccessToken(uri, null);
6060
rpc.postWithoutForm(uri, digest, onret);
@@ -70,11 +70,11 @@ Client.prototype.copy = function(bucketSrc, keySrc, bucketDest, keyDest, onret)
7070
}
7171

7272
Client.prototype.forceCopy = function(bucketSrc, keySrc, bucketDest, keyDest, force, onret) {
73-
73+
7474
var encodedEntryURISrc = getEncodedEntryUri(bucketSrc, keySrc);
7575
var encodedEntryURIDest = getEncodedEntryUri(bucketDest, keyDest);
7676
var uri = conf.RS_HOST + '/copy/' + encodedEntryURISrc + '/' + encodedEntryURIDest +'/force/'+force;
77-
77+
7878
var digest = util.generateAccessToken(uri, null);
7979
rpc.postWithoutForm(uri, digest, onret);
8080
}
@@ -117,7 +117,7 @@ function EntryPathPair(src, dest) {
117117
}
118118

119119
EntryPathPair.prototype.toStr = function(op, force) {
120-
if(typeof(force)=='undefined'){
120+
if (typeof(force)=='undefined'){
121121

122122
return 'op=/' + op + '/' + this.src.encode() + '/' + this.dest.encode() + '&';
123123

@@ -151,7 +151,7 @@ Client.prototype.batchMove = function(entries, onret) {
151151
}
152152

153153
Client.prototype.forceBatchMove = function(entries, force, onret) {
154-
154+
155155
fileHandleForce('move', entries, force, onret);
156156

157157
}
@@ -161,9 +161,9 @@ Client.prototype.batchCopy = function(entries, onret) {
161161
}
162162

163163
Client.prototype.forceBatchCopy = function(entries, force, onret) {
164-
164+
165165
fileHandleForce('copy', entries, force, onret);
166-
166+
167167
}
168168

169169

@@ -256,6 +256,7 @@ function PutPolicy2(putPolicyObj) {
256256
this.callbackHost = putPolicyObj.callbackHost || null;
257257
this.callbackBody = putPolicyObj.callbackBody || null;
258258
this.callbackBodyType = putPolicyObj.callbackBodyType || null;
259+
this.callbackFetchKey = putPolicyObj.callbackFetchKey || null;
259260

260261
this.persistentOps = putPolicyObj.persistentOps || null;
261262
this.persistentNotifyUrl = putPolicyObj.persistentNotifyUrl || null;

0 commit comments

Comments
 (0)