我在 AS3 中有一个包含文件的存储桶。我可以访问 PHP API 以及可以根据命令向亚马逊发送请求的服务器。
我想要做的是使用HTTP GET/POST
请求授予对我的存储桶中文件的访问权限。根据我的理解使用此功能:
get_object_url ( $bucket, $filename, $preauth, $opt )
我可以在给定网址的$preauth
时间内公开访问该文件。我不想这样做,我希望该文件可以通过具有所需 POST 或 GET 凭据的URL私下提供(决定谁可以访问该文件将基于在包含应用程序“用户”及其权限的数据库上。我了解在非HTTPS 连接上通过 GET 或 POST 传递任何类型凭据的安全隐患。
这可能吗?我可以直接从 AS3 下载文件到我的服务器,然后在我自己的盒子上执行所有控件,但这是一个昂贵的解决方案(两个文件下载而不是一个,当我的服务器不应该一直下载到一个看似简单的问题。
答案 0 :(得分:1)
简短的回答是否定的。
您可以查看Amazons IAM以获取更多保护内容的方法,尤其是与Cloudfront一起使用,但实际上无法通过传递用户名和密码来提供对内容的访问权。
当然,如果您已经在对您网站上的用户进行身份验证,那么您只能向这些用户提供已签名的网址。该URL只需在用户启动下载时有效,而不是在整个下载期间有效。
此外,如果您打算将服务器用作S3和用户之间的代理,那么您将首先消除使用S3的诸多好处。但您可以使用EC2作为服务器来消除您提到的额外成本 - S3和EC2之间的转移是免费的。