是否可以批量上传到亚马逊S3?

20 浏览
0 Comments

是否可以批量上传到亚马逊S3?

亚马逊S3支持批量上传吗?

我有一个任务,每晚需要上传大约100K的文件,这些文件可以达到1G,但主要是小文件(90%小于100字节,99%小于1000字节)。

S3的API是否支持在单个HTTP调用中上传多个对象?

所有对象都必须作为单独的对象在S3中可用。我不能将它们托管在其他地方(FTP等)或以其他格式(数据库,EC2本地驱动器等)保存。这是一个我无法更改的外部要求。

0
0 Comments

文章标题:如何在Amazon S3上进行批量上传?

在Stack Overflow上有一个关于批量上传到Amazon S3的问题。问题是是否可以在Amazon S3上执行批量上传。回答是肯定的,但是Amazon S3 API本身并不直接支持批量上传。然而,使用awscli工具可以实现并发(并行)上传,从客户端的角度和带宽效率来看,这两种选择的性能差不多。

为了提高上传性能,可以通过增加并发数来修改max_concurrent_requests的值。这个值表示可以同时发送到Amazon S3的请求数量。默认值是10,可以将其增加到较高的值。然而,需要注意以下几点:

- 运行更多的线程会消耗计算机的资源,必须确保计算机具有足够的资源来支持所需的并发请求数量。

- 过多的并发请求可能会压垮系统,导致连接超时或系统响应速度变慢。为了避免AWS CLI的超时问题,可以尝试将--cli-read-timeout值或--cli-connect-timeout值设置为0。

为了提供关于“运行更多的线程消耗更多资源”的线索,作者在一个运行aws-cli的容器中进行了一项小型测量。作者使用aws-cli工具上传了一个包含约550个HTML文件(总共约40 MiB,平均文件大小约为72 KiB)的目录到S3。作者绘制了上传过程中CPU使用率、RSS和线程数量的图表。

文章没有提到容器的硬件规格。

通过整理这些内容,我们可以得出关于批量上传到Amazon S3的问题的原因是Amazon S3 API本身不支持批量上传,但可以通过使用awscli工具的并发上传功能来实现。解决方法是修改max_concurrent_requests的值来增加并发数,并注意资源消耗和系统响应的问题。

以下是整理的

如何在Amazon S3上进行批量上传?

在Stack Overflow上有一个关于批量上传到Amazon S3的问题。问题是是否可以在Amazon S3上执行批量上传。回答是肯定的,但是Amazon S3 API本身并不直接支持批量上传。然而,使用awscli工具可以实现并发(并行)上传,从客户端的角度和带宽效率来看,这两种选择的性能差不多。

为了提高上传性能,可以通过增加并发数来修改max_concurrent_requests的值。这个值表示可以同时发送到Amazon S3的请求数量。默认值是10,可以将其增加到较高的值。然而,需要注意以下几点:

- 运行更多的线程会消耗计算机的资源,必须确保计算机具有足够的资源来支持所需的并发请求数量。

- 过多的并发请求可能会压垮系统,导致连接超时或系统响应速度变慢。为了避免AWS CLI的超时问题,可以尝试将--cli-read-timeout值或--cli-connect-timeout值设置为0。

为了提供关于“运行更多的线程消耗更多资源”的线索,作者在一个运行aws-cli的容器中进行了一项小型测量。作者使用aws-cli工具上传了一个包含约550个HTML文件(总共约40 MiB,平均文件大小约为72 KiB)的目录到S3。作者绘制了上传过程中CPU使用率、RSS和线程数量的图表。

通过以上内容的整理,我们可以得出关于批量上传到Amazon S3的问题的原因是Amazon S3 API本身不支持批量上传,但可以通过使用awscli工具的并发上传功能来实现。解决方法是修改max_concurrent_requests的值来增加并发数,并注意资源消耗和系统响应的问题。

0
0 Comments

Amazon S3是一种云存储服务,允许用户上传和下载文件。然而,在Amazon S3中,每次HTTP请求只能上传一个对象。这对于需要批量上传大量文件的用户来说可能是一个问题。

解决这个问题的方法之一是使用S3工具。用户可以在他们的机器上安装S3工具,并使用命令行工具进行文件同步。具体来说,用户可以运行以下命令:s3cmd sync localdirectory s3://bucket/。这个命令会同步本地目录和远程存储桶,实现批量上传。

用户还可以将该命令放入一个脚本中,并创建一个定时任务,每天晚上运行该脚本,实现自动批量上传。

需要注意的是,S3工具基于MD5哈希和文件大小进行文件同步,因此碰撞的可能性很小。如果用户希望覆盖目标存储桶中的对象,可以使用"s3cmd put"命令来强制盲目覆盖。

另外,用户还可以使用Node.js的S3客户端进行文件同步。

需要注意的是,使用S3工具需要购买许可证。

总结起来,用户可以通过安装S3工具并使用命令行工具进行文件同步,实现批量上传到Amazon S3。此外,用户还可以使用Node.js的S3客户端进行同步操作。

0
0 Comments

AWS CLI工具提供了一个名为"sync"的命令,可以通过该命令将本地文件夹批量上传到Amazon S3。同时,提到了可以使用该方法来快速批量上传文件到S3。然而,有人提出了一个问题,希望知道是否有一种参数可以将上传或同步的结果输出到本地的TXT文件中,以便通过blat.exe发送给其他人。该问题是为了实现定时同步数千个文件,并通过其他服务器下载这些文件。

0