使用 nginx 作为代理访问私有 S3 存储桶文件的方法是什么?

使用 nginx 作为代理访问私有 S3 存储桶文件的方法是什么?

我有一个网站和一个包含大量图像的 S3 存储桶,这些图像无法通过任何具有直接 URL 的机器直接访问。

这些图像将仅向注册用户显示在不同的网站页面上。

我尝试找到一种使用特定 cookie 或附加标头访问 S3 存储桶文件的简单方法,但找不到。这不可能吗?

是的,无法在浏览器中设置额外的标头,但我可以在 Nginx 中为此目的创建一个代理(代理可以在将请求传递给 S3 时设置这些特定的 cookie 或添加标头)。但仍然不清楚如何从特定 IP 地址(我的 Nginx 代理地址)或使用特定 cookie 或特定标头启用对 S3 存储桶文件的 URL 访问。

请问你能帮帮我吗?

答案1

答案2

你应该使用预签名 URL确保只有授权用户才能访问 S3 上的内容。此技术也适用于CloudFront,在这种情况下,您可以使用源访问身份以防止直接访问 S3。

相关内容