c# - AWS S3 存储桶 |确定文件的日期计数和文件的年龄

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

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

假设当前日期为 2016 年 6 月 28 日,2016 年 6 月 27 日创建的文件为 03
2016 年 6 月 26 日创建的文件为 10 25/06/2016 创建的文件是 09 等等。 那么应将以下值插入表中,即 服务日期、年龄、计数

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

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

谢谢

最佳答案

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

关于c# - AWS S3 存储桶 |确定文件的日期计数和文件的年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38063309/

相关文章:

c# - 如何将数组从 Angular 8 发送到 Web API 核心?

MySQL 内存使用率增长到 100%

asp.net - FileSystemWatcher 在 Azure 中不会触发

javascript - 服务器端的 onclick 事件 html 按钮

asp.net - 不允许用于访问此页面的 HTTP 谓词 Web Api IIS 7

c# - 如何在运行时加载程序集并创建类实例?

c# - 任何人都有任何 C# 代码来解析 robots.txt 并根据它评估 URLS

php - 从 mySQL 数据库中选择行并显示为列

c# - 在正则表达式中查找两个模式

MySQL:获取最大连续出现次数