2016-10-03 157 views
0

我想上传一个图像,但我不断收到一个错误,出口的秘密和密钥SyntaxError: Unexpected reserved word。这里是我试过的上传一个URL图像s3 aws

首先我需要aws依赖关系。

var AWS = require('aws-sdk'); 
export AWS_ACCESS_KEY_ID='key' 
export AWS_SECRET_ACCESS_KEY='secret' 
AWS.config.region = 'eu-west-1';¨ 

上传图像功能

function uploadImage(url, title) { 

    request(url, function (error, response, body) { 
    if (!error && response.statusCode == 200) { 

     var s3Bucket = new AWS.S3({ params: {Bucket: 'bucket'} }) 
     var data = {Key: title + "-" + Math.floor(Date.now()/1000), Body: body}; 
     s3Bucket.putObject(data, function(err, data){ 
     if (err) { 
      console.log('Error uploading data: ', data); 
      } else { 
      console.log('succesfully uploaded the image!'); 
      } 
     }); 

    } 
    }) 


} 

运行功能

uploadImage("http:/imageUrl", "test"); 
+0

您是否在代码中提供了真正的AWS KEY和AWS SECRET? –

+0

是真正的aws密钥,秘密,存储桶名称和网址。我只是不想把它放在这里 –

+1

这两个'export'行代码看起来像是你可能从某处复制到你的NodeJS应用程序中的Bash脚本代码。这就是为什么你在这些线路上发生错误,因为那不是NodeJS代码。 –

回答

0

export是不是一个正确的方式在node.js中添加一个环境变量

您应该

process.env.AWS_ACCESS_KEY_ID='key' 
... 
var AWS = require('aws-sdk'); 

,或者最有可能的,他们传递给你的脚本

export AWS_ACCESS_KEY_ID='key' 
node server.js 

export是保留JS字。

+0

似乎工作,但它怎么只是添加随机字符s3而不是图像文件? –

+0

假设你从'url'下载了一个正确的图像,我建议s3不会将你的原始数据识别为图像。用适当的值将'ContentType'键添加到'data'对象可能会有所帮助。 –