我試圖首次使用他們提供的示例代碼實現Azure博客存儲。但是,當我嘗試UploadFromStream()時,我的應用程序發生了非常廣泛的400錯誤請求錯誤。
我在這個問題上做了一堆搜索。幾乎我遇到的每件事都確定了容器或blob的命名約定是問題。這不是我的問題,我使用所有小寫等
我的代碼是沒有從他們的示例代碼不同:
連接字符串:
<add key="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=xxxx;AccountKey=xxxxxx;EndpointSuffix=core.windows.net" />
,代碼:
// Retrieve storage account from connection string
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the blob client
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve reference to a previously created container
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");
// Retrieve reference to a blob named "myblob"
CloudBlockBlob blob = container.GetBlockBlobReference("myblob");
// Create the container if it doesn't already exist
container.CreateIfNotExists();
// Create or overwrite the "myblob" blob with contents from a local file.
using (var fileStream = System.IO.File.OpenRead(@"D:\Files\logo.png"))
{
blob.UploadFromStream(fileStream);
}
這就是我所要做的。我能想到的唯一的另一件事是,我用HTTP而不是HTTPS在我的開發環境中運行它。不知道這可能是一個問題?
編輯: 此外,試圖在Azure的門戶directily上傳文件到容器時,我收到了一個TestAzureFileUpload.txt
驗證錯誤。詳細信息:「頁面blob 大小必須與512字節邊界對齊,當前文件大小爲 56.」
這可能與我的問題有關嗎?我在這裏錯過了一些設置?
我知道我沒有足夠的力量去幫助我確定確切的問題,但我希望有人能夠至少指出我正確的方向來解決這個問題嗎?
任何幫助,將不勝感激
正如我所說,這不是我的問題。如果你看我的代碼,你可以看到我的容器和blob名稱都是小寫的。 Thx的回覆 – Nugs
掩蓋了這一點,對不起。 – maccettura
當你得到這個異常時,你可以展開'RequestInformation'節點幷包含所有顯示在那裏的東西。通常您會發現有關錯誤的更多信息。從您的2次嘗試中大膽猜測,我假設相關存儲帳戶的冗餘級別爲「Premium_LRS」。你能確認嗎?如果是這種情況,那麼你會得到這個錯誤,因爲'Premium_LRS'存儲帳戶只支持頁面blob,並且你正在嘗試上傳一個塊blob。 –