AzureStorage Blob服务器无法验证请求。确保正确形成Authorization标头的值,包括签名

问题描述 投票:6回答:2

我正在尝试在Windows Azure Blob中上传图像,我收到以下错误,我无法处理。

服务器无法验证请求。确保正确形成Authorization标头的值,包括签名。

我尝试创建容器时发生错误。

   container.CreateIfNotExists()

这是我的代码

 try
            {
                Microsoft.WindowsAzure.Storage.CloudStorageAccount storageAccount = Microsoft.WindowsAzure.Storage.CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]);
                CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();


                // Retrieve a reference to a container. 
                CloudBlobContainer container = blobClient.GetContainerReference("samples");

                // Create the container if it doesn't already exist.
                //here is the error
                if (container.CreateIfNotExists())
                {
                    container.SetPermissions(
                        new BlobContainerPermissions
                        {
                            PublicAccess =
                                BlobContainerPublicAccessType.Blob
                        });
                }
                CloudBlockBlob blockBlob = container.GetBlockBlobReference("Image1");
                using (var fileStream = System.IO.File.OpenRead(@"Path"))
                {
                    blockBlob.UploadFromStream(fileStream);
                }
            }
            catch (StorageException ex1)
            {
                throw ex1;
            }

我在我的代码中尝试了很多选项,但仍然遇到错误。

有人可以帮我吗?谢谢。

azure blob
2个回答
4
投票

根据评论中的其他人的建议,我的电脑的时间减少了1小时。纠正它解决了这个问题。


0
投票

当我尝试通过REST API端点访问BLOB存储时,我收到此消息。

下面是我用Authorization头调用列表容器操作时得到的响应

<?xml version="1.0" encoding="utf-8"?>
<Error>
    <Code>AuthenticationFailed</Code>
    <Message>Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
RequestId:096c6d73-f01e-0054-6816-e8eaed000000
Time:2019-03-31T23:08:43.6593937Z</Message>
    <AuthenticationErrorDetail>Authentication scheme Bearer is not supported in this version.</AuthenticationErrorDetail>
</Error>

解决方案是包括下面的标题

x-ms-version: 2017-11-09

0
投票

检查计算机或手机的时区。


0
投票

在我的情况下,它实际上是过期的共享访问签名(SAS)。通过在将来为结束日期添加一年(或更多)来更新(实际上新建一个)portal.azure.com中的共享访问签名。并解决了所有问题。

© www.soinside.com 2019 - 2024. All rights reserved.