【问题标题】:AWS S3 Bucket | Determine the count of file datewise and age of the fileAWS S3 存储桶 |确定文件的日期计数和文件的年龄
【发布时间】:2016-10-30 00:28:04
【问题描述】:

我需要使用 C# 代码开发一个服务来获取存储在 S3 存储桶中的文件的按日期计数,并通过文件的年龄对结果进行分组,并将数据存储到具有以下值的数据库中。 服务日期:运行服务的日期。 COUNT:文件总数。 年龄:(当前日期 - 文件创建日期) Bucket中保存了5000个文件,创建日期随机。我需要根据创建日期计算count和age。

假设当前日期是 28/06/2016,而在 27/06/2016 创建的文件是 03
2016 年 6 月 26 日创建的文件为 10 2016 年 6 月 25 日创建的文件是 09,依此类推。 然后应在表中插入以下值,即 服务日期、年龄、人数

我。 (服务日期)28/06/2016(年龄)1(计数)03 II.(服务日期)28/06/2016(年龄)2(计数)10 III.(DATEOFSERVICE)28/06/2016 (AGE)3 (COUNT)09

直到到达最旧的创建文件。 谁能帮我开发获取计数和年龄的逻辑。

谢谢

【问题讨论】:

    标签: c# mysql asp.net amazon-web-services amazon-s3


    【解决方案1】:

    我认为亚马逊文件没有创建日期属性。亚马逊文件包含最后修改(服务器端修改)。所以您可以查看以下代码示例以了解如何检索存储桶内的所有文件和按上次修改分组,并使用 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 for 3.5 net 希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      • 2016-07-05
      • 2020-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多