Use the Azure C++ SDK to write a CLI (command line interface) for uploading, downloading, deleting and listing content on Azure Blob storage.
The CLI should be capable of:
- multiple parallel TCP/IP connections to transfer a single object (this is already part of the SDK)
- encrypted transfers (this is already part of the SDK)
- support Microsoft Managed Keys (this is already part of the SDK)
- transfer from stdin to blob storage (see notes below)
- transfer from blob storage to stdout (see notes below)
- list contents of 'folder' with objects, their size, and subfolders (SDK)
- transfer metadata from one object to another object in Azure storage (SDK)
- delete an object (SDK)
- error detection and handling for connection problems, object problems, or other issues
Testcases: a feature is considered 'working' only if there are functioning, passing testcases for it.
Example code to get you started for uploading, downloading, deleting and listing content is available at: [login to view URL]
The CLI will be used to do streaming transfer of 250GB files, so it must not buffer the whole file in memory, only a small (say 32-128MB) portion of it. The download_to_stream and upload_from_stream can be used for this.
Feel free to use C++11 if convenient.
The CLI interface details are quite simple and will be provide in more detail.
Azure SDK is available at: [login to view URL]
Note: For using stdin/stdout as input/output to Azure SDK, one can derive concurrency::streams::istream from std::istream
[login to view URL]
Similarly for std::ostream
(Yes, I could write this myself, but I am time constrained)
9 freelancere byder i gennemsnit $1194 på dette job
C++11 would make it easier for me to do this project, I'll be happy to help you with this. I've used the Azure SDK in the past for another project of mine.