亚马逊s3上传服务不上传大文件



我有一个UWP应用程序,它使用AWS SDK for.NET(高级API(TransferUtility将文件上载到S3 Bucket
当我上传小尺寸的录制文件时,此API运行良好,但当我上传较大的文件时,文件似乎无法上传,并引发以下错误:发送请求时出错//在某些测试中一项任务被取消

为了修复这个错误,我从互联网上引用了多个资源,但无法获得解决方案。我还尝试向TransferUtilityUploadRequest添加不同的参数,即PartSize,以确定多部分分段的大小,将transferUtility Config添加为transferUtility的附加参数,配置了发送上传请求时使用的各种RegionEndpoint。在将大文件上传到s3 bucket时,添加这些更改并没有产生任何影响。

下面是我使用的代码片段

int MB_SIZE = (int)Math.Pow(2, 20);
var s3Client = new AmazonS3Client(objUploadRecording.AccessKeyId, objUploadRecording.SecretAccessKey,objUploadRecording.Token, region);
var transferUtilityConfig = new TransferUtilityConfig
{
// Use 5 concurrent requests.
ConcurrentServiceRequests = 5,
// Use multipart upload for file size greater 1 MB.
MinSizeBeforePartUpload = 1 * MB_SIZE,
};
using (var transferUtility = new TransferUtility(s3Client, transferUtilityConfig))
{
var uploadRequest = new TransferUtilityUploadRequest
{
BucketName = objUploadRecording.BucketName,
Key = objUploadRecording.S3Filename,
FilePath = objUploadRecording.FilePath,
// Set size of each part for multipart upload to 1 MB
PartSize = 1 * MB_SIZE
};
uploadRequest.UploadProgressEvent += OnUploadProgressEvent;
CancellationToken cancellationToken = default(CancellationToken);
try
{
await transferUtility.UploadAsync(uploadRequest, ancellationToken);
}
catch (Exception ex)
{                                                    
LoggingServices.Instance.WriteLine<RecordingListPage>("AWS Upload         
Error: " + ex.Message.ToString(), MetroLog.LogLevel.Error);
}

有人能告诉我哪里做错了吗?或者我必须在这里添加哪些额外的参数才能完成这项工作?

谢谢大家,正如我提到的,我使用aws高级SDK上传文件,但它不起作用。此外,我还没有找到任何其他的实现或解决方案,可以消除在我的应用程序中引起的问题。因此,我在这里使用了一个低级别的API

并成功上传文件。有一个缺点,比如它一部分一部分地上传文件,但这对我来说很好。

最新更新