2017-09-26 4 views
4

피카소를 사용하여 내 안드로이드 앱에 aws S3에 저장된 이미지를로드하려고하지만 내 로그캣에 아무런 오류없이 빈 이미지를 얻고 있습니다. 관련 코드 줄을 중심으로 디버깅합니다. 이미지에 개인 액세스 권한이 있으므로 이미지 URL이 브라우저에서 작동하지 않습니다. 피카소를 사용하여 안드로이드 앱에 이미지를 표시해야합니다. 하지만 작동하지 않습니다. 코드 이미지 위에 사용하여개인 액세스로 피카소로 aws에서 이미지를로드하는 방법

new Picasso.Builder(getApplicationContext()).downloader(new S3Downloader(getApplicationContext(), s3Client, bucket)) 
       .build() 
       .load("https://s3-ea-east-8.amazonaws.com/music/MusicApp_3.jpg") 
       .placeholder(R.drawable.img_placeholder) 
       .memoryPolicy(MemoryPolicy.NO_CACHE) 
       .networkPolicy(NetworkPolicy.NO_CACHE) 
       .into(imageView); 

아래

내 코드는 응용 프로그램을 설치 한 후 매우 첫 번째 시간을 표시한다. 다음 번에만 자리 표시 자 이미지가 표시됩니다.

이미지를 표시하는 데 this library을 사용하고 있습니다.

피카소와 관련된 문제는 "개인"URL의 이미지를로드하는 것과 관련이 있습니다.

Picasso.with(getApplicationContext()).load(your_url).noFade().into(imageView); 
+0

이미지 URL을 확인하십시오. 서버를 찾을 수 없습니다 .... –

+2

체크 아웃 : https://stackoverflow.com/questions/30941673/retrieving-image-url-with-specific-access-privileges- using-aws-mobile-sdk-for-an –

+0

@VishalVaishnav이 질문에 dummy url을 추가했습니다. 원본 URL을 공유 할 수 없습니다. –

답변

1

간단히 이것을 사용 피카소로가는 길. 해당 URL은 공개되며 만료일이 있습니다.

+2

이것은 OP의 질문에 대한 답변이 아닙니다. Picasso와 관련된 문제는 "개인"URL에서 이미지를로드하는 것과 같습니다. – nbokmans

+0

@ nbokmans correct 당신이 가지고있는 대답을 제안하십시오 –

1
write below code to load image in Picasso. 
variables:- 
String file_path       -->> this is your image file path 
Imageview mViewHolder.img_post_photo  -->> this is your imageview to load image. 
     Picasso.with(context) 
           .load(file_path) 
           .placeholder(R.mipmap.ic_launcher) 
           .error(R.mipmap.ic_launcher) 
           .into(mViewHolder.img_post_photo, new Callback() { 
            @Override 
            public void onSuccess() { 

            } 

            @Override 
            public void onError() { 
             Picasso.with(context) 
               .load(file_path) 
               .placeholder(R.mipmap.ic_launcher) 
               .error(R.mipmap.ic_launcher) 
               .into(mViewHolder.img_post_photo); 
            } 
           }); 
Set dependencies in your app build.gradle file:- 
compile 'com.squareup.picasso:picasso:2.5.2' 

hope this code helps you. 
+1

피카소와 관련된 문제는 "개인"URL에서 이미지를로드하는 것과 같습니다. –

+0

이 문서를 참조하십시오. - https://stackoverflow.com/questions/30941673/retrieving-image-url-with-specific-access-privileges-using-aws-mobile-sdk-for-an – InsaneCat

0

당신은 S3 클라이언트에서 presigned URL을 생성해야 당신은 것을 전달할 수 있습니다

제안 해주십시오 솔루션