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.Task
1.get_Result() at Microsoft.WindowsAzure.StorageClient.Tasks.Task
1.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 使用 REST api 和托管标识创建 blob 容器 - 403 错误