Php 如何让客户端从S3上传和下载文件而不影响凭据
我正在创建一个文件共享类网站(类似于WetTransfer)。我曾考虑使用S3进行存储,我希望使用不同的托管解决方案而不是EC2,这样我的web服务器将位于amazon云以外的不同主机中。为了减少带宽消耗,我需要以某种方式让客户端直接从客户端(浏览器)下载和上载文件 我正在看一本解释如何从浏览器客户端直接将文件上传到S3的书。看起来我们几乎公开了我的s3凭据的所有细节,有些人可以很容易地查看细节和滥用Php 如何让客户端从S3上传和下载文件而不影响凭据,php,amazon-s3,Php,Amazon S3,我正在创建一个文件共享类网站(类似于WetTransfer)。我曾考虑使用S3进行存储,我希望使用不同的托管解决方案而不是EC2,这样我的web服务器将位于amazon云以外的不同主机中。为了减少带宽消耗,我需要以某种方式让客户端直接从客户端(浏览器)下载和上载文件 我正在看一本解释如何从浏览器客户端直接将文件上传到S3的书。看起来我们几乎公开了我的s3凭据的所有细节,有些人可以很容易地查看细节和滥用 有什么办法可以避免这种情况,比如允许用户使用临时凭据上载/下载文件?IAM用户角色可以工作吗?
有什么办法可以避免这种情况,比如允许用户使用临时凭据上载/下载文件?IAM用户角色可以工作吗?您应该能够创建一个用户(该用户将拥有自己的UUID),为其提供对S3存储库的只读访问,并将该用户的凭据以及内容和密钥规则传递到您的请求策略中 如果您想授予所有用户读/写访问权限,尽管只允许这些用户访问特定的文件,但这会有点麻烦 我在看S3文档,它解释了如何从浏览器客户端直接将文件上传到S3。看起来我们几乎公开了我的s3凭据的所有细节,有些人可以很容易地查看细节和滥用 不,你不是。如果使用得当,该页面上记录的基于POST的上传界面只允许用户在有限的时间内上传一个符合各种标准(例如,文件名称、大小、MIME类型等)的文件。使用起来很安全
请记住,S3访问密钥不是敏感信息。向用户公开它是非常好的,事实上许多常见操作都需要它!只有密钥需要保密。我删除了我的答案,因为我意识到你希望客户端上传。很抱歉当你说“限时”时,是服务的默认行为过期了,我们需要频繁更新密钥,还是我们有任何控制权?我在哪里可以找到有关此的详细信息?请阅读您在问题中链接到的文档页面!所有这些,还有更多,都在这里解释。