我有一个使用AWS .net API将文件上传到Amazon S3的应用程序。 我的查询是,我们可以在将数据上传到S3时使用限制吗?如果我从一台小型机器上传过多文件,请说< 5MB然后我的整个带宽被呛到了。那么有没有办法在上传数据时管理带宽。我们还尝试使用低级.net API和高级API,但没有用于设置限制的属性或API。
然后我尝试使用.net的Throttled Stream类但是如果我保持512KB的块大小并且我当前的网络是2MBPS,这仍然很顺利,我仍然不确定是因为受限制的流类还是因为低块大小,它工作正常。
以下是我的代码:
bps = (long)(1024 * ObjMetaData.MaxAvailSpeed * ((double)ObjMetaData.Bandwidth / 100.0));
throttleStreamObj = new IUploader.ThrottledStream(ObjMetaData.FileStream, bps);
fileTransferUtilityRequest =
new TransferUtilityUploadRequest()
.WithBucketName(existingBucketName)
.WithStorageClass(S3StorageClass.ReducedRedundancy)
.WithMetadata(metaInfo)
.WithPartSize(partSize)
.WithKey(keyName)
.WithCannedACL(S3CannedACL.PublicRead)
.WithTimeout(Int32.MaxValue - 1)
.WithServerSideEncryptionMethod(ServerSideEncryptionMethod.AES256)
.WithInputStream(throttleStreamObj) as TransferUtilityUploadRequest;
我按照以下链接 http://www.codeproject.com/Articles/18243/Bandwidth-throttling