在这里奋斗了两天。我是javascript和AWS的新手,所以任何提示都将不胜感激。
我有11个水桶。除此以外,其他人都可以正常工作。
当我传入另一个存储桶名称和键值时,它可以工作,但是当我传入一个我需要的存储桶名称和键值时,会出现错误:“在参数中缺少所需的键'Bucket'”。
例如: 如果我在存储桶中传递了“ businesspicture”,它会成功加载我需要的图片。
$scope.$watch("userInfo.picture", function (imageValue) {
var defaultIcon = '/images/defaultuser.jpg';
if (imageValue !== defaultIcon && !imageValue.startsWith("https://")) {
pictureServices.picture.getPictureFromS3({
fileName: imageValue,
bucket: "userpicture"
}, {}, function (pic) {
$scope.iconPreviewImage = pic.url;
$scope.userInfo.picture = imageValue;
}, function (error) {
dialogService.showNgResourceError(error);
});
}
});
pictureService.js。
var AWS = require('aws-sdk');
AWS.config.loadFromPath('../s3_config.json');
var photoBuckets = new AWS.S3();
exports.getPictureFromS3 = function(fileName, bucketName) {
return new Promise(function(resolve, reject){
var params = {
Bucket: bucketName,
Key: fileName
};
photoBuckets.getSignedUrl('getObject', params, function(err, url){
if(err){
reject(err);
} else{
awsurl = {url:url};
resolve(awsurl);
}
});
});
};