我使用transferUtility类使用.NET中的输入流将文件上传到S3。问题是,上传4MB的文件需要大约一分钟。我尝试了transferUtility.Upload和S3Client.PutObject,上传时间似乎没有改变。代码如下:
WebRequest.DefaultWebProxy = null;
this.S3Client = new Amazon.S3.AmazonS3Client(accessKeyId, secretAccessKey, endPoint);
this.transferUtility = new TransferUtility(this.S3Client);
Amazon.S3.Transfer.TransferUtilityUploadRequest transferRequest = new TransferUtilityUploadRequest();
transferRequest.BucketName = s3Bucket;
transferRequest.CannedACL = Amazon.S3.S3CannedACL.PublicRead;
transferRequest.InputStream = (Stream)fileStream;
transferRequest.Key = newFileName;
transferRequest.Headers.Expires = new DateTime(2020, 1, 1);
this.transferUtility.Upload(transferRequest);
任何帮助都将不胜感激。
谢谢,
答案 0 :(得分:0)
我发现这种情况正在发生,因为将文件流上传到应用服务器需要很长时间。
答案 1 :(得分:0)
这很可能也是由于C#SDK MD5sum'它上传的每个块(CPU性能下降,因此在计算MD5Sum时减慢了上传速度)。
请参阅https://github.com/aws/aws-sdk-net/issues/832#issuecomment-383756520了解解决方法。