2017-03-01 17 views
0

laravelのすべてのファイルをループせずにフォルダのサイズを取得します。フォルダはAmazon S3にあります。現在のコードはlaravelを使用してAmazon s3のフォルダのサイズを取得

$files = Storage::allFiles($dir); 
foreach ($files as $file) { 
    $size+= Storage::size($file); 
} 

です。これを達成する方法はありません。

+0

http://stackoverflow.com/a/478161/7398574 –

答えて

0

フォルダのサイズを再帰的にループせずに計算する方法はありません。

クイックコマンドラインソリューションでは、duを使用しています。

du -hs /path/to/directoryは、ディスク使用量を出力します。

  • -hは、人間が判読可能な数字を取得することです。参照さ140Mの代わりに、143260(キロバイトでサイズ)
  • -sが要約のためである(そうでない場合は、フォルダのサイズだけでなく、個別にフォルダ内のすべてのためだけでなく、を得るでしょう)

を得る:https://askubuntu.com/questions/1224/how-do-i-determine-the-total-size-of-a-directory-folder-from-the-command-line

+0

最近Amazonがその機能をアップデートしました。 – Salini

0

Amazon CloudWatchは、バケットに格納されているオブジェクトの数と占有されているストレージスペースの自動メトリックを提供します。これらの指標がどれくらいの頻度で更新されるかはわかりませんが、それは最も簡単に使用できます。ただし、特定のフォルダではなく、のバケット全体をと測定します。

を参照してください:あなたが持っているAmazon Simple Storage Service Metrics and Dimensions

0

他のオプションは、あなたが一日古い統計情報を扱うことができれば、新しくリリースされた「S3ストレージインベントリ」機能です。

S3はサイズを含め、フォルダ内のすべてのオブジェクトの在庫を持って、毎日(または毎週)ファイルを消すことができます。

http://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html

アマゾンS3の在庫は、ツールの一つでありますAmazon S3は、 あなたのストレージを管理するのに役立ちます。 Amazon S3インベントリを使用してビジネスワークフロー と大きなデータジョブを簡素化およびスピードアップすることができます。Amazon S3インベントリを使用すると、Amazon S3同期リストAPI操作の代わりに がスケジュールされます。 Amazon S3のインベントリでは、コンマ区切り値(CSV)のフラットファイル のオブジェクトとそれに対応するメタデータが毎日または のS3バケットまたは共有プレフィックス(つまりオブジェクト )の週単位で提供されます。共通の文字列で始まります)。

あなたがに 店舗在庫リストフラットファイル出力を、毎日に 在庫を生成するかどうか、すべてのオブジェクトバージョンのみ現在のバージョンを表示するかどうかをどのようなオブジェクトのメタデータインベントリに含まれるように、 設定することができますまたは週単位。複数の在庫 リストをバケット用に構成することができます。価格設定の詳細については、 Amazon S3価格設定を参照してください。

関連する問題