簡體   English   中英

Azure Blob容器名稱可以使用多長時間?

[英]How long can an Azure Blob Container Name be?

我已經讀過azure blob存儲容器名稱最長不得超過63個字符(請參閱https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/naming-and-referencing-containers-- blobs - 和 - 元數據 ),但在閱讀本文之前,我測試的容器名稱比這更長,所以嘗試了更長的時間:

        CloudStorageAccount storageAccount = CloudStorageAccount.Parse("YourKey");
        CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
        CloudBlobContainer container = blobClient.GetContainerReference(@"mystorage\A2345678901234567890B234567890C2345678901234567890D234567890E234567890F23456789G234567890\AA345678901234567890B234567890C2345678901234567890D234567890E234567890F23456789G234567890");
        CloudBlockBlob blockBlob = container.GetBlockBlobReference(@"blob.txt");

這似乎工作正常(注意大寫字母,也可能不允許)。 我還使用Microsoft Azure Storage Explorer(v0.8.9)打開使用C#創建的文件夾和文件,並在我的blob存儲中創建更長的文件夾名稱(大小寫混合)。

在現實生活中,我想要容器最多大約100個字符(復制具有五個級別文件夾的Windows文件結構,子文件夾名稱最多20個字符。如果有必要,我可以強制這些小寫。我的大部分內容閱讀似乎建議blob存儲比文件存儲更好,除非處理遺留系統或需要SMB。基於這種推理,blob存儲聽起來更好,測試時一切似乎都能正常工作。但是,微軟可能會突然強加小寫和63個字符的限制?我還缺少什么嗎?

因此容器名稱的最大長度可以是63個字符。 您沒有在代碼中收到任何錯誤的原因是因為此限制是在服務器端強制執行的。 使用以下代碼創建CloudBlobContainer實例時:

CloudBlobContainer container = blobClient.GetContainerReference(@"mystorage\A2345678901234567890B234567890C2345678901234567890D234567890E234567890F23456789G234567890\AA345678901234567890B234567890C2345678901234567890D234567890E234567890F23456789G234567890");

這發生在客戶端。 如果您嘗試對此container對象執行任何服務器端操作(如創建該容器),則會出現錯誤,因為您違反了此63個字符的限制。

您可以將容器視為Blob存儲帳戶中的頂級文件夾。 換句話說,如果您認為計算機上的C:\\作為存儲帳戶,則容器可能是windows 現在每個容器可以有零個或多個blob並創建層次結構的幻覺,你可以將你的blob命名為cursors\\aero_arrow.cur 命名blob時,可以包含多於63的字符。但是,由於每個blob都可以通過URL( https://accountname.blob.core.windows.net/containername/blobname )訪問,因此最大長度受最大值限制URL中的字符,我相信是1024個字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM