从S3下载使用Javascript
问题描述:
我有一个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")
答
没有在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")
但是,如果你没有看到任何输出,甚至错误,那么你的设置是完全错误的。很难说出究竟是什么。
答
设置您的凭证后创建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");