【发布时间】:2014-05-03 01:40:48
【问题描述】:
我正在使用 PhantomJS 1.9.7 来抓取网页。我需要将返回的页面内容发送到 S3。我目前正在使用 PhantomJS 中包含的文件系统模块来保存到本地文件系统,并使用 php 脚本来扫描目录并将文件发送到 S3。我想完全绕过本地文件系统并将文件直接从 PhantomJS 发送到 S3。我在 PhantomJS 中找不到直接的方法。
我玩弄了使用 child_process 模块并将内容作为参数传递的想法,如下所示:
var execFile = require("child_process").execFile;
var page = require('webpage').create();
var content = page.content;
execFile('php', '[path/to/script.php, content]', null, function(err,stdout,stdin){
console.log("execFileSTDOUT:", JSON.stringify(stdout));
console.log("execFileSTDERR:", JSON.stringify(stderr));
});
会直接调用一个php脚本来完成上传。这将需要使用额外的进程来调用 CLI 命令。我对运行另一个异步进程感到不舒服。我正在寻找一种将内容从 PhantomJS 脚本直接发送到 S3 的方法,类似于文件系统模块对本地文件系统所做的事情。
任何关于如何实现这一点的想法都将不胜感激。谢谢!
【问题讨论】: