我正在使用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; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。