【发布时间】:2017-03-10 19:23:44
【问题描述】:
我正在使用以下代码将所有本地文件上传到 s3:
static string bucketName = "s3bucket";
static string directoryPath = @"C:\data\";
private void btnUpload_Click(object sender, EventArgs e) {
try {
TransferUtility directoryTransferUtility =
new TransferUtility(new AmazonS3Client(Amazon.RegionEndpoint.USWest2));
TransferUtilityUploadDirectoryRequest request =
new TransferUtilityUploadDirectoryRequest {
BucketName = bucketName,
Directory = directoryPath,
SearchPattern = "*.xml"
};
directoryTransferUtility.UploadDirectory(request);
MessageBox.Show("Upload completed");
} catch (AmazonS3Exception ex) {
MessageBox.Show(ex.Message);
}
}
如果我再次运行代码,所有文件都会重新上传到 s3,如果假设我们的本地目录中有 1000 多个文件,那将是一个坏主意。
我知道我可以逐个文件比较,因为 aws 存储每个文件的 md5。 所以我的问题是我可以使用预装的命令来执行此操作吗?我是否必须逐个文件递归比较?如果同步命令存在于 awscli 包 (aws s3 sync ./sourceDir s3://bucketname/) 上,它是否也存在于 c# 上?
【问题讨论】:
标签: c# amazon-web-services amazon-s3 upload synchronization