在S3 Client android中制作私有图像的ImageGallery

我想在我的Android应用程序中创建一个我的S3 Bucket的imageGallery。 我的图像是私有的,所以我不会为每个图像提供任何特定的链接。

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

s3Client.generatePresignedUrl(Constants.S3_BUCKET_NAME, key, expiration); 

它生成一个URL,假设我们设置了1小时或2分钟的到期时间。

现在为了简单的内存缓存和东西,我可以使用volley或Picasso或许多其他这样的轻松加载库。

不过有这个问题。 我想将这些图像缓存在内存中。 但我所拥有的只是动态链接。

我如何让Picasso或任何其他库使用动态链接进行缓存?

根据我的信息,库使用Url作为缓存的“密钥”,是不是更正? 如果是这样我怎么能保存这些图像所以我可以稍后使用这些图像,即使我离线,再次,我有动态链接所以url将每时刻都在改变所以也许我需要用Key保存它们我传递给s3Client。

解决办法是什么。

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

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

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