在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链接相同。