Amazon S3 - 如何提高存储桶到存储桶的文件复制速度?

问题描述 投票:0回答:1

我正在从事视频迁移(PHP、drupal 10),即将文件从一个 S3 存储桶复制到另一个存储桶。我正在使用 S3FileImport 类的 copyObject() 方法来复制文件。

问题是我有很多小文件(视频片段),迁移需要很多时间。 IE。 1 个视频可以有 500 个片段文件,复制所有这些文件大约需要 2 分钟,而且我也有很多视频。

问题:如果源文件在同一个bucket上,复制速度会提高多少?想法是使用一些批量复制首先将所有文件移动到同一个存储桶(drupal 的本地存储),然后运行迁移。这有意义吗?

如果没有,关于如何提高复制速度还有其他建议吗?

amazon-web-services performance amazon-s3 drupal copy
1个回答
0
投票

copyObject()
方法指示S3在位置之间复制对象。这完全发生在 AWS 内,不涉及下载/上传数据。对于在同一存储桶或不同存储桶中复制的对象,它将以相同的速度运行(只要存储桶位于同一区域)。

您面临的问题是每个复制请求都有开销——主要是发送请求和接收响应。要加快复制过程,您可以并行发出复制命令。即使用多线程发出更多的 Copy 命令,而无需等待响应才发出下一个 Copy 请求。这就是 AWS CLI 如此快速地复制文件的原因。

当然,最好的解决方案是如果可能的话不要复制这些文件。也许您可以找到一种方法让您的应用程序从实际源读取,而不必先复制所有对象。

© www.soinside.com 2019 - 2024. All rights reserved.