如何在 angular 7 中从 AWS S3 存储桶中获取和显示图像
How to fetch and display the images from AWS S3 bucket in angular 7
我是 angular 7 的新手,我需要使用 AWS Cognito(我有身份池 ID)从 AWS S3 存储桶中获取和显示图像。
我已经在我的项目中安装了 AWS SDK、S3、AWS Cognito,并尝试获取和显示图像,但我只得到图像 URL,我无法访问它,所以请指导我这个
viewAlbum(albumName:any) {
var albumBucketName = 'XXXX';
var bucketRegion = 'XXXX';
var IdentityPoolId = 'XXXXX';
var AWS = require('aws-sdk');
AWS.config.update({
region: bucketRegion,
credentials: new AWS.CognitoIdentityCredentials({
IdentityPoolId: IdentityPoolId
})
});
var s3 = new AWS.S3({
apiVersion: '2006-03-01',
params: {Bucket: albumBucketName}
});
var albumPhotosKey = encodeURIComponent(albumName);
s3.listObjects({Prefix: albumPhotosKey}, function(err:any, data:any) {
console.log("photos::::",data)
if (err) {
return alert('There was an error viewing your album: ' + err.message);
}
var href = this.request.httpRequest.endpoint.href;
var bucketUrl = href + albumBucketName + '/';
var photos = data.Contents.map(function(photo:any) {
var photoKey = photo.Key;
var photoUrl = bucketUrl + encodeURIComponent(photoKey);
console.log("viewalbus::::",photoUrl)
});
});
}
预期输出:
我应该可以显示图像
实际结果:
我无法获取图像 URL 或显示它
实际上您需要从 S3 获得签名 URL :
确保已安装 sdk 并进行配置 (user_id , secret_key) :
npm install aws-sdk
然后
import * as AWS from 'aws-sdk';
let s3= new AWS.S3();
const url = s3.getSignedUrl('getObject', {
Bucket: myBucket,
Key: myKey
})
console.log(url)
我是 angular 7 的新手,我需要使用 AWS Cognito(我有身份池 ID)从 AWS S3 存储桶中获取和显示图像。
我已经在我的项目中安装了 AWS SDK、S3、AWS Cognito,并尝试获取和显示图像,但我只得到图像 URL,我无法访问它,所以请指导我这个
viewAlbum(albumName:any) {
var albumBucketName = 'XXXX';
var bucketRegion = 'XXXX';
var IdentityPoolId = 'XXXXX';
var AWS = require('aws-sdk');
AWS.config.update({
region: bucketRegion,
credentials: new AWS.CognitoIdentityCredentials({
IdentityPoolId: IdentityPoolId
})
});
var s3 = new AWS.S3({
apiVersion: '2006-03-01',
params: {Bucket: albumBucketName}
});
var albumPhotosKey = encodeURIComponent(albumName);
s3.listObjects({Prefix: albumPhotosKey}, function(err:any, data:any) {
console.log("photos::::",data)
if (err) {
return alert('There was an error viewing your album: ' + err.message);
}
var href = this.request.httpRequest.endpoint.href;
var bucketUrl = href + albumBucketName + '/';
var photos = data.Contents.map(function(photo:any) {
var photoKey = photo.Key;
var photoUrl = bucketUrl + encodeURIComponent(photoKey);
console.log("viewalbus::::",photoUrl)
});
});
}
预期输出:
我应该可以显示图像
实际结果:
我无法获取图像 URL 或显示它
实际上您需要从 S3 获得签名 URL :
确保已安装 sdk 并进行配置 (user_id , secret_key) :
npm install aws-sdk
然后
import * as AWS from 'aws-sdk';
let s3= new AWS.S3();
const url = s3.getSignedUrl('getObject', {
Bucket: myBucket,
Key: myKey
})
console.log(url)