Ejemplo n.º 1
0
        public DataSetUri ResultDataSetUri(string resultId, bool canWrite)
        {
            var r = new AzureBlobDataSetUri()
            {
                Blob = ResultBlobName(resultId), Container = FetchRequestContainer
            };

            if (isDevelopmentStorage)
            {
                r.UseDevelopmentStorage = true;
            }
            else
            {
                r.AccountName = resultsContainer.ServiceClient.Credentials.AccountName;
                if (canWrite)
                {
                    r.AccountKey = storageAccountKey;
                    r.DefaultEndpointsProtocol = EndpointProtocol.https;
                }
                else
                {
                    r.OpenMode = ResourceOpenMode.ReadOnly;
                }
            }
            return(r);
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            string  uri     = @"msds:nc?file=\\vienna.mslab.cs.msu.su\ClimateData\air.sig995.2007.nc&openMode=readOnly";
            DataSet d       = DataSet.Open(uri);
            string  blobUri = @"msds:ab?UseDevelopmentStorage=true&Container=testcontainer&Blob=testblob";
            DataSet blobD   = /*new AzureBlobDataSet(blobUri);*/ AzureBlobDataSet.ArrangeData(blobUri, d, new SerializableVariableSchema[0]);

            AzureBlobDataSetUri azureUri = new AzureBlobDataSetUri(blobUri);

            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(azureUri.ConnectionString);

            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

            // Retrieve a reference to a container
            CloudBlobContainer container = blobClient.GetContainerReference(azureUri.Container);

            CloudPageBlob blob = container.GetPageBlobReference(azureUri.Blob);
            Int32         schemeSize;

            using (BinaryReader br = new BinaryReader(blob.OpenRead()))
            {
                //schemeSize = br.ReadInt32();
                UTF8Encoding utf8   = new UTF8Encoding();
                byte[]       buffer = new byte[8192];
                br.BaseStream.Read(buffer, 0, 8192);
                string sizeStr = utf8.GetString(buffer);
                Console.WriteLine(sizeStr);
                //schemeSize = Int32.Parse(sizeStr);
                //br.BaseStream.Seek(512, SeekOrigin.Begin);
                //DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(DataSetInfo));
                //byte[] scheme = new byte[schemeSize];
                //br.BaseStream.Read(scheme, 0, schemeSize);
                //info = (DataSetInfo)serializer.ReadObject(new MemoryStream(scheme));
            }

            //foreach (var i in blobD.Variables) Console.WriteLine(i.Name);

            Single[] a = (Single[])blobD["lat"].GetData();

            blobD["lat"].PutData(a);

            //foreach (var i in a) Console.WriteLine(i.ToString());

            foreach (var i in blobD["lat"].Metadata)
            {
                Console.WriteLine(i.Key.ToString() + " = " + i.Value.ToString());
            }
            foreach (var i in blobD.Metadata)
            {
                Console.WriteLine(i.Key.ToString() + " = " + i.Value.ToString());
            }

            Console.ReadLine();
        }
Ejemplo n.º 3
0
        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();
        }