AWS S3文件同步

时间:2018-09-18 00:44:41

标签: multithreading amazon-web-services file amazon-s3 synchronization

我正在尝试从本地源到S3存储桶进行文件同步,在这里我通过计算MD5校验和并将其放在每个文件的元数据中将文件上传到S3存储桶。问题是这样做时,我还检查了目标位置已经存在的文件,以避免重复上传。为此,我创建了一个要上传的文件列表,但文件名和MD5都不匹配。即时获取S3文件的元数据并为本地文件计算MD5,然后对其进行匹配的操作需要花费大量时间,因为我大约需要200000至500000个文件进行匹配。

是否有更好的方法可以通过使用多线程或其他方法来实现。我不太了解如何在多线程环境中实现它,因为我最终需要一个列表和多个线程来处理并添加到同一列表中。任何代码示例或帮助都将不胜感激。

此Windows作业应用程序是使用.NET 4.6.1框架以C#编写的。

1 个答案:

答案 0 :(得分:1)

您可以使用AWS Command-Line Interface (CLI),它具有一个aws s3 sync命令,该命令的执行与您所描述的非常相似。但是,对于数十万个文件,它在匹配时也将执行缓慢。

或者,您可以使用Amazon S3 Inventory - Amazon Simple Storage Service来获取S3存储桶中文件的每日列表(包括MD5校验和),然后将其与文件进行比较。