2017-10-19 136 views
0

我有一個JavaScript文件,我試圖用它從我的S3存儲桶中下載文本文件。但是,當我使用「node file.js」執行此文件時,沒有任何事情發生/返回。這裏有什麼問題我應該打電話嗎?謝謝!從S3下載使用Javascript

var AWS = require('aws-sdk'); 
var s3 = new AWS.S3(); 

var credentials = new AWS.SharedIniFileCredentials({profile: 'personal-account'}); 
AWS.config.credentials = credentials; 

s3.getObject(
    { Bucket: "mybucket", Key: "testing.txt" }, 
    function (error, data) { 
    if (error != null) { 
     alert("Failed to retrieve an object: " + error); 
    } else { 
     alert("Loaded " + data.ContentLength + " bytes"); 
    } 
    } 
); 

print("this file has been executed") 

回答

2

沒有在JavaScript中沒有print功能以及在環境的NodeJS沒有alert

所以你必須使用類似console.log的東西來代替。

var AWS = require('aws-sdk'); 
var s3 = new AWS.S3(); 

var credentials = new AWS.SharedIniFileCredentials({profile: 'personal-account'}); 
AWS.config.credentials = credentials; 

s3.getObject(
    { Bucket: "mybucket", Key: "testing.txt" }, 
    function (error, data) { 
    if (error != null) { 
     console.log("Failed to retrieve an object: " + error); 
    } else { 
     console.log("Loaded " + data.ContentLength + " bytes"); 
    } 
    } 
); 

console.log("this file has been executed") 

但是,如果你沒有看到任何輸出,甚至錯誤,那麼你的設置是完全錯誤的。很難說出究竟是什麼。

0

設置您的憑證後創建S3客戶端:

var AWS = require('aws-sdk'); 

var credentials = new AWS.SharedIniFileCredentials({profile: 'personal-account'}); 
AWS.config.credentials = credentials; 

var s3 = new AWS.S3(); 

s3.getObject(
    { Bucket: "mybucket", Key: "testing.txt" }, 
    function (error, data) { 
    if (error != null) { 
     console.log("Failed to retrieve an object: " + error); 
    } else { 
     console.log("Loaded " + data.ContentLength + " bytes"); 
    } 
    } 
); 

console.log("this file has been executed");