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

时间:2015-07-01 23:42:56

标签: java android caching amazon-s3 picasso

我正在尝试在我的Android应用程序中创建一个我的S3 Bucket的imageGallery。我的图片是私密的,因此我不会为每张图片找到任何特定的链接。

对于此类私人图片,亚马逊有一个链接生成器,

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

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

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

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

如何让Picasso或任何其他图书馆使用动态链接进行缓存?

根据我的信息,图书馆使用Url作为" key"缓存,是对吗?如果是这样我怎么能保存这些图像所以我可以稍后使用这些图像,即使我离线,再次,我有动态链接所以url将改变每一瞬间所以也许我需要保存他们与我传递给s3Client的密钥。

解决方案是什么。

1 个答案:

答案 0 :(得分:0)

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

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

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