private static async Task <byte[]> GetHashAsync(Client client, Address addr, string[] ps, CancellationToken cancellation) { if (ps.Length == 0 || ps[0] == "") { Object obj = await client.GetObjectHeader(cancellation, new ObjectHeaderParams() { Address = addr }, new CallOptions { Ttl = 2 }); return(obj.PayloadChecksum.Sum.ToByteArray()); } Range range = ParseRange(ps[0]); List <byte[]> hashes = await client.GetObjectPayloadRangeHash(cancellation, new RangeChecksumParams() { Address = addr, Ranges = new List <Range>() { range }, Type = ChecksumType.Sha256, Salt = Array.Empty <byte>() }, new CallOptions { Ttl = 2 }); if (hashes.Count == 0) { throw new Exception("empty response, object range is invalid (expected 'Offset|Length')"); } return(hashes[0]); }
private static Task <byte[]> GetRangeAsync(Client client, Address addr, string[] ps, CancellationToken cancellation) { if (ps.Length == 0) { throw new FormatException("missing object range (expected 'Offset|Length')"); } Range range = ParseRange(ps[0]); return(client.GetObjectPayloadRangeData(cancellation, new RangeDataParams() { Address = addr, Range = range }, new CallOptions { Ttl = 2 })); }