我有一个应用程序,允许用户将内容上传到Amazon S3,并返回上传内容的链接。 我一直在想如何只允许拥有内容的用户访问它,我进入http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html授权标题。
使用它的方法我认为是:为每个内容生成一个指向我的应用程序主机的链接(例如:从bucket.s3.amazonaws.com/29347524.jpg到 - > myapp.com/image/154155.jpg )并将其提供给用户。当我收到请求时,我将检查用户是否在我的应用程序中进行了身份验证,并且在成功匹配时,我将向请求转发授权标头并将其转发给amazon。
我不想从我的应用程序服务器下载amazon服务器中的内容,并将内容提供给客户端。我认为这对乐队来说是无用的浪费。 在添加一些标题后,是否有任何方法可以转发请求?因此亚马逊在请求内容时会回答客户端,但是请求发送到我的服务器并在某些部分进行了修改。
您是否知道在亚马逊的S3内容上执行此类身份验证的其他方式?任何建议将不胜感激
答案 0 :(得分:1)
我会查看S3中的预签名工具:http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html
您的应用程序服务器可以生成如此处所述的时间限制URL,并使用HTTP 302将用户重定向到相应的Location标头。
如果您使用Google for the" amazon s3 presign url",您将找到更多资源:博客文章和官方亚马逊文档。