2017-08-31 74 views
1

此Meteor代码需要将从互联网收集的文件推送到我的S3存储桶。
因此,我正在更新在Docker容器EC2中运行的服务器之前在本地进行测试。将文件从流星服务器推送到AWS S3与peerlibrary:aws-sdk

编辑
我试图推动在相同的文件夹代码文件位于本地文件。运行代码后,我现在可以看到S3存储桶中的文件,但其大小为0.

我怎样才能真正上传文件以便将副本保存在存储桶中?谢谢

let s3 = new AWS.S3(); 
let params = { 
    Bucket: "my-bucket-name", 
    Key: "myfile.pdf", 
}; 
s3.putObject(params, function (err, data) { 
    if (err) console.log(err, err.stack); // an error occurred 
    else  console.log(data);   // => { ETag: '"d41d8...27e"' } 
}); 
+0

你的控制台输出是什么样的?该文件是否存储在您的服务器上? – Mikkel

+0

我建议使用这个:https://github.com/VeliovGroup/Meteor-Files/wiki/AWS-S3-Integration –

+0

@Mikkel请看这两个问题的更新。 thx –

回答

0

我想你还需要给它一个本地文件名。 Key是用于目标文件的名称,并且您需要告诉它要读取和发送哪个文件。

我收集你刚刚开始在这里,但你需要考虑这些文件的位置。在生产环境中,文件系统是只读的,没有当前工作目录的概念。在本地存储文件实际上很困难,以至于不应该浪费时间使用这种方法。

因此,当用户上传文件时,必须直接进入AWS。有很多流星包可以为你做到这一点,甚至有像Filestack这样的服务,使它很容易它不好笑:)

所以也许这个上传本地文件的这种做法是不值得追求:)

+0

Meteor应用程序将使用http从网上下载pdf文件,并且需要将其保存到S3。这是目标,任何建议如何去做呢? –

+0

现在我们发现你真的以后。有一个答案在这里:https://stackoverflow.com/questions/22186979/download-file-from-url-and-upload-it-to-aws-s3-without-saving-node-js – Mikkel

相关问题