我正在使用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有一个允许使用自定义键的方法,这有助于在这种情况下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; }