在许多请求之后,是否有任何方法可以删除或隐藏对对象的公共访问?

时间:2019-07-01 04:58:28

标签: amazon-web-services amazon-s3

我正在向我的Android App用户提供使用Amazon mobile-hub进行的一些个人文件的下载,现在我希望用户只能访问其个人文件5次,也就是说,如果用户将其个人文件下载了5次以上,S3存储桶中的文件必须隐藏应用访问权限或从存储桶中删除。

或任何可以帮助我实现目标的想法。

2 个答案:

答案 0 :(得分:0)

否,使用Amazon S3的内置功能无法做到这一点。

最接近的选项是使用预先签名的URL ,这是一个有时间限制的URL。一旦过期(您选择持续时间),该URL将不再起作用。

请参阅:Amazon S3 pre-signed URLs

如果您需要“限制下载数量”的功能,则需要通过应用程序而非直接从Amazon S3提供内容。

答案 1 :(得分:0)

我们就是这样做的,

  

CloudFront / APIGW-> Lambda(使用原子返回签名URL   DynamoDB中的递增计数)-> DynamoDB(更新计数)

请使用atomic increment更新DynamoDB。

无论请求是并行的还是顺序的,都可以避免下载对象超过5次。

如果用户掌握了签名的URL,则可以按URL中提到的指定时间范围进行任意次数的访问。

希望有帮助。