This Tool can upload files to a azure storage account and sets the content type of this file. It also can create, delete and list container.
go get github.com/schreibe72/abc
You can provided the access key to your azure storage account per command line or you can store it in an config file.
abc save credentials -h
Save Key and Account
Usage:
abc save credentials [flags]
Flags:
-f, --filename string Filename to store Config (default "/Users/manfred/.azure/abc-config.json")
Global Flags:
-a, --account string Azure Storage Account
-k, --key string Azure Storage Account Key
-v, --verbose Verbose Output
Example:
abc save credentials -k kXRpCKCzMak5+RbxqNixfDGVnBgmx8ywiMtIHIiLo+GkedOTfUvzMOy4HJlSrxEQgURzTx654uoAzYmjTazvrQ== -a teststorageaccount0
this subcommand uploads files or data from a pipe to a Block Blob. If the Block Blob gets bigger than 195GB, this tool split the blob in parts and create a blobname-bundle.json file. If the data comes per pipe and you know that it is bigger than 195GB you should use the -big switch. Than every file gets an index, also the first file. Remember it is not possible to rename blobs.
abc upload -h
uploads a file to a selected container and stets the contentType
Usage:
abc upload [flags]
Flags:
-b, --big spilt file which are bigger than 195GB in part Blockblobs
-n, --blobname string The Blob File Name (required for pipe)
-C, --cacheControl string CacheControl for the uploaded file
-c, --container string a Azure Container (required)
-E, --contentEncoding string ContentEncoding for the uploaded file
-L, --contentLanguage string ContentLanguage for the uploaded file
-T, --contentType string Contenttype for the uploaded file
-f, --filename string Filename to upload (required if no pipe)
-p, --pipe incoming Pipe
-w, --worker int download Worker Count (default 10)
Global Flags:
-a, --account string Azure Storage Account
-k, --key string Azure Storage Account Key
-v, --verbose Verbose Output
Upload a big File per pipe:
tar cz /var/lib/mysql | abc upload -b -p -n backup-db.tgz -c backup-20160807
Upload a file(with automatic contentType by extension):
abc upload -c pictures -n cat.jpg -C "cache-control: private, max-age=60, no-cache"
this subcommand let you download a blob to a file or put the output to stdout. If the blobfile is a bundle and there is blobname-bundle.json file all parts will be downloaded and chained in to one file or output to stdout.
abc download -h
Downloads a blob file selected in you storage account and selected container
Usage:
abc download [flags]
Flags:
-n, --blobname string The Blob File Name (required)
-c, --container string a Azure Container (required)
-f, --filename string Filename to download
-p, --pipe outgoing Pipe
-w, --worker int download Worker Count (default 10)
Global Flags:
-a, --account string Azure Storage Account
-k, --key string Azure Storage Account Key
-v, --verbose Verbose Output
download a blob to stdout
abc download -c backup -n mysql.tar.gz -p | tar xz
download a blob to file
abc download -c backup -n mysql.tar.gz
abc container list -h
Here you can list all containers in your storage account. You can also list
all container by a certain prefix.
Usage:
abc container list [flags]
Flags:
-p, --prefix string a Azure Container Prefix
Global Flags:
-a, --account string Azure Storage Account
-k, --key string Azure Storage Account Key
-v, --verbose Verbose Output
list all containers
abc container list
list all containers starts with prefix
abc container list -p backup
abc container show -h
show the containing blobs in your storage account
Usage:
abc container show [flags]
Flags:
-c, --container string a Azure Container (required)
-p, --prefix string a Azure Blob Prefix
Global Flags:
-a, --account string Azure Storage Account
-k, --key string Azure Storage Account Key
-v, --verbose Verbose Output
show content of a container (all blobs)
abc container show -c pictures
show content of container with blob prefix
abc container show -c pictures -p /test/
abc container delete -h
Here you can delete a container in your storage account
Usage:
abc container delete [flags]
Flags:
-c, --container string a Azure Container (required)
Global Flags:
-a, --account string Azure Storage Account
-k, --key string Azure Storage Account Key
-v, --verbose Verbose Output
delete container
abc container delete -c pictures
abc container create -h
Here you can create a container in your storage account
Usage:
abc container create [flags]
Flags:
-c, --container string a Azure Container (required)
Global Flags:
-a, --account string Azure Storage Account
-k, --key string Azure Storage Account Key
-v, --verbose Verbose Output
create container
abc container create -c pictures
abc blob delete -h
delete selected blob files in your storage account
Usage:
abc blob delete [flags]
Flags:
-n, --blobname string The Blob File Name (required)
-c, --container string a Azure Container (required)
Global Flags:
-a, --account string Azure Storage Account
-k, --key string Azure Storage Account Key
-v, --verbose Verbose Output
delete blob
abc blob delete -c pictures -n /test/cat.jpg
abc save bash -h
Save Bash Complition
Usage:
abc save bash [flags]
Flags:
-f, --filename string Filename to store Bash Complitition
Global Flags:
-a, --account string Azure Storage Account
-k, --key string Azure Storage Account Key
-v, --verbose Verbose Output
Install bash complition
abc save bash -f ~/abc.completion.sh
echo "source ~/abc.completion.sh" >> .bash_profile
On Mac OS X there is an _get_comp_words_by_ref command not found error. This can be fixed with:
brew install bash-completion
bash completion works only with bash version 4. If there is an flaghash["${flagname}"]: bad array subscript error you need to Install bash version 4. For mac:
brew install bash
You also have to configure your terminal programm to use this shell.
This project is published under Apache 2.0 License.