Вам нужно сгенерировать предварительно назначенный URL-адрес из клиента S3, и вы можете передать этот URL-адрес Пикассо. Этот URL будет общедоступным и будет иметь срок действия.

аюсь загрузить изображение, хранящееся в aws S3, в свое приложение для Android с помощью Picasso, но получаю пустое изображение без ошибок в моем logcat и ничего от общего отладки вокруг соответствующих строк кода. У нас есть частный доступ к изображениям, поэтому URL-адрес изображения не может работать в браузере. Мне нужно отобразить изображение в моем приложении для Android, используя Пикассо. но это не работает

Мой фрагмент кода ниже

  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);

При использовании вышеуказанного кода изображение отображается только в первый раз после установки приложения. в следующий раз это только показывает изображение заполнителя

Я используюэта библиотека для отображения изображения.

Проблема не с Пикассо, а с загрузкой изображения из «частного» URL.

пожалуйста, предложите решения

 Haresh Chhelana26 сент. 2017 г., 11:27
 Haresh Chhelana26 сент. 2017 г., 11:28
Вы тестировали с публичным доступом?
 Amit Desale26 сент. 2017 г., 11:28
@VishalVaishnav я добавил в этот вопрос фиктивную ссылку. Я не могу поделиться оригинальным URL.
 akhilesh070726 сент. 2017 г., 11:29
Попробуйте подключить прослушиватель ошибок к Пикассо и проверьте, какую ошибку вы получаете
 Vishal Vaishnav26 сент. 2017 г., 11:27
проверьте URL вашего изображения ... это дает сервер не найден ....

Ответы на вопрос(3)

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.
 Amit Desale26 сент. 2017 г., 12:01
Проблема не с Пикассо, а с загрузкой изображения из «частного» URL.
 InsaneCat26 сент. 2017 г., 12:12
Хорошо, тогда, пожалуйста, отошлите этот документ: -stackoverflow.com/questions/30941673/...

а S3, и вы можете передать этот URL-адрес Пикассо. Этот URL будет общедоступным и будет иметь срок действия.

Picasso.with(getApplicationContext()).load(your_url).noFade().into(imageView);
 nbokmans26 сент. 2017 г., 11:34
Это не отвечает на вопрос ОП. Проблема не с Пикассо, а с загрузкой изображения из «частного» URL.
 Amit Desale26 сент. 2017 г., 11:38
@ nbokmans правильно, пожалуйста, предложите любой ответ, который у вас есть

Ваш ответ на вопрос