Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python跟踪s3存储桶文件夹的使用情况?_Python_Django_Amazon S3 - Fatal编程技术网

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

如何使用python跟踪s3存储桶文件夹的使用情况?,python,django,amazon-s3,Python,Django,Amazon S3,我正在构建一个文件托管应用程序,将所有客户端文件存储在S3存储桶上的一个文件夹中。然后,我希望递归地跟踪每个顶级文件夹在S3上的使用量,以向每个相应的客户机收回存储和带宽成本 前端是django,但由于明显的原因,解决方案可以是python 以编程方式为每个客户端创建一个bucket是否更好 如果我采用为每个客户端创建一个bucket的方法,那么如果启用了该bucket,是否可以获得cloudfront曝光的成本?根据您的需要,您的任务可能有多种解决方案。首先看看是否适合您的需要,这应该允许通过

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

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

以编程方式为每个客户端创建一个bucket是否更好


如果我采用为每个客户端创建一个bucket的方法,那么如果启用了该bucket,是否可以获得cloudfront曝光的成本?

根据您的需要,您的任务可能有多种解决方案。首先看看是否适合您的需要,这应该允许通过使用EC2和S3资源向客户端计费

第二个想法是使用AWS帐户的部分。可通过授予访问权限。你可以在那里得到你整个使用情况的详细统计数据,尽管我不认为你可以按桶来细分


另一种方法是使用获取对象及其大小。或者,您可以在上载客户端软件的过程中监视存储的大小。通过上述方法给出的总支出和手动跟踪每个客户的使用情况,您可能可以计算每个客户的费用金额。

不,不可能为每个用户创建一个bucket,因为亚马逊每个帐户只允许100个bucket。因此,除非你确定不会有超过100个用户,否则这将是一个非常糟糕的主意

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

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