我正在向我的Android App用户提供使用Amazon mobile-hub进行的一些个人文件的下载,现在我希望用户只能访问其个人文件5次,也就是说,如果用户将其个人文件下载了5次以上,S3存储桶中的文件必须隐藏应用访问权限或从存储桶中删除。
或任何可以帮助我实现目标的想法。
答案 0 :(得分:0)
否,使用Amazon S3的内置功能无法做到这一点。
最接近的选项是使用预先签名的URL ,这是一个有时间限制的URL。一旦过期(您选择持续时间),该URL将不再起作用。
如果您需要“限制下载数量”的功能,则需要通过应用程序而非直接从Amazon S3提供内容。
答案 1 :(得分:0)
我们就是这样做的,
CloudFront / APIGW-> Lambda(使用原子返回签名URL DynamoDB中的递增计数)-> DynamoDB(更新计数)
请使用atomic increment更新DynamoDB。
无论请求是并行的还是顺序的,都可以避免下载对象超过5次。
如果用户掌握了签名的URL,则可以按URL中提到的指定时间范围进行任意次数的访问。
希望有帮助。