2016-11-11 5 views
1

Android S3에서 이미지를로드하는 Android 앱에서 작업 중입니다. 이미지 URL이 토큰 및 만료 키와 함께 임의로 변경됩니다. 그 이유로 나는 Glide 이미지를 캐싱 할 수 없다.id가없는 글라이드 이미지 캐시

URL이 아닌 정적 ID (이미지 ID와 같은)로 글라이드 캐시 키를 설정하는 방법은 없습니다.

나는
Glide.with(remoteGalleryAct).load(photoFinalImageURL) 
       .signature(new StringSignature(getImageUrl(photoFinalImageURL)))// remove AWS keys 
       .error(defaultNoImageDrawable) 
       .placeholder(defaultNoImageDrawable) 
       .dontAnimate() 
       .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
       .into(new ImageViewTarget<GlideDrawable>(photoHolder.photo) { 
        @Override 
        protected void setResource(GlideDrawable resource) { 
        } 

        @Override 
        public void onResourceReady(final GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) { 
         //super.onResourceReady(resource, glideAnimation); 
         view.setImageDrawable(resource); 
        } 
       }); 

글라이드에 달성하기 위해 어떤 방법이 나에게 제안하십시오 AWS

에서 이미지를로드 내 코드를 부착.

+0

내가 이미지를로드하려면 코드를 부착 후반 여기 죄송합니다 –

+0

당신의 코드를 업로드하십시오

//Create a custom class and override the method to remove authentication header from the S3 image url public class GlideUrlCustomCacheKey extends GlideUrl { public GlideUrlCustomCacheKey(String url) { super(url); } public GlideUrlCustomCacheKey(String url, Headers headers) { super(url, headers); } public GlideUrlCustomCacheKey(URL url) { super(url); } public GlideUrlCustomCacheKey(URL url, Headers headers) { super(url, headers); } @Override public String getCacheKey() { String url = toStringUrl(); if (url.contains("?")) { return url.substring(0, url.lastIndexOf("?")); } else { return url; } } } 

이 클래스에서 얻은 URL로 이미지 뷰를 설정 AWS S3의 – user968571

답변

1

GlideUrl 클래스의 getCacheKey() 메소드를 재정의하십시오. 이 메소드는 이미지 캐싱을위한 키를 설정합니다.

은 그 방법은 다음과 같습니다

Glide.with(context).load(new GlideUrlCustomCacheKey(buzzUrl)).into(imageView); 
관련 문제