【问题标题】:Using TransferManager for uploading a large number of small sized objects使用 TransferManager 上传大量小型对象
【发布时间】:2020-11-18 16:45:33
【问题描述】:

我有大量文件(约 100 万个),每个文件大小约为 2KB。我目前在 Java 中使用 s3Client 的 PutObject 方法。将每个文件上传到 s3 存储桶。但是所有文件的上传都需要很长时间(约 4-5 小时)。我已经阅读了有关TransferManager 的信息,并且知道它可用于使用multipart 上传大型对象。但这是针对不满足我的用例的至少 5MB 大小的文件。有什么方法可以使用 TransferManager 来提高上传速度?如果没有,我还能做什么?

【问题讨论】:

    标签: java amazon-web-services amazon-s3 aws-sdk


    【解决方案1】:

    如果你使用https请求上传你的文件,你可以尝试使用多个前缀,也可以有多个应用程序的副本,这样可以分担负载,减少时间。其他解决方案是,如果您以后不打算读取单个文件,您可以将数据压缩成多个部分并上传。您也可以参考 aws 文档。 aws s3 performance optimization

    【讨论】:

    • 您能否详细说明第一种方法?
    • 这里的想法是有多个前缀,即子文件夹,以便可以最大化 https 请求,如共享链接中所述。您可以使用这些前缀(子文件夹名称),如下所示:s3client.putObject(new PutObjectRequest(bucketName, "newFolder/"+fileName, file)); 这里“ newFolder/" 指定一个前缀,因此文件将被放入名为 newFolder 的文件夹中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-07
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多