我已经查看了AWS SDK文档,试图找到一种方法来将CloudFront分布与特定的S3桶相关联,但到目前为止还没有运气。
我需要保存一些只能通过CloudFront分发域名访问的图像。我想动态地获取这个,因为这个url可以改变。
知道桶的名称,我怎么能得到这个URL使用sdk?
干杯!
到目前为止,我认为没有一种直接的方法可以实现这一点,但是使用AWS SDK,您可以按照以下方法在Javascript中从S3源(或任何其他源)查找分发id:
const params = {};
cloudfront.listDistributions(params, (err, data) => {
if (err) {
console.log(err, err.stack); // an error occurred
}
else {
const distributionItems = data.DistributionList.Items;
const distributionByOrigin = distributionItems.find(item => item.Origins.Items.find(originItem => originItem.DomainName === 'your.origin.domain.name.here'));
console.log(distributionByOrigin.Id);
});
或者,如果您使用别名,也可以实现相同的目的:
const params = {};
cloudfront.listDistributions(params, (err, data) => {
if (err) {
console.log(err, err.stack); // an error occurred
}
else {
const distributionItems = data.DistributionList.Items;
const distributionByAlias = distributionItems.find(item => item.Aliases.Items.find(aliasItem => aliasItem === 'your.url.alias.here'));
console.log(distributionByAlias.Id);
}
});