繁体   English   中英

如何使用python跟踪s3存储桶文件夹使用情况?

[英]How can I track s3 bucket folder usage with python?

我正在构建一个文件托管应用程序,它将所有客户端文件存储在S3存储桶上的文件夹中。 然后,我想递归地跟踪每个顶级文件夹在S3上的使用量,以将存储成本和带宽退还给每个相应的客户端。

前端是django,但出于明显的原因,解决方案可以是python。

以编程方式为每个客户端创建存储桶是否更好?

如果我采用为每个客户端创建存储桶的方法,那么如果启用该功能,是否有可能获得存储桶在云端暴露的成本?

根据您的需求,可以为您的任务提供多种解决方案。 首先看一下Amazon DevPay是否符合您的需求,这应该允许通过使用EC2和S3资源向客户端收费。

第二个想法是使用您的AWS账户的“ 账户活动和使用情况报告”部分。 可以通过IAM授予对此权限的访问。 您可以在此处获得有关整个使用情况的详细统计信息,尽管我认为您不能按桶将其细分。

另一种方法是在Python中使用Amazon boto SDK来获取对象及其大小。 或者,您可以在客户端软件上载期间监视存储的大小。 结合上述方法提供的总支出并手动跟踪每个客户的使用情况,您可能可以计算每个客户的费用金额。

不可能为每个用户创建存储桶,因为Amazon每个帐户仅允许100个存储桶。 因此,除非您确定用户数不超过100,否则这将是一个非常糟糕的主意。

理想的解决方案是记住数据库中Django应用本身中每个用户的存储。 我猜您将使用S3 boto库存储文件,而不是每次上传后返回字节大小。 您可以使用它来存储它。

还有另一种解决方法,您可以在存储桶内创建许多文件夹,每个文件夹特定于一个用户。 但仍然是记住应用程序中存储使用情况的最佳方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM