我想为我的每个移动应用程序用户设置一个单独的 s3 存储桶文件夹,以便他们存储他们的文件。但是,我还想设置大小限制,以免它们占用太多存储空间。此外,如果他们确实超过了限制,如果他们注册了高级服务,我想为他们提供更大的空间。
有没有办法通过 s3 配置或 api 设置文件夹文件大小限制?如果不是,我是否必须以某种方式使用 apis 来计算每次上传的文件夹大小?我知道亚马逊有 devpay 功能,但如果用户只想使用少量的免费空间,那么在亚马逊上注册可能会很麻烦。
最佳答案
似乎没有办法做到这一点,可能至少部分是因为 S3 中实际上没有“文件夹”这样的东西。只有文件夹的外观。
Amazon S3 does not have concept of a folder, there are only buckets and objects. The Amazon S3 console supports the folder concept using the object key name prefixes.
— http://docs.aws.amazon.com/AmazonS3/latest/UG/FolderOperations.html
S3 存储桶中的所有键实际上都在一个平面命名空间中,带有
/
根据需要使用的分隔符在概念上将对象划分为看起来像文件夹的逻辑分组,但这只是一种方便的错觉。当 S3 根本没有“文件夹”的实际概念时,它似乎不可能有文件夹大小的概念。如果您没有维护客户端存储内容的权威数据库(这表明所有上传都应通过应用程序服务器而不是直接进入 S3,这是对我而言唯一有意义的方法),那么您的唯一的选择是轮询 S3 以发现那里有什么。一个不完美的快捷方式是让您的应用程序读取 S3 存储桶日志以发现已上传的内容,但这仅在尽力而为的基础上提供。它应该是可靠的,但不能保证是完美的。
This service provides a best effort attempt to log all access of objects within a bucket. Please note that it is possible that the actual usage report at the end of a month will slightly vary.
Your other option is to develop your own service that sits between users and Amazon S3, that monitors all requests to your buckets/objects.
同样,让您的应用服务器调解所有请求似乎是合乎逻辑的方法,并且还允许您立即检测(而不是“稍后发现”)用户已超过阈值。
关于amazon-web-services - 我可以计量或设置 s3 文件夹的大小限制吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20832197/