问题标签 [imageresizer-diskcache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
602 浏览

azure - 我们可以为 ImageResizer 的 ImageCache 使用 Azure Blob 存储吗

我们基本上使用推荐的云架构,其中源图像存储在 Azure Blob Storage 中,imageresizer 在 Azure App Service 上运行,Azure CDN 是 CDN 层。

尽管如此,我们还是遇到了 ImageResizer v3、Azure App Service 部署槽和 DiskCache 的问题。

我们在 Azure 应用服务上使用暂存槽来防止中断。我们还使用 DiskCache 插件。在没有任何配置的情况下,imagecache 将写入特定于插槽的 D:\home\site\wwwroot\imagecache\。

这会产生两个问题:

  1. 当我们交换插槽时,使用的图像缓存是陈旧的,并且会丢失很多图像。
  2. 在我们的应用服务计划中,我们总是有一个陈旧的图像缓存占用磁盘空间,我们在 Microsoft 的顾问建议使用 Blob 存储而不是虚拟本地文件系统用于 DiskCache。

我注意到没有 BlobCachePlugin 或 S3CachePlugin,我想知道这是否有充分的理由。

我的问题是:

  1. 是否有理由不使用实现 ICache 接口的自定义 BlobStorageCachePlugin 将图像缓存存储在 Azure Blob 存储中?
  2. 如果有充分的理由,您建议使用什么替代架构来避免部署槽的问题?
0 投票
1 回答
92 浏览

azure - ImageResizer 为缓存控制标头值返回私有值

我们的 ImageResizer 实现利用 Azure Blob 存储和 Azure CDN。除了缓存标头外,它运行良好。如果我们正在访问修改后的图像,例如添加 width=100,那么缓存控制标头是“public”的,带有预期的 Expires 标记和值。如果没有修改并且我们使用基本 URL,则缓存控制标头设置为“私有”。

这导致我们的 CDN 和站点速度出现问题。我们如何确保基本 URL 也返回带有过期标签(以及 ETag 等)的 cache-control="public"?

0 投票
1 回答
261 浏览

image-resizing - 尽管 runAllManagedModulesForAllRequests="true",但 ImageResizingModule 不针对静态内容运行

我正在尝试使用 ImageResizer (v4) 来处理所有图像请求,但我只能从数据库中获取图像(使用插件 SqlReader)才能工作。由于某种原因,未处理图像文件夹(或其他文件夹)中的普通图像。我正在使用非常简单的查询字符串进行测试,例如 /images/x.png?width=50 。这是我从 resizer.debug.ashx 的输出:

我没有任何以任何方式干扰 /img 或任何其他图像文件夹的路线。

我正在使用 IIS 10,并且应用程序池设置为 Integrated v4.0。

该模块适用于数据库图像。/img/1.jpg?width=50 按预期工作。

我错过了什么?

0 投票
1 回答
306 浏览

android - Android 中用于位图(和其他)的 DiskLRUCache

在 android 中,许多图像加载库(如Picasso——它使用 2% 的存储空间用于磁盘缓存,Glide)除了内存中的 lru 缓存外,还使用磁盘缓存。我可以理解为什么这可能对从网络下载的图像有用——如果内存缓存已满,请从磁盘读取它而不是远程获取它们——从而避免网络延迟等。但是,如果我们只是读取本地图像在android设备本身上——我们是否通过使用带有序列化位图数据的单独磁盘缓存获得任何东西——因为无论如何都必须从磁盘读取数据?如果您的应用需要缩略图并对原始图像进行二次采样并将其存储在缓存中,这可能是有意义的吗?是否有任何研究显示性能增益。我在google 示例中看到了磁盘缓存的使用和其他位图缓存库。

0 投票
1 回答
127 浏览

c# - 如何在考虑磁盘缓存的同时从 Azure 调整图像大小?

我目前正在尝试在我的网站上生成包含一堆图像的 PDF 报告。所有这些图像都以其原始大小存储在 Azure blob 存储中。

在整个网站中,我都在使用带有 Azure 和 DiskCache 插件的 ImageResizer 中间件,它们运行良好,但是对于 PDF 报告,我似乎必须使用 ImageResizer API,它只接受流、位图或路径作为输入。

我当前的实现在技术上有效(即下载 blob 并提供流),但速度很慢。

有没有办法在使用磁盘缓存的同时调用 API?我试图提供像 /azure/someblob.jpg 这样的路径,但它不起作用。

编辑:根据 Natahniel 的建议,我想出了这个解决方案(用于 iTextSharp):

在这种情况下,路径类似于 azure/mycontainer/someblob.jpg?height=500

0 投票
1 回答
163 浏览

imageresizer - ImageResizer 自动清理

我正在尝试减小 ImageResizer [IR] 缓存大小。IR 落后于 CDN,目前大约需要 2 天时间才能将磁盘缓存增加到 200Gb。我发现 DiskCache 插件有 autoclean 参数。我在我的 pre-prod 上启用了它,但它对缓存没有影响。我在启用自动清理后测量文件数: 昨天,下午 03:53 文件 5944 个文件夹 2153 昨天,下午 7:10 文件 5980 个文件夹 2199 今天,上午 11:54 文件 6382 个文件夹 2674

我做错了什么?这是我的 Web.config:

0 投票
1 回答
148 浏览

image-resizing - 未调整大小的图像的内容长度为 0 并且缺少内容类型

我有一个使用 ImageResizer 的网站。但并非所有图像都使用调整大小,我们有一些未调整大小的图像。这些似乎内容长度为 0,并且响应标头中缺少内容类型。我们使用 AzureReader2 和 DiskCache 插件。有没有我遗漏的设置或调整。这对我来说是一项非常关键的任务,非常感谢任何反馈。

例如:

不工作:

这工作正常:

以下是我的 web.config 中的内容

0 投票
1 回答
329 浏览

imageresizer - System.UnauthorizedAccessException:对路径“C:\inetpub\wwwroot\website\imagecache\0f\ae1ea.jpg.tmp_4a1f20d7.tmp”的访问被拒绝

使用 imageresizer diskcache 4.2.5 并且最近才开始出现此错误的高频率。这是在最近向我们的网站发布新代码之后。我们没有明确更改与 imageresizer 相关的知识,因此不确定它是否与新版本、web.config 问题等有关。

我们在这个 MVC 5 Web 应用程序中使用预编译视图。

要点调试文件

这已经工作了多年。看起来我们几个月前将它的 nuget 包从 3.4.3 升级到了 4.2.5。

直接导航到图像时,不会引发错误。对我来说有趣的是试图访问文件的这个 .tmp 命名约定。

试图从 Elmah 错误日志中检索的图像路径是:C:\inetpub\wwwroot\website\Images\no_image.jpg?maxwidth=420&maxheight=420

堆栈跟踪:

0 投票
1 回答
48 浏览

imageresizer - 用于文件压缩的​​缓存文件上的 Diskcache 元数据

我想为我的缓存文件实现一个背景图像压缩器。为此,我需要知道缓存文件属于哪个 id(或文件路径),以便在完成文件压缩后进行一些缓存清理。计划是在上传后(以及在生成最常用的文件版本(如 srcset 的标准宽度)后)开始压缩。

一种方法是将 id 保存到某些元数据中的文件(或文件名/路径)中,但缓存的文件不包含任何元数据。

做这样的事情的最好方法是什么?

如果有更好的方法来优化图像,请告诉我。但是我们确实需要压缩它们,因为有很多客户指的是谷歌得分不好,因为我们的图像太大了。

0 投票
1 回答
24 浏览

imageresizer - 使用 ImageResizer 时的 MacOS/Safari 双扩展

我们正在使用 ImageResizer ( https://imageresizing.net/ ) 将大型 PNG 图像转换为 JPEG。它与 ?format=jpg 一起使用非常好,并且它们以正确的内容类型和所有内容提供。

下载这些图像时,它们在除 Safari 之外的所有浏览器中都被命名为 image.jpg。在这里,它会询问用户是否要使用 .jpg 或 .png。它还将图像保存为 image.png.jpg,这让一些用户感到困惑。

我读了一些关于 Content-Disposition 标题的内容,但我认为这是直接下载的,而不是右键单击并选择另存为。我也不知道是否可以在不创建某种中间层的情况下添加它并且可能会失去性能。

想法?谢谢 <3