【发布时间】:2018-01-30 00:26:03
【问题描述】:
早上好,
我第一次尝试使用他们提供的示例代码来实现 Azure 博客存储。但是,我的应用在尝试 UploadFromStream() 时遇到了非常广泛的 400 Bad Request 错误。
我在这个问题上做了很多搜索。我遇到的几乎所有内容都将容器或 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 门户中的文件直接上传到容器时,我会收到一个
TestAzureFileUpload.txt 的验证错误。详细信息:“页面 blob size 必须与 512 字节边界对齐。当前文件大小为 56。”
这可能与我的问题有关吗?我在这里缺少一些设置吗?
我知道我没有足够的时间让任何人帮助我确定确切的问题,但我希望有人至少可以为我指出正确的方向来解决这个问题?
任何帮助将不胜感激
【问题讨论】:
-
正如我所提到的,这不是我的问题。如果您查看我的代码,您会发现我的容器和 blob 名称都是小写的。谢谢回复
-
就在上面写了,抱歉。
-
当你得到异常时,你能不能展开
RequestInformation节点并包含那里显示的所有东西。通常您会找到有关该错误的更多信息。从您的 2 次尝试中进行疯狂猜测,我假设相关存储帐户的冗余级别为Premium_LRS。你能确认一下吗?如果是这种情况,那么您将收到此错误,因为Premium_LRS存储帐户仅支持页面 blob,并且您正在尝试在其中上传块 blob。
标签: c# azure azure-blob-storage