/Cake.AzureStorage

Cake Addin for working with Azure Storage

Primary LanguageC#Apache License 2.0Apache-2.0

Cake.AzureStorage

A Cake Addin for Azure Storage.

Build status

Develop MyGet Build Status

cakebuild.net

Join the chat at https://gitter.im/cake-build/cake

Functionality

Supports uploading Blobs to Azure Blob Storage as well as deleting them by prefix and by name. More features to be added in the future.

Usage

To use the addin just add it to Cake call the aliases and configure any settings you want.

#addin "Cake.AzureStorage"
...

// How to package with no settings
Task("PackageNoSettings")
	.Does(() => {
     var settings = new AzureStorageSettings();
     settings.AccountName = "AccountName";
     settings.Key = "API KEY";
     settings.ContainerName = "ContainerName";
     settings.BlobName = "BlobName";
	   UploadFileToBlob(settings, GetFile("./path/to/file/to/upload"));
	});

// How to specify blob content type if necessary
Task("PackageSpecifyContentType")
	.Does(() => {
     var settings = new AzureStorageSettings();
     settings.AccountName = "AccountName";
     settings.Key = "API KEY";
     settings.ContainerName = "ContainerName";
     settings.BlobName = "BlobName";
	 settings.ContentType = "image/jpeg";
	   UploadFileToBlob(settings, GetFile("./path/to/file/to/upload"));
	});



Task("PackageAfterDelete")
	.Does(() => {
		var settings = new AzureStorageSettings();
		settings.AccountName = "AccountName";
		settings.Key = "API KEY";
		settings.ContainerName = "ContainerName";
		settings.BlobName = "NameToDelete";
		DeleteBlob(settings);
	
		settings.BlobName = "NameToUploadAs";
		var filePath = new FilePath("./location/of/file/to/upload");
		UploadFileToBlob(settings, filePath);
	});

Task("PackageAfterMultiDelete")
	.Does(() => {
		var settings = new AzureStorageSettings();
		settings.AccountName = "AccountName";
		settings.Key = "API KEY";
		settings.ContainerName = "ContainerName";
		settings.BlobName = "PrefixToSearchBy";
		
		var deletedLog = DeleteBlobsByPrefix(settings);
		foreach (var line in deletedLog){
			Information(line);
		}
		
		settings.BlobName = "NameToUploadAs";
		var filePath = new FilePath("./location/of/file/to/upload");
		UploadFileToBlob(settings, filePath);
	});

The Prefix used for deleting blobs is exactly like it sounds, a prefix of the file you want to delete. So if you have files named ABC-ImportantFile-1.0.0.1.exe, ABC-ImportantFile-1.0.0.2.exe, ABC-ImportantFile-1.0.0.3.exe, etc. You can delete these by specifying "ABC-ImportantFile-" as your blob name and it will get all files starting with that string.

That's it.

Hope you enjoy using.