我有一个节点应用程序并使用aws-sdk我能够成功调用getSignedUrl()方法并获取特定文件的URL。
但是,我希望能够在特定目录中递归地授予*访问权限,而不仅仅是单个文件。
这甚至可能吗?
答案 0 :(得分:6)
预签名网址允许访问存储在Amazon S3上的私有对象。它是一种保持对象安全的方法,同时授予对特定对象的临时访问权。
它是通过基于对象路径,到期时间和属于具有访问Amazon S3对象权限的帐户的共享秘密访问密钥的哈希计算创建的。因此,每个预签名网址对于每个对象都是唯一的,不能充当整个目录的通配符。
一些替代方案:
另请参阅:AWS CLI copy command
答案 1 :(得分:2)
截至2015年3月,您现在可以使用signed cookies授予对整个目录的访问权限。
当您不想更改当前网址或希望提供对多个受限文件的访问权限时,CloudFront签名Cookie允许您控制谁可以访问您的内容
答案 2 :(得分:1)
现在可以使用Custom Policy并创建一个令牌,该令牌将授予对*而不是单个S3对象的访问权限。但显然你需要不断更改单个URL中的文件名,保持所有人的标记相同。
这假设您在S3前面使用CloudFront进行分发。