当前位置: 首页 > 知识库问答 >
问题:

带有azure blob存储的图像大小调整器。通过重设器时返回“403禁止”

武功
2023-03-14

我们已经在azurereader2上使用图像大小调整器很长时间了,没有问题。在一个小版本发布后(这真的不应该与此有关),当我们试图通过大小调整器访问图像时,突然出现错误。

这只是我们测试环境中的一个问题,新版本和图像大小调整器等在生产中运行良好。生产和测试都托管在azure中,并且都使用自己的azure blob存储。

示例url:test。我的网站。com/images/pim/b6ffa894-bc8f-4f1b-a1e8-ef115b78a56f。jpg?宽度=250

返回以下错误

Microsoft.WindowsAzure.Storage.StorageException: The remote server returned an error: (403) Forbidden. ---> System.Net.WebException: The remote server returned an error: (403) Forbidden.
   at Microsoft.WindowsAzure.Storage.Shared.Protocol.HttpResponseParsers.ProcessExpectedStatusCodeNoException[T](HttpStatusCode expectedStatusCode, HttpStatusCode actualStatusCode, T retVal, StorageCommandBase`1 cmd, Exception ex) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\Common\Shared\Protocol\HttpResponseParsers.Common.cs:line 50
   at Microsoft.WindowsAzure.Storage.Blob.CloudBlobClient.c__DisplayClass13.b__12(RESTCommand`1 cmd, HttpWebResponse resp, Exception ex, OperationContext ctx) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Blob\CloudBlobClient.cs:line 788
   at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndGetResponse[T](IAsyncResult getResponseResult) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Core\Executor\Executor.cs:line 299
   --- End of inner exception stack trace ---
   at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndExecuteAsync[T](IAsyncResult result) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Core\Executor\Executor.cs:line 50
   at Microsoft.WindowsAzure.Storage.Blob.CloudBlobClient.EndGetBlobReferenceFromServer(IAsyncResult asyncResult) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Blob\CloudBlobClient.cs:line 630
   at Microsoft.WindowsAzure.Storage.Core.Util.AsyncExtensions.c__DisplayClass1`1.b__0(IAsyncResult ar) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Core\Util\AsyncExtensions.cs:line 66
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at ImageResizer.Plugins.AzureReader2.AzureReader2Plugin.d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at ImageResizer.Util.AsyncUtils.RunSync[TResult](Func`1 func)
   at ImageResizer.Storage.Blob.Open() in C:\projects\resizer\Plugins\ImageResizer.Storage\Blob.cs:line 41
   at ImageResizer.ImageBuilder.GetStreamFromSource(Object source, ResizeSettings settings, Boolean& disposeStream, String& path, Boolean& restoreStreamPosition)
   at ImageResizer.ImageBuilder.LoadImage(Object source, ResizeSettings settings, Boolean restoreStreamPos)
   at ImageResizer.ImageBuilder.BuildJob(ImageJob job)
   at ImageResizer.ImageBuilder.Build(ImageJob job)
   at ImageResizer.ImageBuilder.Build(Object source, Object dest, ResizeSettings settings, Boolean disposeSource, Boolean addFileExtension)
   at ImageResizer.ImageBuilder.Build(Object source, Object dest, ResizeSettings settings, Boolean disposeSource)
   at ImageResizer.ImageBuilder.Build(Object source, Object dest, ResizeSettings settings)
   at ImageResizer.InterceptModule.c__DisplayClass5_0.b__1(Stream stream)
   at ImageResizer.Plugins.DiskCache.CustomDiskCache.c__DisplayClass28_0.b__0()
   at ImageResizer.Plugins.DiskCache.LockProvider.TryExecute(String key, Int32 timeoutMs, LockCallback success)
   at ImageResizer.Plugins.DiskCache.CustomDiskCache.GetCachedFile(String keyBasis, String extension, ResizeImageDelegate writeCallback, Int32 timeoutMs, Boolean asynchronous)
   at ImageResizer.Plugins.DiskCache.DiskCache.Process(IResponseArgs e)
   at ImageResizer.Plugins.DiskCache.DiskCache.Process(HttpContext context, IResponseArgs e)
   at ImageResizer.InterceptModule.HandleRequest(HttpContext context, HttpModuleRequestAssistant ra, IVirtualFile vf)
   at XXX.Web.Modules.CustomImageResizingInterceptModule.HandleRequest(HttpContext context, HttpModuleRequestAssistant ra, IVirtualFile vf) in E:\TeamCity\buildAgent\work\4773e55a378b97a1\src\Portal\Portal\Infrastructure\Web\Modules\CustomImageResizingInterceptModule.cs:line 15
   at ImageResizer.InterceptModule.CheckRequest_PostAuthorizeRequest(Object sender, EventArgs e)
   at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Request Information
RequestID:e8c13071-0001-00c2-437e-d8b9c7000000
RequestDate:Mon, 29 May 2017 13:19:16 GMT
StatusMessage:Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.

urltest.mysite.com/images/pim/b6ffa894-bc8f-4f1b-a1e8-ef115b78a56f.jpg正确地重定向到Azure Blob中的图像。

我尝试过为blob存储重新生成访问密钥,但没有成功
我试着从我们的测试环境中指向另一个blob存储,这也不起作用。

我可以从本地环境访问测试块存储。

/调整大小。调试报告检测到0个问题。

非常感谢任何帮助,如果我能提供更多信息,请告诉我。

共有1个答案

韩羽
2023-03-14

这纯粹是azure blob存储连接问题,图像大小调整器不是罪魁祸首。

 类似资料:
  • 问题内容: 在Django中上传图片后,如何轻松调整其大小?我正在使用Django 1.0.2,并且已经安装了PIL。 我当时正在考虑重写Model的save()方法以调整其大小,但是我真的不知道如何开始并覆盖它。 有人可以指出我正确的方向吗?谢谢 :-) @GuðmundurH:这将不起作用,因为django-stdimage软件包在Windows上不起作用 问题答案: 在这种方法中,你可以将块

  • 我使用数组/循环从一个名为gallery(Wordpress)的自定义字段获取图像。检索到的图像未调整大小,这意味着它们的最大宽度为150px,最大高度为150px。现在我想知道如何自动让这些图像适应浏览器的大小。Chrome做得很好,但IE和FF做不到。当我设置img{width:100%;}调整大小是可行的,但是图像本身的大小是错误的,你可以想象得到。 是否有其他可能让图像自动调整到浏览器大小

  • 问题内容: 我在这里使用Go调整大小包:https://github.com/nfnt/resize 我正在从S3中提取图像,如下所示: // this gives me data []byte 之后,我需要调整图像大小: // problem is that the original_image has to be of type image.Image 将图像上传到我的S3存储桶 // pro

  • 我遇到了这两个SO问题,但它们似乎给出了相反的答案: 从Google云存储获取调整大小的图像 调整Google云存储中的图像大小

  • 我制作了一个包含三个jpanel的jframe,这三个panel将jframe分成三个相等的部分。每一个面板都包含一个图像。我想调整图像和面板的大小,当帧的大小从高到低的时候。有人能告诉我如何做吗。

  • 我正在学习下面提到的使用Amazon lambda和Amazon API进行图像大小调整的教程。 给出错误{“消息”:“内部服务器错误”} AWS lambda监视器显示以下日志。 2017-02-20T12:18:57.979Z c0265015-f766-11e6-932c-ebf25f098e89{“ErrorMessage”:“不支持您提供的授权机制。请使用AWS4-HMAC-SHA256