首页 文章

限制亚马逊s3下载

提问于
浏览
4

我正在开发一个iOS应用程序,它会将小视频上传到亚马逊s3 . 视频将公开,用户可以分享每个视频的网址 . 我担心流媒体费用(例如视频会传播病毒) . 每GB带宽约0.12美元,这很快就会变得昂贵 .

我想为每个视频实施某种下载限制以防止这种情况发生 . 视频每月下载一定次数后,就不再公开,无法下载 .

我查看了各种文档,并没有找到实现这一目标的好方法 . 我发现的唯一可能的解决方案是定期下载我的s3存储桶的日志文件,并使用该数据来确定某些视频的下载次数 . 这是我最好的选择,还是有更好的方法?

谢谢!

1 回答

  • 0

    你可以这样做,但需要你在你的头上做一些编码才能使它工作 .

    Method 1 将启用详细的s3日志记录统计信息,然后编写代码来解析这些日志文件,并在达到限制时通过文件确定,然后撤消对该文件的权限以防止它再次被提供 .

    以下是有关如何启用详细s3日志记录的信息:

    http://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html

    相对简单,但可能有点不优雅,并且由于日志的固有延迟和处理日志的延迟,您确实冒着超出限制的风险 - 因此可能需要20分钟到一小时或更长的时间一旦达到限制即可购买,但在您的应用程序有足够的信息来实现它之前 .

    Method 2 ,imo更优雅会在您的ios应用程序和s3之间放置一个ec2实例(或实例) - ios应用程序向ec2实例发出请求,它会查找实时统计信息(它一直在累积,也许转换为dynamodb或rds)然后将s3 url返回到相应的视频或向应用返回超限错误 . 使用此方法无需撤消s3权限,因为ec2实例充当交通警察,并且可以实时启用/禁用对特定文件的访问 - 您还可以轻松添加实时报告/通知使用此方法的容量可以让您知道文件或文件何时传播病毒(如果有用) .

相关问题