2016-06-27 11 views
0

C#コードを使ってサービスを開発し、S3バケットに格納されているファイルの日付別カウントを取得し、その結果をファイルの年齢でグループ化し、データを格納する必要があります。次の値でデータベースに追加します。 DATE OF SERVICE:サービスが実行された日付。 合計:ファイルの合計数。 年齢:(現在の日付 - ファイルが作成された日付) ランダムに作成された日付でバケットに保存された5000のファイルがあります。作成日に基づいてカウントと年齢を計算する必要があります。AWS S3 Bucket |ファイルの日付と年齢のカウントを決定する

と仮定現在の日付が25/06/2016に作成された10 とファイルが09のでです26/06/2016に作成された03
ファイル28/06/2016と27/06/2016に作成されたファイルですに。 次の値、すなわち DATEOFSERVICE、AGEは、

I.(DATEOFSERVICE)をCOUNTテーブルに挿入されるべきである28/06/2016(AGE)1(COUNT)03 II。(DATEOFSERVICE)28/06 (COUNT)09

最も古いファイルが作成されるまで、次のように入力します。 誰もがカウントと年齢をフェッチするロジックを開発するのを助けることができます。

私はアマゾンfiles.Theアマゾンのファイルの日付属性が作成されていないと思いますおかげ

答えて

0

が最後に変更され含まれています(サーバー側修飾)あなたが取得する方法を参照してくださいするために、次のコード例を見ることができます。だから最後に変更したバケットとグループ内のすべてのファイルと、linqを使用して日付別にカウントします。

BasicAWSCredentials basicCredentials = new BasicAWSCredentials("yoursecretkey", "youraccesskey"); 
     AmazonS3Config configurationClient = new AmazonS3Config(); 
     configurationClient.RegionEndpoint = RegionEndpoint.EUCentral1;// region of your bucket 
     try 
     { 
      using (AmazonS3Client clientConnection = new AmazonS3Client(basicCredentials, configurationClient)) 
      { 
       S3DirectoryInfo source = new S3DirectoryInfo(clientConnection, "yourbucket"); 

       var query = source.GetFiles("*", System.IO.SearchOption.AllDirectories).GroupBy(fi => fi.LastWriteTime.ToString("dd/MM/yyyy")).Select(group => new { LastDateModify = group.Key, Count = group.Count()}).OrderBy(fi => fi.LastDateModify); 
       int age = 1; 
       foreach (var amazonFile in query) 
       { 
        Console.WriteLine(string.Format("DATEOFSERVICE:{0} AGE:{1} COUNT:{2}", amazonFile.LastDateModify, age, amazonFile.Count)); 
        age++; 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      // add the properly handling exception 
     } 

上記の例では、私はAWSSDK 3.1.6を3.5ネットに使用しました。

関連する問題