我可以计量或设置s3文件夹的大小限制

时间:2013-12-30 01:40:05

标签: amazon-web-services amazon-s3

我想为每个移动应用用户设置一个单独的s3存储桶文件夹,供他们存储文件。但是,我还想设置大小限制,以便它们不会占用太多存储空间。此外,如果他们确实超过了限制,我想在他们注册高级服务时为他们提供更多的空间。

有没有办法可以通过s3配置或api设置文件夹文件大小限制?如果没有,我是否必须以某种方式使用api来计算每次上传的文件夹大小?我知道亚马逊有devpay功能,但如果用户只想使用少量的可用空间,那么用户注册亚马逊可能会很麻烦。

2 个答案:

答案 0 :(得分:4)

似乎没有办法做到这一点,可能至少部分是因为S3中实际上没有“文件夹”这样的东西。只有文件夹的外观

  

Amazon S3没有文件夹的概念,只有存储桶和对象。 Amazon S3控制台使用对象键名称前缀支持文件夹概念。

     

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

S3存储桶中的所有密钥实际上都在一个平面命名空间中,根据需要使用/分隔符在概念上将对象划分为看起来像文件夹的逻辑分组,但这只是一种方便的错觉。当S3根本没有“文件夹”的实际概念时,它似乎不可能拥有文件夹大小的概念。

如果您没有维护客户端存储的权威数据库(这表明所有上传都应该通过应用服务器而不是直接转到S3,这是唯一对我有意义的方法在所有)然后你唯一的选择是轮询S3以发现那里有什么。一个不完美的快捷方式是您的应用程序读取S3存储桶日志以发现已上载的内容,但这只是在尽力而为的基础上提供的。它应该是可靠的,但不能保证是完美的。

  

此服务提供尽力尝试记录存储桶中对象的所有访问权限。请注意,月末的实际使用情况报告可能略有不同。

     

您的另一个选择是开发位于用户和Amazon S3之间的服务,监控对您的存储桶/对象的所有请求。

     

- http://aws.amazon.com/articles/1109#13

同样,让您的应用服务器调解所有请求似乎是合乎逻辑的方法,并且还允许您立即检测(而不是“稍后发现”)用户已超过阈值。

答案 1 :(得分:0)

我会在云中维护一个单独的数据库,以保持每个用户的总hdd使用次数。通过S3对象生命周期事件可以轻松管理计数,这可以轻松触发Lambda,而Lambda又可以写入数据库。