我正在尝试在我的Android应用程序中创建一个我的S3 Bucket的imageGallery。我的图片是私密的,因此我不会为每张图片找到任何特定的链接。
对于此类私人图片,亚马逊有一个链接生成器,
s3Client.generatePresignedUrl(Constants.S3_BUCKET_NAME, key, expiration);
它生成一个URL,让我们说我们设置了1小时或2分钟的到期时间。
现在为了简单的内存缓存和东西,我可以使用volley或Picasso或许多其他这样的轻松加载库。
然而有这个问题。我想将这些图像缓存在内存中。但我所拥有的只是动态链接。
如何让Picasso或任何其他图书馆使用动态链接进行缓存?
根据我的信息,图书馆使用Url作为" key"缓存,是对吗?如果是这样我怎么能保存这些图像所以我可以稍后使用这些图像,即使我离线,再次,我有动态链接所以url将改变每一瞬间所以也许我需要保存他们与我传递给s3Client的密钥。
解决方案是什么。
答案 0 :(得分:0)
最新的Picasso
版本采用设置网络策略。您可能需要为NetworkPolicy.OFFLINE
构建器设置Picasso.Request
:
Picasso.with(this)
.load(s3Url)
.networkPolicy(NetworkPolicy.OFFLINE)
.into(imageView);
关于缓存,您可能希望将毕加索CacheControl
的到期时间设置为OkHttpClient
,与S3链接相同。