如何使用AWS .Net SDK将数据上传到S3时使用限制

时间:2014-11-28 11:52:08

标签: .net amazon-web-services amazon-s3

我有一个使用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

0 个答案:

没有答案