我正在尝试让Adobe将他们的点击流分析数据 - 使用Adobe Experience Amazon S3文件传递 - 发布到我创建的AWS S3存储桶(称为adobe)。因此,我创建了一个IAM用户,将其分配给具有以下IAM策略的组,并使用IAM用户的访问权限和密钥配置Adobe S3 File Delivery。
var crypto = require('crypto');
var fs = require('fs');
var AWS = require('aws-sdk');
var s3 = new AWS.S3();
exports.handler = (event, context, callback) => {
var params = {
Bucket: 'bucket_name',
Key: 'key',
};
var hash = crypto.createHash('md5');
var stream = s3.getObject(params, function(err, data) {
if (err){
console.log(err);
return;
}
}).createReadStream();
stream.on('data', function (data) {
hash.update(data, 'utf-8')
})
stream.on('end', function () {
console.log(hash.digest('hex'))
})
};
不确定存储桶地址是什么但尝试过:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowGroupToSeeBucketListAndAlsoAllowGetBucketLocationRequiredForListBucket",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::*"
]
},
{
"Sid": "AllowRootLevelListingOfCompanyBucket",
"Action": [
"s3:*"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::adobe",
"arn:aws:s3:::adobe/*"
]
}
]
}
每次Adobe回来时都会出现此错误:
捕获到异常:调用GetBucketLocation操作时发生错误(AccessDenied):拒绝访问
我试过网络托管这个存储桶并尝试使用此存储桶地址:
https://s3-eu-west-1.amazonaws.com/adobe/daily/
......同样的错误。
使用Cloudberry for S3,我检查了密钥和访问密钥,它在访问该存储桶和子文件夹方面运行良好。我没有使用CLI检查。
任何想法/帮助非常感谢。感谢。
答案 0 :(得分:0)
@jarmod - 这就是答案 - 添加一个桶名而不是桶地址使其工作。感谢
感谢其他人。