Я загрузил файл размером 14 МБ в S3 порциями (5 МБ) каждый, а также с помощью spark-md5 вычислил га sh каждого блока. Отдельный ха sh каждого чанка (генерируемый spark-md5) совпадает с ETag каждого чанка, загруженного на S3.
Но ETag ха sh, созданный при полной загрузке на S3, не совпадает с локально рассчитанным га sh, генерируемым spark-md5. Ниже приведены шаги для локального ха sh:
- Генерация ха sh (генерируемого spark-md5) каждого чанка
- Присоединение к ха sh каждого чанка
- Преобразование в гекс
- Расчетное га sh
Ниже приведен код, пожалуйста, проверьте, нет ли ошибок. Подход 1:
var mergeChunk = self.chunkArray.join('');
console.log("mergeChunk: " + mergeChunk);
var hexString = toHexString(mergeChunk);
console.log("toHexString: " + hexString);
var cspark1 = SparkMD5.hash(hexString);
console.log("SparkMD5 final hash: " + cspark1);
Подход 2:
var mergeChunk = self.chunkArray.join('');
console.log("mergeChunk: " + mergeChunk);
var cspark2 = SparkMD5.hash(mergeChunk);
console.log("SparkMD5 final hash: " + cspark2);
Пожалуйста, предоставьте правильный лог c для расчета ETag.