Cerulean

Azure Storage

Blob Storage

Blob Containers

Using Cerulean you can list the blob containers that are there in your storage account. When listing blob containers in a storage account, Cerulean also shows ACL (private, blob or container) for the blob container.

Using Cerulean you can create a new blob container in your storage account. When creating a blob container you can specify ACL (Private, Blob or Public) for the blob container as well.

Using Cerulean you can delete one or more blob containers from your storage account.

This is a neat feature in Cerulean where you can delete all blob containers from a storage account with a single click. This is typically useful when you want to reinitialize your storage account where instead of selecting all blob containers individually and deleting them, you can simply delete all blob containers in one click.

Assuming you have a large number of blob containers in your storage account and you need to work with just one particular blob container. Navigating through the list of blob containers to find that particular blob container can be quite cumbersome and counter productive.

This is another productivity feature of Cerulean where you can search for blob container(s) you are looking for. You can perform a "prefix" search (i.e. find all blob containers, names of which begin with certain characters) or "contains" search (i.e. find all blob containers, names of which contain certain characters).

This is yet another productivity feature in Cerulean wherein you can quickly open a blob container by simply typing the name of that blob container. This becomes quite handy when you have a large number of blob containers in your storage account and you don't want to navigate through the list to find the blob container you want to work with.

Using Cerulean you can view system defined properties like etag, last modified date, lease status etc. of a blob container.

Using Cerulean you can manage (view and/or update) metadata (user-defined key/value pair) of a blob container.

Using Cerulean you can manage ACL of a blob container. You can change the blob container's ACL by choosing between "Private", "Blob" or "Container" access level.

Using Cerulean you can manage (view or update) access policies for a blob container. You can add new access policy, update existing policies or delete access policies using Cerulean. Access policies are used for creating shared access signature for that blob container or a blob insider that blob container.

Using Cerulean you can create Shared Access Signature (SAS) for a blob container. You can create an ad-hoc SAS token/URL (i.e. without using any blob container access policy) or a SAS token/URL with a blob container shared access policy.

Using Cerulean you can manage lease on a blob container. Lease protects a blob container from accidental deletes and updates.

You can acquire a lease on the blob container. You can acquire both a short term lease (valid for 15 - 60 seconds) or infinite lease on a blob container. If you know the lease id of the lease on blob container, then you can either renew the lease, change the lease (to get a new lease id) or release a lease all together. You can also break a lease. When breaking lease, Cerulean gives you an option to break the lease immediately or wait for some time (between 1 and 60 seconds) before breaking the lease.

Using Cerulean you can easily upload files and folders from your local computer to a blob container. You can select one or more files and upload them. You can also select one or more folders and upload them. You can also drag files and folders from your local computer and drop them on a blob container node in the UI to upload them. Upload functionality in Cerulean is quite flexible and feature rich. To learn more about upload functionality, see the upload section below.

Using Cerulean you can download all blobs from a blob container to your local computer. Download blobs functionality in Cerulean is quite flexible and feature rich. To learn more about download functionality, see the download section below.

This is a neat feature in Cerulean where you can copy a blob container to application clipboard and then paste that container to another blob container or a file share in same or different storage account.

What paste does is that it initiates a background task and there it will continuously list the blobs in the source container (what was copied) and copies those blobs asynchronously in the target blob container or a file share. Target blob container or file share can be in the same or different storage account.

Considering copy blob operation is an asynchronous server-side operation, you can instruct Cerulean to wait for the server-side copy operation to complete before marking a blob as completely copied.

By default Azure Storage allows you to take a snapshot of an individual blob in a blob container. Cerulean includes a neat convenience utility using which in a single click you can take a snapshot of entire blob container i.e. it will take the snapshot of all blobs in that blob container.

Consider a scenario where you need to change "cache-control" property of all blobs in a blob container. By default, Azure Storage only allows you to change the property of an individual blob. Cerulean includes a neat convenience utility using which in a single click you can change properties like cache control, content language, content encoding and content type of all blobs in a blob container.

Consider a scenario where you need to change access tier of all blobs in a blob container from "hot" to "archive". By default, Azure Storage only allows you to change the access tier of an individual blob. Cerulean includes a neat convenience utility using which in a single click you can change access tier of all blobs in a blob container. For example, in a single click you can move all blobs in a blob container from "hot" access tier to "cool" or "archive" access tier.

This is another convenience utility in Cerulean using which you can export the list of all blobs in a blob container in CSV format and save it on your computer. By default the exported list contains basic properties of the blobs like blob name, URL, size, and content type but you can export other properties of blob like created/last modified date, access tier, etag and more as well.

When a blob container is deleted, it is actually marked for deletion and the actual delete process happens via a garbage collection process. Depending on the number of blobs in a blob container it may take some time for the blob container to get actually deleted. During that time you cannot create a blob container by the same name.

Now consider a scenario where you want to delete all blobs in a blob container but not delete the container itself. To address this feature Cerulean has clear blob container feature where it enumerates all blobs in the blob container and then delete all blobs without deleting the blob container.

Blobs

Using Cerulean you can list blobs in a blob container. Both hierarchical (virtual folders/blobs) and flat listing is supported.

When listing blobs by default the blobs in a blob container are presented in hierarchical format i.e. they are presented in form of virtual folders and blobs. However you can easily toggle the view to flat listing and blobs are presented with their full name.

Pagination to view blobs is supported by default and you can easily navigate from one page of results to another page using Cerulean.

Apart from uploading files and folders from your local computer to your blob container, Cerulean includes some convenience utilities to create blobs.

Using Cerulean you can create an empty append blob or choose a local file and save it as an append blob. Similarly you can create an empty page blob or a page blob from a local file.

Cerulean prevents you from creating blobs of a certain type if that blob type is not supported by the storage account. For example, Cerulean will prevent you from creating an append blob in a "BlobStorage" kind of storage account.

Using Cerulean you can easily create a virtual folder inside a blob container.

Considering virtual folders cannot persist without blobs in them, Cerulean gives you an option of persisting that virtual folder by automatically creating a zero byte blob so that you can upload blobs in that virtual folder later on.

Consider a scenario where you have too many blobs in your blob container and you would like to find out certain blobs. Cerulean includes a convenient utility using which you can search for blobs in a blob container.

You can search for blobs using either a "prefix" (i.e. find all blobs, names of which begin with certain characters) or "contains" search (i.e. find all blobs, names of which contain certain characters).

Using Cerulean you can easily delete one or more blobs and virtual folders. While deleting, you can instruct Cerulean to delete a blob only if does not have any snapshots or delete base blob and its snapshots. Blob deletion happens via a background task.

In case of blobs, Cerulean enumerates over blobs and delete them one by one. In case of virtual folders, Cerulean lists the blobs in that virtual folder and then deletes those blobs one by one.

Using Cerulean you can manage properties of a blob. You can view system defined properties like created date, last modified date, etag, size etc. of a blob.

You can also manage properties like "cache control", "content encoding", "content language", "content type", "content md5", "access tier" etc. of a blob. Using Cerulean you can easily update these properties of a blob.

Another useful feature in Cerulean is that you can change these properties of more than one blob in bulk without changing the properties of each blob individually. For example, if you want to change "cache control" property of many blobs together, you can easily do so with Cerulean by simply selecting the blobs (and virtual folders) and then specifying the new property value. Cerulean takes care of the rest for you.

Using Cerulean you can manage (view and/or update) metadata (user-defined key/value pair) of a blob.

Using Cerulean you can manage snapshots of a blob. A snapshot is read-only copy of the blob.

Using Cerulean you list all snapshots of a blob, create a new snapshot, delete snapshot of a blob. You can also promote a snapshot. Promoting a snapshot will overwrite the base blob with the blob snapshot. You can download snapshot of a blob as well on your local computer.

Using Cerulean you can create a Shared Access Signature (SAS) for a blob. You can create an ad-hoc SAS token/URL (i.e. without using any blob container access policy) or a SAS token/URL with a blob container shared access policy.

Using Cerulean you can manage lease on a blob. Lease protects a blob from accidental deletes and updates.

You can acquire a lease on the blob. You can acquire both a short term lease (valid for 15 - 60 seconds) or infinite lease on a blob. If you know the lease id of the lease on blob, then you can either renew the lease, change the lease (to get a new lease id) or release a lease all together. You can also break a lease. When breaking lease, Cerulean gives you an option to break the lease immediately or wait for some time (between 1 and 60 seconds) before breaking the lease.

Using Cerulean you can easily upload files and folders from your local computer to a blob container. You can select one or more files and upload them. You can also select one or more folders and upload them. You can also drag files and folders from your local computer and drop them on a blob container node in the UI to upload them. Upload functionality in Cerulean is quite flexible and feature rich. To learn more about upload functionality, see the upload section below.

Using Cerulean you can download one more blobs and virtual folders from a blob container to your local computer. Download blobs functionality in Cerulean is quite flexible and feature rich. To learn more about download functionality, see the download section below.

This is another unique feature of Cerulean where you can simply double click a blob to open and view it. Under the covers, Cerulean downloads the blob in temp folder and tries to open it with registered application for that blob type.

This is a neat feature in Cerulean where you can copy one or more blobs and virtual folders to application clipboard and then paste those items to another blob container or a file share in same or different storage account.

What paste does is that it initiates a background task and there it copies the blobs from source to target asynchronously. In case of virtual folders, Cerulean will continuously list the blobs in the source virtual folder (what was copied) and copies those blobs asynchronously in the target blob container or a file share. Target blob container or file share can be in the same or different storage account.

Considering copy blob operation is an asynchronous server-side operation, you can instruct Cerulean to wait for the server-side copy operation to complete before marking a blob as completely copied.

Using Cerulean you can rename a blob or a virtual folder. Please note that Azure Storage does not natively support rename operation. The way Cerulean accomplishes this is by copying the existing blob to a new blob with the new name and then deleting the original blob.

In case of virtual folder renaming, Cerulean will list the blobs in the virtual folder. Once the blobs are listed, it copies the existing blob to a new blob by replacing the existing virtual folder name with new virtual folder name. Once the copy is complete, Cerulean simply deletes the old blob.

Using Cerulean you can easily change access tier (hot, cool, and archive) of one or more blobs and or virtual folders.

When changing access tier of multiple items (blobs and/or virtual folders), a background task is initiated and that task takes care of performing the operations on selected blobs and virtual folders.

In case of blobs, Cerulean simply goes through the list of blobs and then changes their access tier. In case of virtual folder, Cerulean first lists the blobs in the virtual folder and then changes the access tier of blobs fetched.

Using Cerulean you can easily view the soft deleted blobs that are there in a blob container. Soft deleted blobs are the ones that are marked for deletion but have not been deleted yet. Please see blob service section below to learn more about soft deletes.

Using Cerulean you can easily undelete a soft deleted blob.

You can customize the behavior of viewing soft deleted blobs. You can instruct Cerulean whether or not you wish to see soft deleted blobs when you're listing blobs in a blob container.

Upload

Using Cerulean you can upload local files and folders from your local computer to a blob container. For uploading all blob types (block, append and page) are supported.

You can select one or more files from your local computer and upload them. You can also select one or more folders from your local computer and upload them. You can drag files and folders from your local computer and drop them either on blob container node or in blob viewer grid to upload them.

In Cerulean local files and folders are uploaded via a background task.

The benefit of uploading happening via a background task is that your UI is not impacted at all and you can continue to work in the UI without any sluggishness. Another major benefit of uploading via background task is that you can close the application and the background task can continue. You don't have to keep the application running while the upload process is running.

You can monitor the progress of the upload tasks by going into the task manager in the application. You can also cancel the upload task. Furthermore if a file fails to upload because of network issue, you can retry uploading that file from the task manager itself.

Cerulean uploads the files and folders in parallel. It smartly detects how many parallel operations should be running and uploads the files in parallel. In case of large file uploads where a file is split into chunks for uploading, even the chunks are uploaded in parallel. This enables much faster uploads.

When uploading a local file as page blob, upload happens sparsely. What that means is that only the pages that have non-zero bytes are uploaded. If Cerulean detects that a page has all zero bytes, then it skips uploading that page. This results in faster blob uploads.

Large files are uploaded by splitting the file in smaller chunks and uploading those chunks. Chunks are uploaded in parallel. This result in faster upload of large files.

Furthermore you're in control of the chunk size. This gives you great benefit when you're on a poor network connection as you can reduce the chunk size.

Assuming you're uploading HTML, CSS, JS, and image files for your website in blob storage and would want them to be stored in compressed format in blob storage using either GZIP or DEFLATE compression algorithm.

Cerulean can do this work for you. All you need to do is tell the extensions of the file names (e.g. .css, .js etc.) that you wish to compress before uploading and the compression algorithm (GZIP or DEFLATE) to use and Cerulean does the job of compressing the files and uploading them. While uploading compressed file, it automatically sets the content encoding property of the blob to either "gzip" or "deflate" based on the compression algorithm. Furthermore, if Cerulean detects that the compressed file size is more than the original file size, it picks up the original file instead of compressed one.

Uploading process in Cerulean is quite flexible. Other than the settings descibed above like deciding the chunk size, compression settings etc.), you can control the overwrite behavior i.e. what Cerulean should do in case it finds a blob by the same name as that of the local file. You can instruct Cerulean to either overwrite the blob or not overwrite it. Furthermore you can specify the file name extensions that should be uploaded as page blobs (e.g. .vhd, .vhdx etc.).

Download

Using Cerulean you can download one or more blobs and/or virtual folders from a blob container to your local computer. You can also download an entire blob container as well to your local computer.

In Cerulean blobs are downloaded via a background task.

The benefit of downloading happening via a background task is that your UI is not impacted at all and you can continue to work in the UI without any sluggishness. Another major benefit of downloading via background task is that you can close the application and the background task can continue to run. You don't have to keep the application running while the download process is running.

You can monitor the progress of the download tasks by going into the task manager in the application. You can also cancel the download task. Furthermore if a blob fails to download because of network issue, you can retry downloading that blob from the task manager itself.

Cerulean downloads the blobs in parallel. It smartly detects how many parallel operations should be running and downloads the blobs in parallel. In case of a large blob download, a blob is split into chunks for downloading and then these chunks are downloaded in parallel. This enables much faster downloads.

When downloading page blobs, download happens sparsely. What that means is that Cerulean will only download those pages which have some data in it. Any page with no data (i.e. all bytes are zeroes) are not downloaded. This results in fast downloads.

When downloading large blobs, Cerulean automatically splits the blob in smaller chunks and then download those chunks. These chunks are downloaded in parallel. This results in faster downloads.

If a blob is compressed with GZIP or DEFLATE compression algorithm i.e. blob's content encoding is set as either "gzip" or "deflate", you can instruct Cerulean to automatically decompress it after download. You don't have to do anything special to decompress that file.

This is another neat feature in Cerulean where you can instruct Cerulean to set the date/time of the downloaded file to be that of the blob's last modified date/time instead of current date/time of the system.

Blob Service

Using Cerulean you can configure storage analytics settings for the blob service in your storage account.

You can configure (view/update) logging, minute metrics and hourly metrics settings for the blob service in your storage account.

Using Cerulean you can configure CORS settings for the blob service in your storage account.

Using Cerulean you can list the CORS rules defined for the blob service, add new CORS rule, update existing CORS rules or delete CORS rules.

Azure Storage has this neat feature wherein when you delete a blob, it is not actually deleted at that time. Rather it is soft deleted i.e. it is marked for deletion and unless you undelete that blob, it will automatically be deleted after certain time.

Using Cerulean you can configure the soft delete settings for blob service. You can enable/disable this setting and if this setting is enabled you can specify for how many days a blob should remain in "soft deleted" state before being deleted permanently.

You can host static websites (just HTML, JavaScript, CSS) in your blob storage in a storage account. However before you can do that, you will need to enable this feature.

Using Cerulean you can enable this feature. Once this feature is enabled, a special blob container by the name "$web" is created in your storage account and you can host your static website in that blob container.