GetPackageBackupsBlobContainer() static private method

static private GetPackageBackupsBlobContainer ( Microsoft.WindowsAzure.Storage.Blob.CloudBlobClient blobClient ) : Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer
blobClient Microsoft.WindowsAzure.Storage.Blob.CloudBlobClient
return Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer
コード例 #1
0
        IEnumerable <IListBlobItem> GetPackageBackupBlobItems()
        {
            var blobClient = CreateBlobClient();

            var packageBackupsBlobContainer = Util.GetPackageBackupsBlobContainer(blobClient);

            return(packageBackupsBlobContainer.ListBlobs());
        }
        string DownloadPackageBackup(
            string id,
            string version,
            string hash)
        {
            var blobClient = CreateBlobClient();
            var packageBackupsBlobContainer = Util.GetPackageBackupsBlobContainer(blobClient);
            var packageBackupFileName       = Util.GetPackageBackupFileName(
                id,
                version,
                hash);
            var packageBackupBlob = packageBackupsBlobContainer.GetBlockBlobReference(packageBackupFileName);
            var downloadPath      = Path.Combine(_tempFolder, packageBackupFileName);

            packageBackupBlob.DownloadToFile(downloadPath);
            return(downloadPath);
        }
コード例 #3
0
        public override void ExecuteCommand()
        {
            var blobClient  = CreateBlobClient();
            var storageName = StorageAccountName;

            Log.Trace("Getting all broken package backup files on storage account '{0}'.", storageName);
            var packageBackupsBlobContainer = Util.GetPackageBackupsBlobContainer(blobClient);

            var blobItems = GetPackageBackupBlobItems().ToList();

            var blobDirectories = blobItems
                                  .Select(bi => bi as CloudBlobDirectory)
                                  .Where(directory => directory != null)
                                  .ToList();

            var totalCount     = blobDirectories.Count;
            var processedCount = 0;

            Log.Trace(
                "Deleting {0} broken package backup files (out of {1} total blob items) on storage account '{2}'.",
                totalCount,
                blobItems.Count,
                storageName);

            Parallel.ForEach(blobDirectories, blobDirectory =>
            {
                try
                {
                    if (!WhatIf)
                    {
                        DeleteBlobDirectory(blobDirectory);
                    }
                    Interlocked.Increment(ref processedCount);
                    Log.Info(string.Format("Deleted broken package backup root directory '{0}' ({1} of {2}).", blobDirectory.Uri.Segments.Last(), processedCount, totalCount));
                }
                catch (Exception ex)
                {
                    Interlocked.Increment(ref processedCount);
                    Log.Error(
                        "Error deleting broken package backup root directory '{0}': {1} ({2} of {3}).",
                        blobDirectory.Uri.Segments.Last(), processedCount, totalCount, ex.Message);
                }
            });
        }