Java 在S3客户端android中制作私有图像的ImageGallery

Java 在S3客户端android中制作私有图像的ImageGallery,java,android,caching,amazon-s3,picasso,Java,Android,Caching,Amazon S3,Picasso,我正在尝试在android应用程序中创建S3存储桶的imageGallery。我的图片是私有的,所以我不会对每个图片都有任何特定的链接 对于这些私有图像,亚马逊有一个链接生成器 s3Client.generatePresignedUrl(Constants.S3_BUCKET_NAME, key, expiration); 它会生成一个URL,比如说我们设置了1小时或2分钟的过期时间 现在,为了方便地进行内存缓存,我可以使用volley或Picasso或许多其他类似的轻松加载库 然而,有这样一

我正在尝试在android应用程序中创建S3存储桶的imageGallery。我的图片是私有的,所以我不会对每个图片都有任何特定的链接

对于这些私有图像,亚马逊有一个链接生成器

s3Client.generatePresignedUrl(Constants.S3_BUCKET_NAME, key, expiration);
它会生成一个URL,比如说我们设置了1小时或2分钟的过期时间

现在,为了方便地进行内存缓存,我可以使用volley或Picasso或许多其他类似的轻松加载库

然而,有这样一个陷阱。我想在内存中缓存这些图像。但我所拥有的只是动态链接

如何使毕加索或任何其他库使用动态链接缓存

根据我的信息,这些库使用Url作为缓存的“键”,对吗?如果是这样的话,我该如何保存这些图像,以便以后即使在脱机时也可以使用这些图像,同样,我有动态链接,所以url将随时更改,因此可能需要使用传递给s3Client的密钥保存它们


解决方案是什么。

最新的
Picasso
版本采用设置网络策略。可能需要为
Picasso.Request
builder设置
NetworkPolicy.OFFLINE

Picasso.with(this)
            .load(s3Url)
            .networkPolicy(NetworkPolicy.OFFLINE)
            .into(imageView);

关于缓存,您可能希望将毕加索
OkHttpClient
CacheControl
设置为与S3链接相同的过期时间。

Hey@Muhammad Umar,我在加载url时遇到问题。我已经使用“GeneratePressignedUrl(Constants.S3_BUCKET_NAME,key,expiration)”生成了签名url,并尝试使用毕加索加载它,但它似乎不太管用。当我在浏览器上尝试那个链接时,我得到了“签名错误”@Muhammad Umar,我有同样的问题,如果你已经解决了上面的问题,请发布答案problem@Muhammad奥马尔我有同样的问题,请张贴答案,如果你已经解决了上述问题