【问题标题】:Detect image source exists using ImageResizer's RemoteReader plugin and generate tiny url使用 ImageResizer 的 RemoteReader 插件检测图像源是否存在并生成小 URL
【发布时间】:2023-03-15 08:10:01
【问题描述】:

我正在使用ImageResizerRemoteReader plugin 在我的网站中显示外部图像。

我有两个问题:

1- 当我使用RemoteReaderPlugin.Current.CreateSignedUrl 方法生成图像源路径时,它会返回一个像this 这样的编码url。如您所见,网址如此之长,是否有任何选项可以生成更小的网址(例如 TinyUrlgoo.gl 所做的)?

2- 如何检测源 URL 中是否不存在外部图像以管理和阻止图像显示在我的网站上? RemoteReader 中是否有任何选项?

编辑:我也测试了RemoteReaderPlugin.Current.FileExists 方法,但它总是返回false

【问题讨论】:

    标签: c# asp.net .net asp.net-mvc-4 imageresizer


    【解决方案1】:

    1) 制作短 URL 意味着将长 URL 存储在数据库中。数据库很慢,并且增加了故障点。这就是为什么我们经常在整个网络上看到断开的短链接。

    您可以使用Config.Current.Rewrite 来实现您自己的短链接。但它会变慢(网络延迟),降低可扩展性,并且如果您的数据库过得不好,图像会损坏。

    2) 只需创建一个HTTP HEAD request to see if it exists。请记住,HTTP 请求很慢。在图像请求期间执行此操作将使其速度减慢两倍。在每个图像的页面渲染期间执行此操作会非常慢。尝试在最初获取 URL 并缓存结果时执行此操作 - 如果可以的话。即时执行此操作不是一个好主意。

    RemoteReaderPlugin.Current.FileExists 仅检测路径是否为远程 URL 语法。它实际上并没有通过 HTTP 请求检查是否存在(参见 #2)。

    【讨论】:

      猜你喜欢
      • 2014-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-23
      • 2011-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多