private void CheckHash(string filePath, string fileDescription) { if (_file.GetSHA1(filePath) != _remotePkg.Hash) { throw Fault .HashMismatch(fileDescription, "remote package"); } SetStatus($"Hash of {fileDescription} is valid."); }
private async Task <NodeReply> ExecuteUpload(R2Package localPkg, string revisionLog, CancellationToken cancelTkn) { SetStatus("Isolating local package file..."); var pkgPath = await _fileIO.IsolateFile(localPkg); SetStatus("Compressing and splitting into parts..."); var partPaths = await _archivr.CompressAndSplit(pkgPath, MaxPartSizeMB); await _fileIO.Delete(pkgPath); await _sendr.SendParts(partPaths, localPkg, cancelTkn); await _fileIO.Delete(partPaths); var newHash = await TryDownloadAndGetHash(localPkg, cancelTkn); if (newHash != localPkg.Hash) { throw Fault.HashMismatch("Original Package File", "Downloaded Package File"); } SetStatus("Updating package node ..."); return(await _pkgMgr.UpdateRemoteNode(localPkg, revisionLog, cancelTkn)); }