2016-06-27 5 views
0

S3 버킷에 저장된 파일의 날짜 별 개수를 가져오고 파일의 수명을 기준으로 결과를 그룹화하고 데이터를 저장하기 위해 C# 코드를 사용하여 서비스를 개발해야합니다. 다음 값으로 데이터베이스에 저장하십시오. 서비스 날짜 : 서비스가 실행되는 날짜. 개수 : 총 파일 수입니다. 나이 : (현재 날짜 - 파일 생성 날짜) 생성 된 임의의 날짜와 함께 버킷에 저장된 파일이 5000 개 있습니다. 생성 된 날짜를 기준으로 개수 및 나이를 계산해야합니다.AWS S3 Bucket | 파일의 날짜 및 나이 계산하기

가정 해 현재 날짜는 25/06/2016에 작성 (10) 파일 09 등이다 26/06/2016에 작성 03
파일 28/06/2016과 27/06/2016에 만든 파일입니다 에. 후 다음의 값 즉 DATEOFSERVICE, AGE는

I. (DATEOFSERVICE)를 카운트 테이블에 삽입되어야 28/06/2016 (AGE) 1 (COUNT) 03 II. (DATEOFSERVICE) 28/06/날짜 : 2016 (AGE) 2 (COUNT) 10 III. (DATEOFSERVICE) 28/06/2016 (AGE) 3 (COUNT) 09

가장 오래된 생성 파일에 도달 할 때까지. 누구든지 카운트와 나이를 가져올 수있는 논리를 개발하도록 도와주세요.

감사

답변

0

나는 수정이 순서대로 다음 코드 예제를 볼 수 있습니다 낭포 (측-수정 된 서버)를 검색하는 방법을 마지막으로 볼 포함 아마존 files.The 아마존 파일 날짜 속성이 생성되지 않은 생각 버킷 및 그룹 내의 모든 파일을 마지막으로 수정하여 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 
     } 

위 예의 예에서는 3.5.50 용 AWSSDK 3.1.6을 사용했습니다.이 도움이되기를 바랍니다.