Exemple #1
0
        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.");
        }
Exemple #2
0
        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));
        }