2016-10-03 199 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'對象可能會有所幫助。 –