【问题标题】:How do I bulk upload to s3?如何批量上传到 s3?
【发布时间】:2010-10-14 15:02:26
【问题描述】:

我最近重构了我的一些代码,使用“加载数据”将行填充到数据库中,效果很好——但是对于我拥有的每条记录,我必须将 2 个文件上传到 s3——这完全破坏了我得到了。虽然我每秒能够处理 600 多个此类文档,但由于 s3,它们现在以 1/秒的速度流入。

您有什么解决方法?查看 API,我发现它主要是 RESTful,所以我不确定该怎么做——也许我应该将所有这些都保存到数据库中。文本文件通常不超过 1.5k。 (我们在其中填充的另一个文件是文本的 xml 表示)

我已经将这些文件缓存在对我的网络服务器的 HTTP 请求中,因为它们被大量使用。

顺便说一句:我们当前的实现使用java;我还没有尝试过线程,但这可能是一种选择

建议?

【问题讨论】:

    标签: upload amazon-s3 performance bulk


    【解决方案1】:

    您可以使用JetS3t的[putObjects][1]功能一次上传多个文件。

    或者,您可以使用后台线程从队列上传到 S3,并从将数据加载到数据库的代码中将文件添加到队列。

    [1]:http://jets3t.s3.amazonaws.com/api/org/jets3t/service/multithread/S3ServiceMulti.html#putObjects(org.jets3t.service.model.S3Bucket, org.jets3t.service.model.S3Object[])

    【讨论】:

    • thnx 很多——我应该先梳理一下那个 api,而不是认为 s3 的 api 将是最终的全部;这正是我所需要的
    【解决方案2】:

    我刚刚找到了一个很好的解决方案,可以用 php 上传整个目录:

    $client->uploadDirectory(
      SOURCE_FOLDER,
      YOUR_BUCKET_NAME,
      DESTINATION,
      array(
        'concurrency' => 5,
        'debug'          => TRUE,
        'force'            => FALSE,
        'params'        => array(
          'ServerSideEncryption' => 'AES256',
        ),
      )
    );
    

    【讨论】:

      猜你喜欢
      • 2019-04-29
      • 1970-01-01
      • 1970-01-01
      • 2014-02-19
      • 2015-10-19
      • 2017-10-17
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多