AWS s3分段上传是否有最大的并发性?

Kai Qing

参考文档,您可以指定使用分段上传器将大型文件推送到Amazon Web Services s3时的并发连接数。虽然确实说并发默认为5,但没有指定最大值,也没有指定每个块的大小是否从总文件大小/并发中得出。

我拖曳了源代码,注释与文档几乎相同:

设置上载零件时要使用的并发级别。这会影响并行上传的部分数量。当使用大于1的并发时,必须使用本地文件作为数据源

所以我的功能构建看起来像这样(通过定义方式来定义var,例如,这只是压缩的):

use Aws\Common\Exception\MultipartUploadException;
use Aws\S3\Model\MultipartUpload\UploadBuilder;

    $uploader = UploadBuilder::newInstance()
      ->setClient($client)
      ->setSource($file)
      ->setBucket($bucket)
      ->setKey($file)
      ->setConcurrency(30)
      ->setOption('CacheControl', 'max-age=3600')
      ->build();

效果很好,除了200mb的文件需要9分钟的上传时间...并发30个并发连接?对我来说似乎很可疑,所以我将并发性提高到100,上传时间为8.5分钟。如此小的差异可能只是连接而不是代码。

所以我的问题是是否有并发最大值,它是什么,以及是否可以指定块的大小或是否自动计算块大小。我的目标是尝试在5分钟内将500mb的文件传输到AWS s3,但是如果可能的话,我必须对其进行优化。

Kai Qing

查看源代码,看起来最大并发连接数为10,000。没有基于并发连接的块大小自动计算,但是您可以根据需要自行设置这些大小。

我将块大小设置为10兆,并发连接20个,它似乎工作正常。在真实的服务器上,我得到了一个100兆的文件,要在23秒内传输。在开发环境中,这比3 1/2到4分钟要好得多。有趣的是,但如果有其他人遇到同样的问题,它们便是这些数据。

这就是我的构建器最终的结果:

$uploader = UploadBuilder::newInstance()
  ->setClient($client)
  ->setSource($file)
  ->setBucket($bicket)
  ->setKey($file)
  ->setConcurrency(20)
  ->setMinPartSize(10485760)
  ->setOption('CacheControl', 'max-age=3600')
  ->build();

我可能需要增加最大缓存,但是到目前为止,这可以接受。关键是将处理器代码移至服务器,而不依赖于我的开发环境的弱点,无论计算机的功能多么强大或互联网连接是否高级。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我如何使用php-aws lib listParts()方法获取1000多个Amazon S3分段上传文件。

来自分类Dev

超时后,AWS S3是否会自动中止分段上传?

来自分类Dev

使用AWS C ++ SDK的分段上传S3

来自分类Dev

带有用户定义元数据的 AWS .NET SDK S3 分段上传

来自分类Dev

AWS S3 CLI:匿名用户无法启动分段上传

来自分类Dev

将AWS php putObject从$ _FILE []分段上传到S3

来自分类Dev

反应本机AWS S3上传

来自分类Dev

通过使用分段上传API将小于5 MB的文件上传到AWS S3存储桶

来自分类Dev

具有预配置并发性的AWS Fargate vs Lambda

来自分类Dev

AWS分段上传SignatureDoesNotMatch

来自分类Dev

定期从AWS S3读取并发布到SQS

来自分类Dev

将数据上传到S3时,AWS CLI是否使用SSL?

来自分类Dev

是否可以在不使用ETag的情况下通过aws-java-sdk-s3使用分段上传?

来自分类Dev

使用 cakephp 3 上传 AWS S3 文件

来自分类Dev

玩!上传文件并保存到AWS S3

来自分类Dev

文件上传到AWS S3 Laravel 5.1

来自分类Dev

iOS AWS S3 Transfer Utility未上传

来自分类Dev

iOS –同步上传到AWS S3

来自分类Dev

使用签名URL的AWS S3上传

来自分类Dev

从S3上传AWS Lambda和zip

来自分类Dev

Laravel AWS S3上传照片错误(区域错误?)

来自分类Dev

使用AWS Amplify从React Native上传到S3

来自分类Dev

Django:将CSV文件上传到AWS S3

来自分类Dev

AWS S3上传时间限制完成

来自分类Dev

使用JqueryFileUpload的Ruby on Rails Direct AWS S3上传

来自分类Dev

iOS AWS S3 Transfer Utility未上传

来自分类Dev

通过AWS Api Gateway上传S3表单文件

来自分类Dev

AWS S3在允许上传的同时防止删除

来自分类Dev

将网址图片上传到S3 AWS