0

我正在使用meteorjs 开发一个网络平台,它允许我将多个文本/纯文本(例如.txt 和.csv 文件)上传到我的亚马逊S3 存储桶。

目前我的平台支持多个文件上传,通过使用for循环和meteor-slingshot顺序上传,直接上传到我的s3。

我正在尝试做的事情:
我需要在上传到 S3 之前将文件合并到一个最终文件中,这样我就可以只上传一个文件而不是上传多个文件(文件必须合并为一个文件)。

我的想法:

  1. 我曾考虑在将文件上传到 S3 之前将文件上传到我自己的服务器,然后使用cat file1.txt file2.txt > merged_file.txtlinux 之类的东西来合并它们并以某种方式检索该文件,但这需要更长的时间,因为我们需要将文件上传到我的服务器,然后将合并后的文件上传到 S3 存储桶。

  2. 使用fs.appendFilefrom 节点合并文件,但我不知道它是否可行,因为文件可能高达 20/25mb,读取它们并附加信息需要一些时间。

我认为 javascript 可能无法直接处理这个问题,这就是为什么我考虑使用 sh 命令或 c++,因为 nodejs 核心。

你能推荐我一个更好的方法吗?
有没有更好的方法来处理这个过程?

4

1 回答 1

0

您可以在 shell 中轻松完成此操作。

for i in file1 file2 file3 do cat $i >> combined_file done

我还要说,您可能需要考虑将它们作为小文件上传,然后启动一个 aws 实例,将它们拉下、合并并重新上传。这样您就不会丢失原件,并且您可以自动化整个过程。

于 2016-09-01T17:00:55.920 回答