Differences Between the Storage Emulator and Azure Storage Services
Updated: October 1, 2014
The Microsoft Azure storage emulator is a local emulator for Windows Azure Storage that you can use to build and test your application without incurring any cost. Some differences exist between using the storage emulator and Windows Azure Storage in the cloud.
|The storage emulator is available as part of the Microsoft Azure SDK. You can also download the storage emulator as a standalone package. To configure the storage emulator, you must have administrative privileges on the computer.|
The following general differences apply to storage services:
The storage emulator supports only a single fixed account and a well-known authentication key. This account and key are the only credentials permitted for use with the emulated storage services. They are:
Account name: devstoreaccount1 Account key: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==
Important The authentication key supported by the storage emulator is intended only for testing the functionality of your client authentication code. It does not serve any security purpose. You cannot use your production storage account and key with the storage emulator. You should not use the emulated storage account with production data.
The storage emulator is not a scalable storage service and will not support a large number of concurrent clients.
The URI scheme supported by the storage emulator differs from the URI scheme supported by the cloud storage services. The development URI scheme specifies the account name as part of the hierarchical path of the URI, rather than as part of the domain name. This difference is due to the fact that domain name resolution is available in the cloud but not on the local computer. For more information about URI differences in the development and production environments, see Using storage service URIs in Using the Azure Storage Emulator for Development and Testing.
Beginning with version 3.1, the storage emulator account supports read-access geo-redundant replication (RA-GRS). In the emulator, all accounts have RA-GRS enabled, and there is never any lag between the primary and secondary replicas. The Get Blob Service Stats, Get Queue Service Stats, and Get Table Service Stats operations are supported on the account secondary and will always return the value of the LastSyncTime response element as the current time according to the underlying SQL database.
For programmatic access to the secondary with the storage emulator, use the Storage Client Library for .NET version 3.2 or later. See the Storage Client Library Reference for details.
The File service and SMB protocol service endpoints are not supported in the storage emulator.
The following differences apply to the Blob service:
The Blob service emulator only supports blob sizes up to 2 GB.
A Put Blob operation may succeed against a blob that exists in the storage emulator and has an active lease, even if the lease ID has not been specified as part of the request.
The following differences apply to the Table service:
Date properties in the Table service in the storage emulator support only the range supported by SQL Server 2005 (For example, they are required to be later than January 1, 1753). All dates before January 1, 1753 are changed to this value. The precision of dates is limited to the precision of SQL Server 2005, meaning that dates are precise to 1/300th of a second.
The storage emulator supports partition key and row key property values of less than 512 bytes each. Additionally, the total size of the account name, table name, and key property names together cannot exceed 900 bytes.
The total size of a row in a table in the storage emulator is limited to less than 1 MB.
In the storage emulator, properties of data type Edm.Guid or Edm.Binary support only the Equal (eq) and NotEqual (ne) comparison operators in query filter strings.
There are no differences specific to the Queue service.
The following differences apply to the Windows Azure drives:
When mounting a Windows Azure drive from the Microsoft Azure compute emulator, the drive must be backed by a page blob created in the storage emulator. It is not possible to mount a drive from the compute emulator that is backed by a page blob in Windows Azure. This behavior differs from that of the other Windows Azure storage services, which can be accessed in the cloud from code that is running in the compute emulator.
When creating a new Windows Azure drive from the compute emulator, be sure to specify the credentials for the emulated storage account.