使用java代码计算S3上文件中的行数

时间:2015-11-16 22:44:33

标签: amazon-web-services amazon-s3

使用Java代码,是否可以在AWS s3上计算文件中的行数而无需将其下载到本地计算机。

1 个答案:

答案 0 :(得分:1)

取决于您下载的含义。

S3中没有远程处理 - 您无法上传将在S3服务中执行的代码。可能的替代方案:

  • 如果问题是文件太大而无法存储在内存或本地磁盘上,您仍然可以分块下载文件并分别处理每个块。您只需使用Java InputStream(或您正在使用的任何其他API)并下载一个块(例如4KB),处理它(扫描行结尾),并继续而不存储到磁盘。这里的缺点是你仍在从S3进行所有这些I / O以将文件下载到你的机器上。
  • 使用AWS lambda - 创建一个lambda函数,为您执行处理。此代码在亚马逊云中运行,因此没有I / O到您的机器,只在云中。该功能与前一个选项相同,只是远程运行。
  • 使用EC2 - 如果您需要更多地控制代码,自定义操作系统等,您可以在ec2上使用专用VM来处理此问题。

根据你问题中的信息,我会说lambda函数可能是最好的选择。