public void BytecodeApi_IO_ZipCompression() { byte[] data1 = MathEx.RandomNumberGenerator.GetBytes(10000); byte[] data2 = MathEx.RandomNumberGenerator.GetBytes(10000); BlobTree tree = new BlobTree(); tree.Root.Blobs.Add(new Blob("file1.txt", data1)); tree.Root.Blobs.Add(new Blob("file2.txt", data2)); BlobTree decompressed = ZipCompression.Decompress(ZipCompression.Compress(tree)); Assert.IsTrue(tree.Root.Blobs[0].Compare(decompressed.Root.Blobs[0])); Assert.IsTrue(tree.Root.Blobs[1].Compare(decompressed.Root.Blobs[1])); }
public static CsvData ImportFromCloud() { CsvData csvData = new CsvData(); BlobTree countryBlob = ZipCompression.Decompress(HttpClient.Default.CreateGetRequest("https://geolite.maxmind.com/download/geoip/database/GeoLite2-Country-CSV.zip").ReadBytes()); BlobTree asnBlob = ZipCompression.Decompress(HttpClient.Default.CreateGetRequest("https://geolite.maxmind.com/download/geoip/database/GeoLite2-ASN-CSV.zip").ReadBytes()); BlobTree cityBlob = ZipCompression.Decompress(HttpClient.Default.CreateGetRequest("https://geolite.maxmind.com/download/geoip/database/GeoLite2-City-CSV.zip").ReadBytes()); csvData.Country = FindBlob(countryBlob, "GeoLite2-Country-Locations-en.csv"); csvData.Range = FindBlob(countryBlob, "GeoLite2-Country-Blocks-IPv4.csv"); csvData.Range6 = FindBlob(countryBlob, "GeoLite2-Country-Blocks-IPv6.csv"); csvData.Asn = FindBlob(asnBlob, "GeoLite2-ASN-Blocks-IPv4.csv"); csvData.Asn6 = FindBlob(asnBlob, "GeoLite2-ASN-Blocks-IPv6.csv"); csvData.City = FindBlob(cityBlob, "GeoLite2-City-Locations-en.csv"); csvData.CityRange = FindBlob(cityBlob, "GeoLite2-City-Blocks-IPv4.csv"); csvData.CityRange6 = FindBlob(cityBlob, "GeoLite2-City-Blocks-IPv6.csv"); return(csvData); byte[] FindBlob(BlobTree blobs, string name) { return(blobs.Root.Nodes.First().Blobs[name].Content); } }