Java S3 Bucket已签名URL以授予对图片的访问权限
我正在讨论如何让用户上传的图片只被用户的朋友浏览 到目前为止,我想到的是:Java S3 Bucket已签名URL以授予对图片的访问权限,java,amazon-web-services,amazon-s3,Java,Amazon Web Services,Amazon S3,我正在讨论如何让用户上传的图片只被用户的朋友浏览 到目前为止,我想到的是: 为每个用户创建一个DynamoDB表,并添加朋友/新朋友的动态列表 为每个用户上传的图片生成签名URL 允许DynamoDB表中列出的每个朋友访问已签名的URL以查看设置的图片 这听起来对吗?另外,从技术上讲,我是否可以为所有用户上传的图片提供一个存储桶?我的设计听起来有些不对劲 有谁能给我一个关于如何通过Java实现这一点的快速教程吗?有两种基本方法: Amazon S3中的权限,或 AmazonS3中应用程序控制的
有谁能给我一个关于如何通过Java实现这一点的快速教程吗?有两种基本方法:
- Amazon S3中的权限,或
- AmazonS3中应用程序控制的对象访问
标记中),您都会创建一个预签名URL。这将在有限的时间内授予对对象的访问权限。它只需要几行代码,并且可以在应用程序中完成,而无需与AWS通信来生成URL
不需要存储预签名的URL。它们是动态生成的
这种方法的好处是,您的应用程序可以完全控制它们可以访问哪些对象。朋友可以与其他用户共享图片,应用程序将授予访问权限,而第一种方法仅授予用户特定路径内对象的访问权限。我不确定此处是否有足够的信息。它也可以是任何类型的数据,限制用户访问是任何后端提供的所有用户身份验证和授权功能的基本元素。您使用什么来管理您的用户?你已经在使用什么技术了?你已经有什么代码了?谢谢你的回复!我正在使用Cognito对用户进行身份验证。我还是AWS的新手,所以说实话,我不确定自己在做什么。我使用Cognito和android studio开发了一个功能齐全的登录/注册系统。所以我可以列出我所有的注册和验证用户。所以我的问题是,用户将图片上传到S3,那么我需要采取什么步骤才能让他们的朋友只查看设置的图片?这是通过dynamo完成的吗?不,这不起作用,因为签名的URL过期了。在用户请求图像文件时,您需要为每个经过身份验证的用户提供一个新的签名URL。是的,您可以使用一个bucket来维护多个用户的文件(只需根据唯一的用户id使用某种前缀对它们进行分区)。另外,请阅读。您不允许“访问”已签名的URL。签名URL是自包含的,拥有该URL允许访问资源。问题:这些图像是以HTML格式出现在网页上,还是作为一个移动应用程序,它可以像获取列表一样工作?如果它是一个应用程序,该应用程序如何准确了解哪些图像可供下载?