虽然我很确定我在filepicker.io网站上提供的视频中完全按照所做的一切,但测试我的S3设置只会出现错误。
上传时出错:自定义S3尚未开启。也许检查ID,密钥和存储桶是否都已指定?请检查您的设置,然后重试
我已经仔细检查过“S3 Access Key ID”和“S3 Secret Access Key”和“S3 Bucket”是否正确。我甚至创造了一个新的水桶并再次尝试,但无济于事。 以下是我为filepicker用户生成的策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Sid": "Stmt1371459382000",
"Resource": [
"arn:aws:s3:::mybucket-real-name-omitted/*"
],
"Effect": "Allow"
}
]
}
它与filepicker.io s3 help page上发布的内容略有不同,但我不知道如何消除这些差异以及是否重要。
如果有人提示如何解决这个问题,我将不胜感激。
提前致谢 菲姆船长
答案 0 :(得分:2)
您的AWS安全策略肯定是错误的 - 您需要允许PutObjectACL
操作。 Filepicker为其上传的每个对象设置ACL。如果要使用filepicker删除上传的文件,还需要允许DeleteObject
操作。
您可以在 AWS控制台中修改AWS安全策略。得到服务 - > IAM - >用户并选择您的filepicker用户。然后选择权限标签,选择您正在使用的政策,然后点击管理政策。然后,您可以手动编辑策略并应用更改。
这就是我的政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:PutObject",
"s3:PutObjectAcl"
],
"Sid": "Stmt1370702252000",
"Resource": [
"arn:aws:s3:::<my bucket name here>/*"
],
"Effect": "Allow"
}
]
}
在filepicke的S3设置页面上有一个测试S3设置按钮,该按钮可能也很有用。