Constants
using System.Collections.Generic;
namespace Azure.Storage
{
internal static class Constants
{
internal static class Errors
{
public const string InvalidVersionHeaderMessage = "The provided service version is not enabled on this storage account. Please see https://learn.microsoft.com/rest/api/storageservices/versioning-for-the-azure-storage-services for additional information.\n";
}
internal static class ConnectionStrings
{
internal const int BlobEndpointPortNumber = 10000;
internal const int QueueEndpointPortNumber = 10001;
internal const int TableEndpointPortNumber = 10002;
internal const string UseDevelopmentSetting = "UseDevelopmentStorage";
internal const string DevelopmentProxyUriSetting = "DevelopmentStorageProxyUri";
internal const string DefaultEndpointsProtocolSetting = "DefaultEndpointsProtocol";
internal const string AccountNameSetting = "AccountName";
internal const string AccountKeyNameSetting = "AccountKeyName";
internal const string AccountKeySetting = "AccountKey";
internal const string BlobEndpointSetting = "BlobEndpoint";
internal const string QueueEndpointSetting = "QueueEndpoint";
internal const string TableEndpointSetting = "TableEndpoint";
internal const string FileEndpointSetting = "FileEndpoint";
internal const string BlobSecondaryEndpointSetting = "BlobSecondaryEndpoint";
internal const string QueueSecondaryEndpointSetting = "QueueSecondaryEndpoint";
internal const string TableSecondaryEndpointSetting = "TableSecondaryEndpoint";
internal const string FileSecondaryEndpointSetting = "FileSecondaryEndpoint";
internal const string EndpointSuffixSetting = "EndpointSuffix";
internal const string = "SharedAccessSignature";
internal const string DevStoreAccountName = "devstoreaccount1";
internal const string DevStoreAccountKey = "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==";
internal const string SecondaryLocationAccountSuffix = "-secondary";
internal const string DefaultEndpointSuffix = "core.windows.net";
internal const string DefaultBlobHostnamePrefix = "blob";
internal const string DefaultQueueHostnamePrefix = "queue";
internal const string DefaultTableHostnamePrefix = "table";
internal const string DefaultFileHostnamePrefix = "file";
}
internal static class HeaderNames
{
public const string XMsPrefix = "x-ms-";
public const string MetadataPrefix = "x-ms-meta-";
public const string ErrorCode = "x-ms-error-code";
public const string RequestId = "x-ms-request-id";
public const string ClientRequestId = "x-ms-client-request-id";
public const string Date = "x-ms-date";
public const string = "SharedKey";
public const string Authorization = "Authorization";
public const string ContentEncoding = "Content-Encoding";
public const string ContentLanguage = "Content-Language";
public const string ContentLength = "Content-Length";
public const string ContentMD5 = "Content-MD5";
public const string ContentType = "Content-Type";
public const string IfModifiedSince = "If-Modified-Since";
public const string IfMatch = "If-Match";
public const string IfNoneMatch = "If-None-Match";
public const string IfUnmodifiedSince = "If-Unmodified-Since";
public const string Range = "Range";
public const string ContentRange = "Content-Range";
public const string VersionId = "x-ms-version-id";
public const string LeaseTime = "x-ms-lease-time";
public const string LeaseId = "x-ms-lease-id";
public const string LastModified = "Last-Modified";
public const string ETag = "ETag";
public const string CopySourceErrorCode = "x-ms-copy-source-error-code";
public const string Version = "x-ms-version";
}
internal static class ErrorCodes
{
public const string InternalError = "InternalError";
public const string OperationTimedOut = "OperationTimedOut";
public const string ServerBusy = "ServerBusy";
public const string ContainerAlreadyExists = "ContainerAlreadyExists";
public const string BlobAlreadyExists = "BlobAlreadyExists";
public const string InvalidHeaderValue = "InvalidHeaderValue";
}
internal static class Blob
{
internal static class Append
{
public const int Pre_2022_11_02_MaxAppendBlockBytes = 4194304;
public const int MaxAppendBlockBytes = 104857600;
public const int MaxBlocks = 50000;
}
internal static class Block
{
public const int DefaultConcurrentTransfersCount = 5;
public const int DefaultInitalDownloadRangeSize = 268435456;
public const int Pre_2019_12_12_MaxUploadBytes = 268435456;
public const long MaxUploadBytes = 5242880000;
public const int MaxDownloadBytes = 268435456;
public const int Pre_2019_12_12_MaxStageBytes = 104857600;
public const long MaxStageBytes = 4194304000;
public const int MaxBlocks = 50000;
}
internal static class Page
{
public const int PageSizeBytes = 512;
public const int MaxPageBlockBytes = 4194304;
}
internal static class Container
{
public const string Name = "Blob Container";
public const string RootName = "$root";
public const string LogsName = "$logs";
public const string WebName = "$web";
}
internal static class Lease
{
public const int InfiniteLeaseDuration = -1;
}
public const int HttpsPort = 443;
public const string UriSubDomain = "blob";
public const int QuickQueryDownloadSize = 4194304;
public const string MetadataHeaderPrefix = "x-ms-meta-";
public const string ObjectReplicationRulesHeaderPrefix = "x-ms-or-";
}
internal static class File
{
internal static class Lease
{
public const long InfiniteLeaseDuration = -1;
}
internal static class Errors
{
public const string = "ShareUsageBytes exceeds int.MaxValue. Use ShareUsageInBytes instead.";
public const string LeaseNotPresentWithFileOperation = "LeaseNotPresentWithFileOperation";
}
internal static class Share
{
public const string = "Share";
}
public const string UriSubDomain = "file";
public const string FileAttributesNone = "None";
public const string FileTimeNow = "Now";
public const string Preserve = "Preserve";
public const string Source = "Source";
public const string FilePermissionInherit = "Inherit";
public const int MaxFilePermissionHeaderSize = 8192;
public const int MaxFileUpdateRange = 4194304;
public const string FileTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffff'Z'";
public const string SnapshotParameterName = "sharesnapshot";
public const string SmbProtocol = "SMB";
public const string NfsProtocol = "NFS";
}
internal static class DataLake
{
public const string BlobUriSuffix = "blob";
public const string BlobUriPeriodSuffix = ".blob.";
public const string DfsUriSuffix = "dfs";
public const string DfsUriPeriodSuffix = ".dfs.";
public const string ErrorKey = "error";
public const string ErrorCodeKey = "code";
public const string ErrorMessageKey = "message";
public const string AlreadyExists = "ContainerAlreadyExists";
public const string FilesystemNotFound = "FilesystemNotFound";
public const string PathNotFound = "PathNotFound";
public const string PathAlreadyExists = "PathAlreadyExists";
public const int DefaultConcurrentTransfersCount = 5;
public const int Pre_2019_12_12_MaxAppendBytes = 104857600;
public const long MaxAppendBytes = 4194304000;
public const string IsDirectoryKey = "hdi_isFolder";
public const string FileSystemName = "FileSystem";
public const string DeletionId = "deletionid";
public const string DirectoryResourceType = "directory";
public const string EncryptionContextHeaderName = "x-ms-encryption-context";
public const string OwnerHeaderName = "x-ms-owner";
public const string GroupHeaderName = "x-ms-group";
public const string PermissionsHeaderName = "x-ms-permissions";
public const string AclHeaderName = "x-ms-acl";
}
internal static class Queue
{
public const int MaxMessagesDequeue = 32;
public const int QueueMessageMaxBytes = 65536;
public const int StatusCodeNoContent = 204;
public const string MessagesUri = "messages";
public const string UriSubDomain = "queue";
public const string QueueTraitsMetadata = "metadata";
}
internal static class ChangeFeed
{
internal static class Event
{
public const string Topic = "topic";
public const string Subject = "subject";
public const string EventType = "eventType";
public const string EventTime = "eventTime";
public const string EventId = "id";
public const string Data = "data";
public const string SchemaVersion = "schemaVersion";
public const string MetadataVersion = "metadataVersion";
}
internal static class EventData
{
public const string Api = "api";
public const string ClientRequestId = "clientRequestId";
public const string RequestId = "requestId";
public const string Etag = "etag";
public const string ContentType = "contentType";
public const string ContentLength = "contentLength";
public const string BlobType = "blobType";
public const string BlobVersionLower = "blobVersion";
public const string ContainerVersion = "containerVersion";
public const string BlobTier = "blobTier";
public const string BlockBlob = "BlockBlob";
public const string PageBlob = "PageBlob";
public const string AppendBlob = "AppendBlob";
public const string ContentOffset = "contentOffset";
public const string DestinationUrl = "destinationUrl";
public const string SourceUrl = "sourceUrl";
public const string Url = "url";
public const string Recursive = "recursive";
public const string Sequencer = "sequencer";
public const string PreviousInfo = "previousInfo";
public const string Snapshot = "snapshot";
public const string BlobPropertiesUpdated = "blobPropertiesUpdated";
public const string AsyncOperationInfo = "asyncOperationInfo";
public const string Current = "current";
public const string Previous = "previous";
public const string DestinationTier = "DestinationTier";
public const string WasAsyncOperation = "WasAsyncOperation";
public const string CopyId = "CopyId";
public const string SoftDeletedSnapshot = "SoftDeleteSnapshot";
public const string WasBlobSoftDeleted = "WasBlobSoftDeleted";
public const string BlobVersion = "BlobVersion";
public const string LastVersion = "LastVersion";
public const string PreviousTier = "PreviousTier";
public const string BlobTagsUpdated = "blobTagsUpdated";
}
public const string ChangeFeedContainerName = "$blobchangefeed";
public const string SegmentPrefix = "idx/segments/";
public const string InitalizationManifestPath = "/0000/";
public const string InitalizationSegment = "1601";
public const string MetaSegmentsPath = "meta/segments.json";
public const long ChunkBlockDownloadSize = 1048576;
public const int DefaultPageSize = 5000;
public const int LazyLoadingBlobStreamBlockSize = 3072;
}
internal static class QuickQuery
{
public const string SqlQueryType = "SQL";
public const string Data = "data";
public const string BytesScanned = "bytesScanned";
public const string TotalBytes = "totalBytes";
public const string Fatal = "fatal";
public const string Name = "name";
public const string Description = "description";
public const string Position = "position";
public const string DataRecordName = "com.microsoft.azure.storage.queryBlobContents.resultData";
public const string ProgressRecordName = "com.microsoft.azure.storage.queryBlobContents.progress";
public const string ErrorRecordName = "com.microsoft.azure.storage.queryBlobContents.error";
public const string EndRecordName = "com.microsoft.azure.storage.queryBlobContents.end";
public const string ArrowFieldTypeInt64 = "int64";
public const string ArrowFieldTypeBool = "bool";
public const string ArrowFieldTypeTimestamp = "timestamp[ms]";
public const string ArrowFieldTypeString = "string";
public const string ArrowFieldTypeDouble = "double";
public const string ArrowFieldTypeDecimal = "decimal";
}
internal static class Sas
{
internal static class Permissions
{
public const char Read = 'r';
public const char Write = 'w';
public const char Delete = 'd';
public const char DeleteBlobVersion = 'x';
public const char List = 'l';
public const char Add = 'a';
public const char Update = 'u';
public const char Process = 'p';
public const char Create = 'c';
public const char Tag = 't';
public const char FilterByTags = 'f';
public const char Move = 'm';
public const char Execute = 'e';
public const char SetImmutabilityPolicy = 'i';
public const char ManageOwnership = 'o';
public const char ManageAccessControl = 'p';
public const char PermanentDelete = 'y';
}
internal static class Parameters
{
public const string Version = "sv";
public const string VersionUpper = "SV";
public const string Services = "ss";
public const string ServicesUpper = "SS";
public const string ResourceTypes = "srt";
public const string ResourceTypesUpper = "SRT";
public const string Protocol = "spr";
public const string ProtocolUpper = "SPR";
public const string StartTime = "st";
public const string StartTimeUpper = "ST";
public const string ExpiryTime = "se";
public const string ExpiryTimeUpper = "SE";
public const string IPRange = "sip";
public const string IPRangeUpper = "SIP";
public const string Identifier = "si";
public const string IdentifierUpper = "SI";
public const string Resource = "sr";
public const string ResourceUpper = "SR";
public const string Permissions = "sp";
public const string PermissionsUpper = "SP";
public const string Signature = "sig";
public const string SignatureUpper = "SIG";
public const string KeyObjectId = "skoid";
public const string KeyObjectIdUpper = "SKOID";
public const string KeyTenantId = "sktid";
public const string KeyTenantIdUpper = "SKTID";
public const string KeyStart = "skt";
public const string KeyStartUpper = "SKT";
public const string KeyExpiry = "ske";
public const string KeyExpiryUpper = "SKE";
public const string KeyService = "sks";
public const string KeyServiceUpper = "SKS";
public const string KeyVersion = "skv";
public const string KeyVersionUpper = "SKV";
public const string CacheControl = "rscc";
public const string CacheControlUpper = "RSCC";
public const string ContentDisposition = "rscd";
public const string ContentDispositionUpper = "RSCD";
public const string ContentEncoding = "rsce";
public const string ContentEncodingUpper = "RSCE";
public const string ContentLanguage = "rscl";
public const string ContentLanguageUpper = "RSCL";
public const string ContentType = "rsct";
public const string ContentTypeUpper = "RSCT";
public const string = "saoid";
public const string = "SAOID";
public const string AgentObjectId = "suoid";
public const string AgentObjectIdUpper = "SUOID";
public const string CorrelationId = "scid";
public const string CorrelationIdUpper = "SCID";
public const string DirectoryDepth = "sdd";
public const string DirectoryDepthUpper = "SDD";
public const string EncryptionScope = "ses";
public const string EncryptionScopeUpper = "SES";
}
internal static class Resource
{
public const string BlobSnapshot = "bs";
public const string BlobVersion = "bv";
public const string Blob = "b";
public const string Container = "c";
public const string File = "f";
public const string = "s";
public const string Directory = "d";
}
internal static class AccountServices
{
public const char Blob = 'b';
public const char Queue = 'q';
public const char File = 'f';
public const char Table = 't';
}
internal static class AccountResources
{
public const char Service = 's';
public const char Container = 'c';
public const char Object = 'o';
}
public static readonly List<char> ValidPermissionsInOrder = new List<char> {
'r',
'a',
'c',
'w',
'd',
'x',
'y',
'l',
't',
'u',
'p',
'f',
'm',
'e',
'i'
};
internal static readonly int[] PathStylePorts = new int[20] {
10000,
10001,
10002,
10003,
10004,
10100,
10101,
10102,
10103,
10104,
11000,
11001,
11002,
11003,
11004,
11100,
11101,
11102,
11103,
11104
};
}
internal static class ClientSideEncryption
{
internal static class V2
{
public const int EncryptionRegionDataSize = 4194304;
public const int NonceSize = 12;
public const int TagSize = 16;
public const int EncryptionRegionTotalSize = 4194332;
public const int WrappedDataVersionLength = 8;
}
public const string HttpMessagePropertyKeyV1 = "Azure.Storage.StorageTelemetryPolicy.ClientSideEncryption.V1";
public const string HttpMessagePropertyKeyV2 = "Azure.Storage.StorageTelemetryPolicy.ClientSideEncryption.V2";
public const string AgentMetadataKey = "EncryptionLibrary";
public const string AesCbcPkcs5Padding = "AES/CBC/PKCS5Padding";
public const string AesCbcNoPadding = "AES/CBC/NoPadding";
public const string EncryptionDataKey = "encryptiondata";
public const string EncryptionMode = "FullBlob";
public const int EncryptionBlockSize = 16;
public const int EncryptionKeySizeBits = 256;
public const string XMsRange = "x-ms-range";
public const string BCRYPT_AES_ALGORITHM = "AES";
public const string BCRYPT_CHAIN_MODE_GCM = "ChainingModeGCM";
public const string BCRYPT_CHAINING_MODE = "ChainingMode";
internal const string BCryptdll = "BCrypt.dll";
}
internal static class Xml
{
internal const string Code = "Code";
internal const string Message = "Message";
}
internal static class GeoRedundantRead
{
internal const string AlternateHostKey = "AlternateHostKey";
internal const string ResourceNotReplicated = "ResourceNotReplicated";
}
internal static class HttpStatusCode
{
internal const int NotFound = 404;
internal const int NotModified = 304;
}
internal static class ServerTimeout
{
internal const string HttpMessagePropertyKey = "Azure.Storage.StorageServerTimeoutPolicy.Timeout";
internal const string QueryParameterKey = "timeout";
}
internal static class CopyHttpAuthorization
{
internal static readonly string[] Scopes = new string[1] {
"https://storage.azure.com/.default"
};
internal const string BearerScheme = "Bearer";
}
public const int KB = 1024;
public const int MB = 1048576;
public const int GB = 1073741824;
public const long TB = 1099511627776;
public const int Base16 = 16;
public const int MaxReliabilityRetries = 5;
public const int MaxIdleTimeMs = 120000;
public const string DefaultSasVersion = "2025-11-05";
public const int MaxHashRequestDownloadRange = 4194304;
public const int DefaultBufferSize = 4194304;
public const int LargeBufferSize = 8388608;
public const int LargeUploadThreshold = 104857600;
public const int DefaultStreamingDownloadSize = 4194304;
public const int DefaultStreamCopyBufferSize = 81920;
public const int DefaultDownloadCopyBufferSize = 16384;
public const int StorageCrc64SizeInBytes = 8;
public const int MD5SizeInBytes = 16;
public const bool DefaultTrimBlobNameSlashes = true;
public const string CloseAllHandles = "*";
public const string Wildcard = "*";
public const string BlockNameFormat = "Block_{0:D5}";
public const string SasTimeFormatSeconds = "yyyy-MM-ddTHH:mm:ssZ";
public const string SasTimeFormatSubSeconds = "yyyy-MM-ddTHH:mm:ss.fffffffZ";
public const string SasTimeFormatMinutes = "yyyy-MM-ddTHH:mmZ";
public const string SasTimeFormatDays = "yyyy-MM-dd";
public const string SnapshotParameterName = "snapshot";
public const string VersionIdParameterName = "versionid";
public const string = "sharesnapshot";
public const string Https = "https";
public const string Http = "http";
public const string PercentSign = "%";
public const string EncodedPercentSign = "%25";
public const string QueryDelimiter = "?";
public const string PathBackSlashDelimiter = "/";
public const string FalseName = "false";
public const string TrueName = "true";
public const string ErrorCode = "Code";
public const string ErrorCodeLower = "code";
public const string ErrorMessage = "Message";
public const string ErrorMessageLower = "message";
public const string HeaderName = "HeaderName";
public const string CommaString = ",";
public const char CommaChar = ',';
public const string ContentTypeApplicationXml = "application/xml";
public const string ContentTypeApplicationJson = "application/json";
public const string ErrorPropertyKey = "error";
public const string DetailPropertyKey = "detail";
public const string MessagePropertyKey = "message";
public const string CodePropertyKey = "code";
public const string Iso8601Format = "yyyy'-'MM'-'dd'T'HH':'mm':'ssZ";
public const string DisableRequestConditionsValidationSwitchName = "Azure.Storage.DisableRequestConditionsValidation";
public const string DisableRequestConditionsValidationEnvVar = "AZURE_STORAGE_DISABLE_REQUEST_CONDITIONS_VALIDATION";
public const string DisableExpectContinueHeaderSwitchName = "Azure.Storage.DisableExpectContinueHeader";
public const string DisableExpectContinueHeaderEnvVar = "AZURE_STORAGE_DISABLE_EXPECT_CONTINUE_HEADER";
public const string DefaultScope = "/.default";
}
}