【发布时间】:2015-01-25 00:06:01
【问题描述】:
我有一个节点应用程序并且正在使用aws-sdk。我能够成功调用getSignedUrl() 方法并获取特定文件的URL。但是,我希望能够在特定目录中递归地授予 * 访问权限,而不仅仅是单个文件。这甚至可能吗?
【问题讨论】:
标签: node.js amazon-web-services amazon-s3
我有一个节点应用程序并且正在使用aws-sdk。我能够成功调用getSignedUrl() 方法并获取特定文件的URL。但是,我希望能够在特定目录中递归地授予 * 访问权限,而不仅仅是单个文件。这甚至可能吗?
【问题讨论】:
标签: node.js amazon-web-services amazon-s3
预签名 URL 允许访问存储在 Amazon S3 上的私有对象。它是一种确保对象安全的方法,同时授予对特定对象的临时访问权限。
它是通过基于对象路径、到期时间和属于有权访问 Amazon S3 对象的账户的共享秘密访问密钥的哈希计算创建的。因此,每个预签名 URL 对于每个对象都是唯一的,并且不能作为通配符用于整个目录。
一些替代方案:
cp命令)。【讨论】:
从 2015 年 3 月起,您现在可以使用 signed cookies 授予对整个目录的访问权限。
CloudFront 签名的 cookie 允许您在不想更改当前 URL 或想要提供对多个受限文件的访问权限时控制谁可以访问您的内容
【讨论】:
现在可以使用Custom Policy 并创建一个令牌,该令牌将授予对 * 而不是单个 S3 对象的访问权限。但很明显,您需要不断更改各个 URL 中的文件名,保持所有令牌相同。
这是假设您在 S3 之前使用 CloudFront 进行分发。
【讨论】: