From 4d97663ef11e2803c5abb2deb54dc5718e702ffb Mon Sep 17 00:00:00 2001 From: Sxci Date: Fri, 19 Jun 2020 11:28:24 +0800 Subject: [PATCH] check parts and size --- src/main/java/com/qiniu/util/EtagV2.java | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/qiniu/util/EtagV2.java b/src/main/java/com/qiniu/util/EtagV2.java index 9dfe09875..4b71e539a 100644 --- a/src/main/java/com/qiniu/util/EtagV2.java +++ b/src/main/java/com/qiniu/util/EtagV2.java @@ -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) { @@ -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");