Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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
Amazon web services 使用PHPSDK查找S3文件夹的大小_Amazon Web Services_Amazon S3_Aws Php Sdk - Fatal编程技术网

Amazon web services 使用PHPSDK查找S3文件夹的大小

Amazon web services 使用PHPSDK查找S3文件夹的大小,amazon-web-services,amazon-s3,aws-php-sdk,Amazon Web Services,Amazon S3,Aws Php Sdk,我使用的是S3存储桶,但我找不到方法来检索存储桶中特定文件夹的大小 塞纳里奥是: 我的网站上的每个用户都有一个文档/user1../user2,每个用户都有有限的空间(每个文件夹1gb)。我需要在我的网站上展示他们仍然拥有的空间,比如: Canheadd = consumed space (what I'm lookingfor) + new file size 确定用户是否还有空间上载新文件 我知道你可以做一个objectlist循环,但对我来说,这不是一件理想的事情,因为每个文档的数量和大

我使用的是S3存储桶,但我找不到方法来检索存储桶中特定文件夹的大小

塞纳里奥是:

我的网站上的每个用户都有一个文档
/user1../user2
,每个用户都有有限的空间(每个文件夹1gb)。我需要在我的网站上展示他们仍然拥有的空间,比如:

Canheadd = consumed space (what I'm lookingfor) + new file size
确定用户是否还有空间上载新文件

我知道你可以做一个
objectlist
循环,但对我来说,这不是一件理想的事情,因为每个文档的数量和大小都不同


欢迎使用任何新的或直接的解决方案。

没有“快速”方法来获取特定“文件夹”中使用的存储量

正确的方法是调用
ListObjects(Prefix='folder/',…)
迭代返回的对象,并求每个对象的大小之和。请注意,每个调用最多返回1000个对象,因此代码可能需要重复调用
ListObjects


如果此方法太慢,您可以维护一个包含所有对象及其大小的数据库,并在应用程序需要确定大小时查询数据库。使用AmazonS3事件在创建/删除对象时触发AWS Lambda函数,以保持数据库的最新状态。这是一个相当复杂的方法,因此我建议使用第一种方法,除非有具体的原因说明它不可行。

没有“快速”的方法来获取特定“文件夹”中使用的存储量

正确的方法是调用
ListObjects(Prefix='folder/',…)
迭代返回的对象,并求每个对象的大小之和。请注意,每个调用最多返回1000个对象,因此代码可能需要重复调用
ListObjects

如果此方法太慢,您可以维护一个包含所有对象及其大小的数据库,并在应用程序需要确定大小时查询数据库。使用AmazonS3事件在创建/删除对象时触发AWS Lambda函数,以保持数据库的最新状态。这是一个相当复杂的方法,因此我建议使用第一种方法,除非有具体原因说明它不可行