2016-11-15 45 views
-2

s3バケットの合計アイテムの数を取得したいAWS php sdk V3を使用していますが、これを行う方法はありますか。php sdkを使用してAWS s3バケットのオブジェクト数を取得する

私は今イテレータを使用していますが、バケットは、より以上の20Kのファイルを持っているので、それは、作業が、ファイルの数を取得するために多くの時間を取って、ここではコードの私の作品です:

$iterator = $this->s3client->getIterator('ListObjects', array(
    'Bucket' => $this->bucket, 
    'Delimiter' => '/', 
    'Prefix'=>$path 
)); 
$count = 0; 
foreach ($iterator as $object) { 
    $count++; 
} 
return $count; 
+0

[APIのドキュメント](http://docs.aws.amazon.com/aws-sdk-php/v3/api/)を参照してください。 – JNYRanger

+0

あなたは私の質問を理解していないようですが、質問を編集してより明確にしましたが、今理解できることを願っています –

+1

この種の質問の会場を作成することに興味がある人は、[[専用のクラウドコンピューティングサイトのStackExchange](http://area51.stackexchange.com/proposals/96256/practical-cloud-computing) –

答えて

3

あなたがしたいですListObjectsを呼び出すプログラムを作成し、結果をループさせる必要があります(結果がページ区切りになる可能性があり、複数の呼び出しが必要です)。

また、Amazon CloudWatchはmetric on the count of objects in each bucketを維持しています。

+0

実際には 'ListObjects'を使ってファイルをリストしていますが、ページあたり200個のアイテムを持つページネーションを使用していますが、ページの先頭に合計カウントを表示する必要があります。バケツは20K以上のファイルを持ち、今後も増加し続けます –

関連する問題