// GET http://.../JsonProxy/getSchema?uri=dmitrov-uri public SerializableDataSetSchema Get(string uri) { traceSource.TraceEvent(TraceEventType.Information, 1, string.Format("Request for JSON schema of dataset {0}", uri)); SerializableDataSetSchema result = null; if (!String.IsNullOrEmpty(uri)) { var ds = new AzureBlobDataSet(uri); result = ConvUtils.GetSerializableSchema(ds); } if (result == null) { throw new HttpResponseException(HttpStatusCode.InternalServerError); } return(result); }
public void ByteAndSByteDataTest() { const int xsize = 627; string blobUri = @"msds:ab?UseDevelopmentStorage=true&Container=testcontainer767x9&Blob=testblob767x17"; var xaxis = new SerializableVariableSchema("x", typeof(Int32), new string[] { "x" }, null); var ByteData = new SerializableVariableSchema("ByteData", typeof(Byte), new string[] { "x" }, null); var SByteData = new SerializableVariableSchema("SByteData", typeof(SByte), new string[] { "x" }, null); var xdim = new SerializableDimension("x", xsize); var scheme = new SerializableDataSetSchema(new SerializableDimension[] { xdim }, new SerializableVariableSchema[] { xaxis, ByteData, SByteData }, new System.Collections.Generic.Dictionary <string, object>()); AzureBlobDataSet.CreateEmptySet(blobUri, scheme); var x = new int[xsize]; var Bvals = new Byte[xsize]; var SBvals = new SByte[xsize]; for (int i = 0; i < xsize; ++i) { x[i] = i; } for (int i = 0; i < xsize; ++i) { Bvals[i] = (Byte)(i % 256); SBvals[i] = (SByte)(i % 256 - 128); } AzureBlobDataSet set = new AzureBlobDataSet(blobUri); set["x"].PutData(x); set["ByteData"].PutData(Bvals); set["SByteData"].PutData(SBvals); var receivedByteData = (Byte[])set["ByteData"].GetData(); var receivedSByteData = (SByte[])set["SByteData"].GetData(); for (int i = 0; i < xsize; ++i) { Assert.AreEqual((Byte)(i % 256), receivedByteData[i]); Assert.AreEqual((SByte)(i % 256 - 128), receivedSByteData[i]); } }
static void Main(string[] args) { var schema = new SerializableDataSetSchema( new SerializableDimension[] { new SerializableDimension("i", 30000), new SerializableDimension("j", 30000) }, new SerializableVariableSchema[] { new SerializableVariableSchema("vals", typeof(double), new string[] { "i", "j" }, null) }, null ); string BlobConnectionAccountName = @"fetchclimate2"; string BlobConnectionAccountKey = @"vQpyUA7h5QFX6VlEH944gyv/h2Kx//WDy32brNip+YKDpsrN5/pxcSOnP2igQQ5pkA8lRXkmqmAYrgB29nwo/w=="; string uri = @"msds:ab?DefaultEndpointsProtocol=http&Container=testcontainer&Blob=testBlob30000x30000&AccountName=" + BlobConnectionAccountName + @"&AccountKey=" + BlobConnectionAccountKey; try { var ds = AzureBlobDataSet.CreateEmptySet(uri, schema); double[,] data = new double[1, 30000]; for (int i = 0; i < 30000; ++i) { data[0, i] = (double)i; } ds["vals"].PutData(new int[] { 29999, 0 }, data); var recvData = (double[, ])ds["vals"].GetData(new int[] { 29999, 0 }, new int[] { 1, 30000 }); for (int i = 0; i < 30000; ++i) { if (data[0, i] != recvData[0, i]) { throw new Exception("difference at " + i.ToString()); } } Console.WriteLine("Everything is successful!"); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); //delete test blob try { AzureBlobDataSetUri azureUri = null; if (DataSetUri.IsDataSetUri(uri)) { azureUri = new AzureBlobDataSetUri(uri); } else { azureUri = AzureBlobDataSetUri.ToUri(uri); } CloudStorageAccount storageAccount = CloudStorageAccount.Parse(azureUri.ConnectionString); CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); CloudBlobContainer container = blobClient.GetContainerReference(azureUri.Container); CloudPageBlob blob = container.GetPageBlobReference(azureUri.Blob); blob.DeleteIfExists(); Console.WriteLine("Deleted test blob successfully!"); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); }
public void ByteAndSByte3DDataTest() { const int xsize = 157; const int ysize = 231; const int zsize = 73; string blobUri = @"msds:ab?UseDevelopmentStorage=true&Container=testcontainer767x9&Blob=testblob767x10"; var xaxis = new SerializableVariableSchema("x", typeof(Int32), new string[] { "x" }, null); var yaxis = new SerializableVariableSchema("y", typeof(Int32), new string[] { "y" }, null); var zaxis = new SerializableVariableSchema("z", typeof(Int32), new string[] { "z" }, null); var ByteData = new SerializableVariableSchema("ByteData", typeof(Byte), new string[] { "x", "y", "z" }, null); var SByteData = new SerializableVariableSchema("SByteData", typeof(SByte), new string[] { "x", "y", "z" }, null); var xdim = new SerializableDimension("x", xsize); var ydim = new SerializableDimension("y", ysize); var zdim = new SerializableDimension("z", zsize); var scheme = new SerializableDataSetSchema(new SerializableDimension[] { xdim, ydim, zdim }, new SerializableVariableSchema[] { xaxis, yaxis, zaxis, ByteData, SByteData }, new System.Collections.Generic.Dictionary <string, object>()); AzureBlobDataSet.CreateEmptySet(blobUri, scheme); var x = new int[xsize]; var y = new int[ysize]; var z = new int[zsize]; var Bvals = new Byte[xsize, ysize, zsize]; var SBvals = new SByte[xsize, ysize, zsize]; for (int i = 0; i < xsize; ++i) { x[i] = i; } for (int i = 0; i < ysize; ++i) { y[i] = i; } for (int i = 0; i < zsize; ++i) { z[i] = i; } for (int i = 0; i < xsize; ++i) { for (int j = 0; j < ysize; ++j) { for (int k = 0; k < zsize; ++k) { Bvals[i, j, k] = (Byte)((i + j + k) % 256); SBvals[i, j, k] = (SByte)((i + j + k) % 256 - 128); } } } AzureBlobDataSet set = new AzureBlobDataSet(blobUri); set["x"].PutData(x); set["y"].PutData(y); set["z"].PutData(z); set["ByteData"].PutData(Bvals); set["SByteData"].PutData(SBvals); var receivedByteData = (Byte[, , ])set["ByteData"].GetData(); var receivedSByteData = (SByte[, , ])set["SByteData"].GetData(); for (int i = 0; i < xsize; ++i) { for (int j = 0; j < ysize; ++j) { for (int k = 0; k < zsize; ++k) { Assert.AreEqual((Byte)((i + j + k) % 256), receivedByteData[i, j, k]); Assert.AreEqual((SByte)((i + j + k) % 256 - 128), receivedSByteData[i, j, k]); } } } }
public void AzureBlobDataSetTest2() { const int xsize = 157; const int ysize = 231; const int zsize = 73; string blobUri = @"msds:ab?UseDevelopmentStorage=true&Container=testcontainer767x9&Blob=testblob767x10"; var xaxis = new SerializableVariableSchema("x", typeof(Int32), new string[] { "x" }, null); var yaxis = new SerializableVariableSchema("y", typeof(Int32), new string[] { "y" }, null); var zaxis = new SerializableVariableSchema("z", typeof(Int32), new string[] { "z" }, null); var data = new SerializableVariableSchema("data", typeof(Int32), new string[] { "x", "y", "z" }, null); var xdim = new SerializableDimension("x", xsize); var ydim = new SerializableDimension("y", ysize); var zdim = new SerializableDimension("z", zsize); var scheme = new SerializableDataSetSchema(new SerializableDimension[] { xdim, ydim, zdim }, new SerializableVariableSchema[] { xaxis, yaxis, zaxis, data }, new System.Collections.Generic.Dictionary <string, object>()); scheme.Metadata.Add("metaTest", new ObjectWithTypeString(new string[] { "test1", "test2", "test3" })); AzureBlobDataSet.CreateEmptySet(blobUri, scheme); var x = new int[xsize]; var y = new int[ysize]; var z = new int[zsize]; var vals = new int[xsize, ysize, zsize]; for (int i = 0; i < xsize; ++i) { x[i] = i; } for (int i = 0; i < ysize; ++i) { y[i] = i; } for (int i = 0; i < zsize; ++i) { z[i] = i; } for (int i = 0; i < xsize; ++i) { for (int j = 0; j < ysize; ++j) { for (int k = 0; k < zsize; ++k) { vals[i, j, k] = i * j * k; } } } AzureBlobDataSet set = new AzureBlobDataSet(blobUri); set["x"].PutData(x); set["y"].PutData(y); set["z"].PutData(z); set["data"].PutData(vals); var receivedData = (int[, , ])set["data"].GetData(); for (int i = 0; i < xsize; ++i) { for (int j = 0; j < ysize; ++j) { for (int k = 0; k < zsize; ++k) { Assert.AreEqual(i * j * k, receivedData[i, j, k]); } } } var meta = (string[])set.Metadata["metaTest"]; Assert.AreEqual("test1", meta[0]); Assert.AreEqual("test2", meta[1]); Assert.AreEqual("test3", meta[2]); }