Amazon S3低级API上传大文件

时间:2014-07-17 07:33:03

标签: c# amazon-s3

我正在使用Amazon S3低级API上传大型视频文件,我正在关注This link

当我上传文件时,它给我异常

The XML you provided was not well-formed or did not validate against our published schema

我检查了内部异常及其说这个

The remote server returned an error: (400) Bad Request.

在这一行

 CompleteMultipartUploadResponse completeUploadResponse =
                    s3Client.CompleteMultipartUpload(completeRequest);

这就是我制作S3Client的方式

 IAmazonS3 s3Client = new AmazonS3Client(accesskey, secretKey, Amazon.RegionEndpoint.USEast1);

我也尝试更改桶名,如bucketname / filename.mp4,但是它给出异常

The specified upload id is not valid

我还尝试了一些其他文件(doc和pdf),它也提供了XML异常。

上传大型视频文件(大约200-500MB)有什么好的替代方法吗?

2 个答案:

答案 0 :(得分:2)

我在使用doc中的示例代码进行MultiPart上传时发现了类似的问题。我发现ETag列表对于CompleteMultipartUpload部分是强制性的 - 这不在文档样本中。

此链接更好地解释了多部分上传过程:s3 multipart upload

答案 1 :(得分:0)

我曾经将档案发送到S3(大约100-300MB)。我的代码看起来像这样:

AmazonS3Client s3client = new AmazonS3Client(accessKey, secretKey);
s3Client.PutObject(new PutObjectRequest {BucketName = destinationBucketName, FilePath = myFilePath, Key = Path.GetFileName(myFilePath)});

基本上就是这样。我有重试策略和异常处理,但这是核心。因此,只需简单的PutObject函数就可以找到这样的文件大小。