Azure storage service supports two types of blobs (blob, or BLOB, stand for Binary Large OBject, i.e. an unstructured binary data): block and page blobs. Blob type is selected when blob is created and then it can’t be changed. Although both blob types allow for storage of large binary objects in Azure, they are optimized for different storage scenarios.
Block blobs are composed of blocks, each of them can have different size and identified by block id (block is will be used to uniquely identify block within container). Each block can’t be no more than 64Mb is size and block blob can’t have a maximum of 50,000 blocks, so the maximum size of block blob is 200GB. Blocks could be uploaded to storage service in parallel, and then assembled into a block blob by a single commit operation. That makes block blobs ideal for streaming upload scenarios (when large object is split into pieces what are uploaded in parallel to decrease upload time and then assembled back into a single object), like file sharing application. Streaming content download is also working better with block blobs as it makes sense to sequentially download blocks to the client.
Page blobs are a collection of 512-byte pages. When creating page blob you’ll need to specify maximum size of the blob and that size can’t be exceeded. Page blobs are optimized for high-speed random access read and write operations, and perfect for storing virtual file systems (like VHDs) when client is responsible for organizing data inside the blob. Pages in page blob are assessed by proving an offset in bytes from the beginning of the blob. That offset must alight to the 512 byte page boundary, because only entire page(s) could be read or written. The maximum page blob size is 1TB.