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

Muh*_*mar 5 java android caching amazon-s3 picasso

我正在尝试在Android应用程序中创建S3存储桶的imageGallery。我的图片是私人的,因此我不会为每个图片提供任何特定的链接。

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

s3Client.generatePresignedUrl(Constants.S3_BUCKET_NAME, key, expiration);
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

根据我的信息,这些库使用Url作为“键”进行缓存,是正确的吗?如果是这样,我如何保存这些图像,以便即使在脱机时也可以稍后使用这些图像,同样,我具有动态链接,因此url会在每时每刻更改,因此也许我需要使用传递给s3Client的密钥来保存它们。

解决办法是什么。

Nik*_*ski 0

最新Picasso版本采用设置网络策略。也许,您需要NetworkPolicy.OFFLINEPicasso.Request构建器设置:

Picasso.with(this)
            .load(s3Url)
            .networkPolicy(NetworkPolicy.OFFLINE)
            .into(imageView);
Run Code Online (Sandbox Code Playgroud)

关于缓存,您可能需要将CacheControlPicasso 的过期时间设置OkHttpClient为与 S3 链接相同。