有没有办法限制使用Umbraco中的Imageprocessor提供全分辨率图像?

有没有办法限制使用Umbraco中的Imageprocessor提供全分辨率图像?,umbraco,imageprocessor,Umbraco,Imageprocessor,我正在一个摄影网站上工作,在这个网站上可以上传全分辨率的照片,但不能显示/访问全分辨率的照片(通过代币下载全分辨率的照片) 我尝试过“restrictTo”设置,但分辨率不需要依赖于指定的维度 有没有办法让myphoto.jpg在默认情况下不显示查询字符串(例如700x700),但仍然可以通过令牌下载获得完整的分辨率文件?基本上,没有查询字符串的图像仍由Imageprocessor处理,但具有默认的调整大小规则。我将使用查询字符串来处理图像 url?宽度=1400,高度=900,模式=裁剪和锚定

我正在一个摄影网站上工作,在这个网站上可以上传全分辨率的照片,但不能显示/访问全分辨率的照片(通过代币下载全分辨率的照片)

我尝试过“restrictTo”设置,但分辨率不需要依赖于指定的维度


有没有办法让myphoto.jpg在默认情况下不显示查询字符串(例如700x700),但仍然可以通过令牌下载获得完整的分辨率文件?基本上,没有查询字符串的图像仍由Imageprocessor处理,但具有默认的调整大小规则。

我将使用查询字符串来处理图像

url?宽度=1400,高度=900,模式=裁剪和锚定=中心

我也会使用延迟加载,这样页面加载速度会更快,小的模糊图像,然后用完整的分辨率或你想显示的最大大小的查询字符串来替换它们

我为此写了一个脚本。

现在在我的网站上,当我上传一张图片时,我会在保存时自动将其调整到1080p分辨率。这样我就可以上传一张海量图片,而不必担心先调整它的大小,或者它会占用我服务器上太多的空间

这也是代码

我会对图像使用查询字符串

url?宽度=1400,高度=900,模式=裁剪和锚定=中心

我也会使用延迟加载,这样页面加载速度会更快,小的模糊图像,然后用完整的分辨率或你想显示的最大大小的查询字符串来替换它们

我为此写了一个脚本。

现在在我的网站上,当我上传一张图片时,我会在保存时自动将其调整到1080p分辨率。这样我就可以上传一张海量图片,而不必担心先调整它的大小,或者它会占用我服务器上太多的空间

这也是代码

我可以通过myphoto.jpg?width=1400请求一个本机宽度为5000px的图像,但结果图像是完整的5000px宽度图像,为什么最大宽度1400px图像不可用

如果你得到了完整的图像,那就意味着出了问题。(您可能已经用完了连续内存)因此请确保您处于64位模式

maxWidth
仅将resize参数限制为上限。所以它自己什么都不做

您可能正在查找的是
ValidatingRequest
事件

首先,通过更改
interceptAllRequests
,我将ImageProcessor.Web设置为拦截
processing.config
文件中的所有图像请求。这将确保您捕获在没有令牌的情况下查看图像的任何尝试

在这种情况下,您可以取消请求并更改/添加任何查询字符串参数,以透明地限制您的大小,而无需向最终用户显示查询字符串

我可以通过myphoto.jpg?width=1400请求一个本机宽度为5000px的图像,但结果图像是完整的5000px宽度图像,为什么最大宽度1400px图像不可用

如果你得到了完整的图像,那就意味着出了问题。(您可能已经用完了连续内存)因此请确保您处于64位模式

maxWidth
仅将resize参数限制为上限。所以它自己什么都不做

您可能正在查找的是
ValidatingRequest
事件

首先,通过更改
interceptAllRequests
,我将ImageProcessor.Web设置为拦截
processing.config
文件中的所有图像请求。这将确保您捕获在没有令牌的情况下查看图像的任何尝试


在这种情况下,您可以取消请求并更改/添加任何查询字符串参数,以透明地限制您的大小,而无需向最终用户显示查询字符串。

是否重写URL?那么什么会阻止我使用?width=fullreswidth。我想问题是我可以在配置中设置MaxWidth设置,并说我将其设置为700px,我可以通过myphoto.jpg请求一个本机宽度为5000px的图像?width=1400,但生成的图像是完整的5000px宽度图像,为什么最大宽度为1400px的图像不可用?(或者至少,这是我希望完成的另一件事)不确定,但可以扩展ImageProcessor.Web并实现自己的IImageService.cs。它有一个IsValidRequest方法,您可以自定义该方法来检查令牌。请参见重写URL?那么什么会阻止我使用?width=fullreswidth。我想问题是我可以在配置中设置MaxWidth设置,并说我将其设置为700px,我可以通过myphoto.jpg请求一个本机宽度为5000px的图像?width=1400,但生成的图像是完整的5000px宽度图像,为什么最大宽度为1400px的图像不可用?(或者至少,这是我希望完成的另一件事)不确定,但可以扩展ImageProcessor.Web并实现自己的IImageService.cs。它有一个IsValidRequest方法,您可以自定义该方法来检查令牌。请看,这不会阻止最终用户仅请求没有令牌的完整大小的图像。这不会阻止最终用户仅请求没有令牌的完整大小的图像。