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



我想为我的每个移动应用程序用户设置一个单独的s3 bucket文件夹,让他们存储自己的文件。不过,我也想设置大小限制,这样它们就不会占用太多存储空间。此外,如果他们确实超过了限制,如果他们注册了高级服务,我想为他们提供更多的空间。

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

似乎没有办法做到这一点,可能至少在一定程度上是因为实际上没有";文件夹";在S3中。文件夹只有外观

AmazonS3并没有文件夹的概念,只有bucket和object。AmazonS3控制台支持使用对象密钥名称前缀的文件夹概念。

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

S3存储桶中的所有键实际上都在一个平面名称空间中,根据需要使用/分隔符将对象概念上划分为看起来像文件夹的逻辑分组,但这只是一种方便的错觉。S3似乎不可能有文件夹大小的概念;文件夹";完全

如果你没有维护一个客户端存储内容的权威数据库(这意味着所有上传都应该通过应用程序服务器,而不是直接进入S3,这是对我来说唯一有意义的方法),那么你唯一的选择就是轮询S3以发现其中的内容。一个不完美的快捷方式是让您的应用程序读取S3存储桶日志,以发现上传了什么,但这只是在尽最大努力的基础上提供的。它应该是可靠的,但不能保证是完美的。

此服务提供尽最大努力记录bucket中对象的所有访问。请注意,月底的实际使用情况报告可能会略有不同。

您的另一个选择是开发您自己的服务,该服务位于用户和AmazonS3之间,用于监控对您的bucket/对象的所有请求。

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

同样,让你的应用服务器调解所有请求似乎是合乎逻辑的方法,而且还可以让你立即检测到(而不是"稍后发现")用户超过了阈值。

我会在云中维护一个单独的数据库,以保存每个用户的hdd使用总数。通过S3对象生命周期事件很容易管理计数,这可以很容易地触发Lambda,Lambda反过来写入数据库。

最新更新