ios – 使用SDWebImage忽略查询参数

我正在使用SDWeb Image在我的应用程序中缓存图像,但是我最近遇到了一个问题,应该缓存的图像保持刷新.调查一下,我发现来自AWS的完整图像网址实际上是由于参数添加到网址末尾而发生变化.每次我获取包含图像URL的对象时,图像url返回动态“签名”和“过期”参数(出于安全目的).就图像缓存而言,是一个不同的URL,但请注意图像的相同路径.

首先获取

https://myapp.s3.amazonaws.com/path/image123.jpeg?AWSAccessKeyId=SOMEKEY\u0026amp;Signature=vrUFlMFEQ9fqQ=\u0026amp;Expires=1441702633

1秒后再次获取

https://myapp.s3.amazonaws.com/path/image123.jpeg?AWSAccessKeyId=SOMEKEY\u0026amp;Signature=2mcMxUJLyJd7E=\u0026amp;Expires=1441703105

处理这种情况的最佳方法是什么?如果SDWebImage有一个选项可以忽略文件路径之外的查询参数,那么肯定会很棒.

解决方法

SDWebImage有一个允许使用自定义键的方法,这有助于在这种情况下AWS每次调用时都会更改查询.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary    *)launchOptions
{
    SDWebImageManager.sharedManager.cacheKeyFilter = ^(NSURL *url) {
        url = [[NSURL alloc] initWithScheme:url.scheme host:url.host path:url.path];
        return [url absoluteString];
    };

    // Your app init code...
    return YES;
}

欲了解更多信息:SDWebImage | Using the cache key filter

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...