Azure Blob 存储上传错误:(403)禁止

Posted

技术标签:

【中文标题】Azure Blob 存储上传错误:(403)禁止【英文标题】:Azure Blob Storage Upload Error: (403) Forbidden 【发布时间】:2013-01-15 19:29:33 【问题描述】:

我们创建了一个将文件上传到 Azure blob 的新流程。在本地运行应用程序时,文件上传正常且没有错误。当我们在服务器上运行相同的进程时,我们会收到错误消息:

MESSAGE: Forbidden: header 'Content-Type' value denied SOURCE: Microsoft.WindowsAzure.StorageClient 目标:T get_Result() 堆栈跟踪:在 Microsoft.WindowsAzure.StorageClient.Tasks.Task1.get_Result() at Microsoft.WindowsAzure.StorageClient.Tasks.Task1.ExecuteAndWait() 在 Microsoft.WindowsAzure.StorageClient.TaskImplHelper.ExecuteImpl(Func`1 实施)在 Microsoft.WindowsAzure.StorageClient.CloudBlob.UploadFromStream(流 源,BlobRequestOptions 选项)在 Microsoft.WindowsAzure.StorageClient.CloudBlob.UploadFromStream(流 来源)

内部异常:

MESSAGE:远程服务器返回错误:(403) Forbidden。

来源:系统

目标:System.Net.WebResponse EndGetResponse(System.IAsyncResult)

STACKTRACE:在 System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)

在 Microsoft.WindowsAzure.StorageClient.EventHelper.ProcessWebResponse(WebRequest req, IAsyncResult asyncResult, EventHandler`1 handler, Object sender)

奇怪的是文件仍然上传到 Azure。有没有人经历过这个?我们在上传文件时没有设置内容类型,因为我们在下载文件时设置了它。我们尝试硬编码一个,它仍然产生同样的错误。

【问题讨论】:

想到 2 个想法来检查:1) 您是否使用共享访问签名?我见过在上传完成之前 SAS 超时的情况。 2) 您是否为云存储与开发存储抓住了正确的钥匙? 【参考方案1】:

原来是 Firefox 的问题。我们必须修改代理以不允许任何内容类型从 Azure 返回给我们。文件似乎正在上传,但 Azure 想要响应我们对它的调用,而我们的防火墙阻止了响应。理想情况下,Azure 会通过在响应中包含内容类型来解决此问题,因此我们不需要进行此类防火墙更改。

【讨论】:

以上是关于Azure Blob 存储上传错误:(403)禁止的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 PUT 将 PDF 作为 blob 上传到 S3 存储桶时被禁止 403

创建 Azure 存储 Blob 容器时出现错误 403(已启用存储防火墙

Azure 存储帐户 - 错误 403 被禁止

Azure 使用 REST api 和托管标识创建 blob 容器 - 403 错误

尝试在 Web API 请求上检索 Azure Blob 时出现 403 错误

Azure 功能:访问存储帐户时出现 403 错误