我是 AWS S3 的新手。我的项目需要将图像上传到“私有”S3存储桶(禁用S3中的所有公共访问设置),并仅允许某些具有有效JWT令牌的用户访问这些图像(主要存储在浏览器中,可能是localStorage / cookie)
那么我如何设置 S3 服务并在 C# 中实现来实现此目标:使用有效令牌打开 URL,然后用户可以查看图像,如果用户没有有效令牌,则显示未经授权的访问页面。示例内容可能如下
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>ResourceNotFound</Code>
<Message>The specified resource does not exist. RequestId:4087a246-001e-0002-3481-37acce000000 Time:2024-11-15T17:13:52.7976811Z</Message>
</Error>
我发现了类似cloudfront的东西,但我不知道我需要从哪里开始,或者这是我期望的东西
谢谢
Amazon S3 存储桶默认是私有的。因此,您的第一个要求已经满足。
要向特定人员提供访问权限,您有多种选择:
选项 1:AWS 凭证
您可以创建 IAM 用户并请求安全凭证。这通常用于编程访问。访问 S3 中的文件时,您可以提供凭据并获得对私有文件的访问权限。
选项 2:预签名 URL
或者,您的 C# 程序可以使用 IAM 凭证来生成 Amazon S3 预签名 URL,该 URL 提供对 Amazon S3 中私有对象的限时访问。用户只需在浏览器中使用此 URL 即可正常访问该文件。
您的 C# 程序有责任对用户进行身份验证并验证他们是否有权访问该文件。如果允许,程序可以用几行代码生成预签名 URL。