美文网首页
记:解决Glide图片框架配合阿里云Oss图片缓存问题 Glid

记:解决Glide图片框架配合阿里云Oss图片缓存问题 Glid

作者: 二鸭儿 | 来源:发表于2018-07-02 14:48 被阅读158次

    问题描述:
    公司App 使用阿里云的Oss服务缓存图片,访问图片需要获取临时访问权限,将临时访问权限拼接与图片地址之后
    地址格式入下:

        http://my-server/**photo_1**?access_token=XYZ1
        http://my-server/**photo_1**?access_token=XYZ2
        http://my-server/**photo_1**?access_token=XYZ3  
    

    如上3个URL地址token不同但却是同一张图片, Glide默认是使用path直接进行标记缓存,这时会将上面三个url视为三张不同图片,重复访问三次 这是我们不想看到的,我们需要改变Glide默认图片缓存标记来实现图片的复用缓存,提升加载速度
    解决方案:

    public class OssGlideUrl extends GlideUrl {
    
        String url;
    
        public OssGlideUrl(String url) {
            super(url);
            this.url = url;
        }
    
        @Override
        public String getCacheKey() {
            //去除Glide缓存key中的Oss token
            if (url.contains("?")) {
                return url.substring(0, url.lastIndexOf("?"));
            } else {
                return url;
            }
        }
    }
    

    使用

    GlideApp.with(ContextHandler.currentActivity())
                    .asBitmap()
                    .load(new OssGlideUrl(OssHandler.getOssObjectKeyUrl(objectKey)))
                    .placeholder(placeHolder)
                    .error(error)
                    .into(target);
    

    原文地址

    相关文章

      网友评论

          本文标题:记:解决Glide图片框架配合阿里云Oss图片缓存问题 Glid

          本文链接:https://www.haomeiwen.com/subject/bncluftx.html