【问题标题】:Using java code to count the number of lines in a file on S3使用java代码计算S3上文件的行数
【发布时间】:2015-11-17 15:40:45
【问题描述】:

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

【问题讨论】:

  • 不下载文件怎么能访问它?答案是否定的,你必须下载它。
  • 不确定,所以我问是否可能。

标签: amazon-web-services amazon-s3


【解决方案1】:

取决于您所说的下载。

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

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

鉴于您问题中的信息,我想说 lambda 函数可能是最好的选择。

【讨论】:

  • 同意,lambda 将是一个有效的选择。谢谢
  • @Barak 一些已经上传到 AWS S3 存储桶的图像,我想编辑和替换这些图像,我想在 AWS 服务器上进行,AWS lambda 可以吗?
  • 应该是可以的。很大程度上取决于您计划进行的编辑类型以及文件数量。您可能希望拥有一个处理一个文件的 lambda 函数,以及使用诸如 SQS 或步进函数之类的东西来编排对它的调用的某种方法。不过应该可以的
猜你喜欢
  • 1970-01-01
  • 2016-05-28
  • 2017-07-24
  • 2011-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多