如何将PhantomJS页面内容上传到S3

时间:2014-05-02 15:32:29

标签: amazon-s3 phantomjs

我正在使用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的方法,类似于文件系统模块对本地文件系统的作用。

如何实现这一点的任何想法将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

您可以创建并打开另一个page并将其指向您的S3服务。 Amazon S3具有REST API和SOAP API,REST似乎更容易。

对于SOAP,您必须手动构建请求。唯一的问题可能是错误的内容类型。虽然看起来好像是implemented,但我在文档中找不到引用。

您还可以在页面上下文中创建form并发送way的文件。