如何使用python跟踪s3存储桶文件夹的使用情况?
我正在构建一个文件托管应用程序,将所有客户端文件存储在S3存储桶上的一个文件夹中。然后,我希望递归地跟踪每个顶级文件夹在S3上的使用量,以向每个相应的客户机收回存储和带宽成本 前端是django,但由于明显的原因,解决方案可以是python 以编程方式为每个客户端创建一个bucket是否更好如何使用python跟踪s3存储桶文件夹的使用情况?,python,django,amazon-s3,Python,Django,Amazon S3,我正在构建一个文件托管应用程序,将所有客户端文件存储在S3存储桶上的一个文件夹中。然后,我希望递归地跟踪每个顶级文件夹在S3上的使用量,以向每个相应的客户机收回存储和带宽成本 前端是django,但由于明显的原因,解决方案可以是python 以编程方式为每个客户端创建一个bucket是否更好 如果我采用为每个客户端创建一个bucket的方法,那么如果启用了该bucket,是否可以获得cloudfront曝光的成本?根据您的需要,您的任务可能有多种解决方案。首先看看是否适合您的需要,这应该允许通过
如果我采用为每个客户端创建一个bucket的方法,那么如果启用了该bucket,是否可以获得cloudfront曝光的成本?根据您的需要,您的任务可能有多种解决方案。首先看看是否适合您的需要,这应该允许通过使用EC2和S3资源向客户端计费 第二个想法是使用AWS帐户的部分。可通过授予访问权限。你可以在那里得到你整个使用情况的详细统计数据,尽管我不认为你可以按桶来细分
另一种方法是使用获取对象及其大小。或者,您可以在上载客户端软件的过程中监视存储的大小。通过上述方法给出的总支出和手动跟踪每个客户的使用情况,您可能可以计算每个客户的费用金额。不,不可能为每个用户创建一个bucket,因为亚马逊每个帐户只允许100个bucket。因此,除非你确定不会有超过100个用户,否则这将是一个非常糟糕的主意 理想的解决方案是在数据库中记住每个用户在Django应用程序中的存储。我猜您应该使用S3 boto库来存储文件,而不是在每次上传后返回字节大小。你可以用它来储存 还有另一种解决方法,您可以在一个bucket中创建多个文件夹,每个文件夹特定于一个用户。但这仍然是记住应用程序中存储使用情况的最佳方法