コード例 #1
0
 private static void SaveIndexFile() {
     Console.Write("Saving index...");
     var indexItems = from o in operations
                      where o.OperationType != JobOperationType.Delete && o.OperationType != JobOperationType.Undefined
                      select new KeyValuePair<string, string>(o.StorageUri.AbsolutePath.Remove(0, WEB_CONTAINER_NAME.Length + 2), o.ContentHash);
     storageIndex = new StorageIndex(indexItems);
     storageIndexBlob.Properties.ContentType = "application/json";
     storageIndex.Save(storageIndexBlob);
     Console.WriteLine("OK");
 }
コード例 #2
0
        private static void InitializeStorage() {
            try {
                // Get storage account
                Console.Write("Initializing Azure Storage...");
                var result = CloudStorageAccount.TryParse(config.StorageConnectionString, out var account);
                if (!result) {
                    Console.WriteLine("Failed!");
                    Console.WriteLine("Cannot parse connection string.");
                    Environment.Exit(ERRORLEVEL_FAILURE);
                }
                credentials = account.Credentials;
                var client = account.CreateCloudBlobClient();
                Console.WriteLine("OK");

                // Get web container
                Console.Write("Getting web container...");
                webContainer = client.GetContainerReference(WEB_CONTAINER_NAME);
                var containerExists = webContainer.ExistsAsync().Result;
                if (!containerExists) {
                    Console.WriteLine("Failed!");
                    Console.WriteLine($"The {WEB_CONTAINER_NAME} container was not found.");
                    Environment.Exit(ERRORLEVEL_FAILURE);
                }
                Console.WriteLine($"OK, {webContainer.Uri}");

                // Get index container
                Console.Write("Getting index container...");
                var indexContainer = client.GetContainerReference(SYS_CONTAINER_NAME);
                indexContainer.CreateIfNotExistsAsync().Wait();
                Console.WriteLine($"OK, {indexContainer.Uri}");

                // Get storage index file
                Console.Write("Loading storage index...");
                storageIndexBlob = indexContainer.GetBlockBlobReference(STORAGE_INDEX_NAME);
                storageIndex = StorageIndex.LoadOrCreateEmpty(storageIndexBlob);
                Console.WriteLine($"OK, {storageIndex.Count} items");

            } catch (Exception ex) {
                Console.WriteLine("Failed!");
                Console.WriteLine(ex.Message);
                Environment.Exit(ERRORLEVEL_FAILURE);
            }
        }