[英]AWS S3 Bucket | Determine the count of file datewise and age of the file
我需要使用C#代碼開發一項服務,以獲取存儲在S3存儲桶中的文件的按日期計數,並通過文件的使用期限對結果進行分組,然后使用以下值將數據存儲到數據庫中。 服務日期:服務運行的日期。 COUNT:文件總數。 年齡:(當前日期-文件創建日期)存儲在存儲桶中的文件隨機創建了5000個文件。我需要根據創建的日期計算計數和年齡。
假設當前日期為2016年6月28日,創建於2016年6月27日的文件為03
在2016年6月26日創建的文件為10,在2016年6月25日創建的文件為09,依此類推。 然后應在表中插入以下值,即DATEOFSERVICE,AGE,COUNT
一。(服務日期)2016年6月28日(年齡)1(計數)03二。(服務日期)2016年6月28日(年齡)2(計數)10三。(服務日期)2016年6月28日(年齡)3 (COUNT)09
直到到達最舊的創建文件。 誰能幫我發展得出年齡和年齡的邏輯。
謝謝
我認為沒有為Amazon文件創建日期屬性.Amazon文件包含上次修改(Server-side-Modified)。因此您可以查看以下代碼示例,以了解如何檢索存儲桶中的所有文件並按組進行分組修改,並使用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 net,希望對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.