使用java代码,是否可以计算AWS s3上文件的行数,而无需将其下载到本地计算机。
取决于你所说的下载是什么意思。
S3 中没有远程处理 - 您无法上传将在 S3 服务中执行的代码。可能的替代方案:
- 如果问题是文件太大而无法存储在内存或本地磁盘中,您仍然可以分块下载文件并单独处理每个块。您只需使用 Java InputStream(或您正在使用的任何其他 API)并下载一个块(例如 4KB),对其进行处理(扫描行结尾),然后继续而不存储到磁盘。这里的缺点是您仍然需要从 S3 执行所有这些 I/O 以将文件下载到您的计算机。
- Use AWS lambda https://aws.amazon.com/documentation/lambda/- 创建一个 lambda 函数来为您进行处理。该代码在亚马逊云中运行,因此您的机器没有 I/O,仅在云内部。该功能与之前的选项相同,只是远程运行。
- 使用 EC2 - 如果您需要对代码、自定义操作系统等进行更多控制,您可以在 ec2 上拥有一个专用虚拟机来处理此问题。
鉴于您问题中的信息,我想说 lambda 函数可能是最好的选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)