首页 > 解决方案 > 如何将用户上传的图像存储在 S3 私有存储桶中并将其显示在应用程序中

问题描述

我正在开发一个 android 应用程序,其中有供用户上传许多图像的选项。我计划使用 S3 作为所有这些图像的存储系统。我将创建一个私有存储桶,并在其中为每个用户创建文件夹。当用户上传图片时,我将创建一个预签名的 url,应用程序将使用该 URL 直接将文件上传到 S3。到目前为止一切都很好。我的问题是如何在应用程序上显示它?由于存储桶是私有的,因此直接使用文件 URL 将不起作用,因为它需要身份验证。一种解决方案是调用 S3 并生成一个临时签名的 URL,该 URL 可以传递回应用程序并显示它。这种情况的问题是,假设我正在显示用户图像的提要(比如 20 张图像),然后我必须进行 20 次调用来生成签名的经过身份验证的 URL 并将其传递回应用程序。我认为我们也可以将所有内容作为批次传递。但是每次都调用它来制作签名 URL 感觉不太对劲。有没有更好的方法来检索图像并将其显示回来而无需进行大量调用?我可以生成一个唯一的 UUID 作为文件名,这样它就不容易被猜到并使存储桶公开。但它安全吗?

标签: androidiosamazon-s3amazon-ec2hybrid-mobile-app

解决方案


推荐阅读