Skip to content

Commit

Permalink
check parts and size
Browse files Browse the repository at this point in the history
  • Loading branch information
sxci committed Jun 19, 2020
1 parent 019af62 commit 4d97663
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions src/main/java/com/qiniu/util/EtagV2.java
Original file line number Diff line number Diff line change
Expand Up @@ -82,21 +82,15 @@ public static String stream(InputStream in, long len, long blockSize) throws IOE
Arrays.fill(parts, 0, size - 1, blockSize);
parts[size - 1] = len % blockSize;

return etagV2NoCheck(in, len, parts);
return etagV2(in, len, parts);
}

public static String stream(InputStream in, long len, long[] parts) throws IOException {
if (is4MBParts(parts)) {
return Etag.stream(in, len);
}
long partSize = 0;
for (long part : parts) {
partSize += part;
}
if (len != partSize) {
throw new IOException("etag calc failed: size not equal with part size");
}
return etagV2NoCheck(in, len, parts);

return etagV2(in, len, parts);
}

private static boolean is4MBParts(long[] parts) {
Expand All @@ -111,7 +105,15 @@ private static boolean is4MBParts(long[] parts) {
return true;
}

private static String etagV2NoCheck(InputStream in, long len, long[] parts) throws IOException {
private static String etagV2(InputStream in, long len, long[] parts) throws IOException {
long partSize = 0;
for (long part : parts) {
partSize += part;
}
if (len != partSize) {
throw new IOException("etag calc failed: size not equal with part size");
}

MessageDigest sha1;
try {
sha1 = MessageDigest.getInstance("sha-1");
Expand Down

0 comments on commit 4d97663

Please sign in to comment.