【问题标题】:Is there a way to Continuously write streams(line-by-line) in S3有没有办法在 S3 中连续写入流(逐行)
【发布时间】:2014-06-04 18:35:54
【问题描述】:

谁能建议我将数据(逐行)写入 S3 的方式或示例代码。

它就像一个流进入某个文件,一旦我的程序收到每一行,它就必须在 S3 中编写。 所以我只需要一个存储桶和 s3 中的一个文件。

示例输入:

String lines[] = ["This is first line","This is Second line", "This is Third Line"]

s3 Initialization,...etc
itererator i = lines;  
while (i.hasnext())
{
    s3Service.putObject(testBucket, i); // Write each line in S3
}

请检查流程并建议我提供代码示例。

非常感谢...

【问题讨论】:

  • 需要用到multipart API,见this SO post
  • 嗨,Alden,感谢您的快速回复,我怀疑,如果我使用此 API 上传流数据,会不会导致性能问题。看起来它旨在上传大小非常大的文件,但在我的情况下,我计划每次缓冲 1024 个字节(因为数据来自另一个进程)并上传。在我的情况下可以使用吗?请提出建议,否则有没有办法远程打开 http 文件句柄并在我的代码中管理?请告诉我。提前致谢。
  • 任何人都可以尝试将流上传到 S3 吗?如果是,请帮助我完成程序。我知道我们可以使用 AWS 开发工具包,但它似乎对分段上传 API 有一些限制(至少需要 5MB 的流数据),但在我的情况下,我想在收到流时上传 1024 字节。感谢您的帮助!
  • 如果你只处理 1024 字节,你可以用 \n 加入你的行,然后用所有东西拨打一个 putObject 电话
  • 嗨,Avis,你最终的解决方案是什么?

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


【解决方案1】:

注意到这是 3 年前的一个问题,现在您可以使用 AWS Kinesis Firehose 轻松实现此目的,您只需将该字符串写入 firehose,firehose 将帮助您按时间或大小聚合,然后传递到 S3。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    相关资源
    最近更新 更多