使用aws sdk multipart上传上传大文件

时间:2016-02-24 14:11:25

标签: c# .net amazon-s3 aws-sdk

当我尝试使用AWS软件开发工具包使用AWS软件开发人员网站上提供的高级API代码上传大文件时,我无法这样做,尽管我提供了正确的参数,但应用程序因意外错误而停止。

这是我的代码:

static string existingBucketName = "xxxxxxxxxxxxxxxx";
static string keyName            = "filename";
static string filePath           = "D:\file.txt";

try
{
    TransferUtility fileTransferUtility = new TransferUtility(new AmazonS3Client(Amazon.RegionEndpoint.USEast1));

    TransferUtilityUploadRequest fileTransferUtilityRequest = new TransferUtilityUploadRequest
    {
        BucketName = existingBucketName,
        FilePath = filePath,
        StorageClass = S3StorageClass.ReducedRedundancy,
        PartSize = 6291456, // 6 MB.
        Key = keyName,
        CannedACL = S3CannedACL.PublicRead
    };

    fileTransferUtilityRequest.Metadata.Add("param1", "Value1");
    fileTransferUtilityRequest.Metadata.Add("param2", "Value2");
    fileTransferUtility.Upload(fileTransferUtilityRequest);
    Console.WriteLine("Upload 4 completed");
}
catch (AmazonS3Exception s3Exception)
{
    Console.WriteLine(s3Exception.Message, s3Exception.InnerException);
}

使用低级API上传时的同一文件上传时没有错误,但需要花费大量时间。所以我希望高级API可以更快地上传它。或者是否有其他方法可以使用SDK上传大文件?

1 个答案:

答案 0 :(得分:1)

只需将我的应用从 .Net版本4.0 升级到 .Net版本4.5 ,就可以了。