Amazon s3 如何定义AWS策略语句的主体?
我从开始创建一个策略,该策略将为用户列表授予特定S3存储桶的上载权限。我不清楚如何定义这些用户 文件将委托人称为“一个或多个人员”,但没有说明如何称呼所述人员的示例。假设“电子邮件地址”,策略生成器将接受它,但当我将生成的语句粘贴到bucket策略编辑器时,我得到: 策略“AWS”中的主体无效:steve@here.com" 完整声明:Amazon s3 如何定义AWS策略语句的主体?,amazon-s3,Amazon S3,我从开始创建一个策略,该策略将为用户列表授予特定S3存储桶的上载权限。我不清楚如何定义这些用户 文件将委托人称为“一个或多个人员”,但没有说明如何称呼所述人员的示例。假设“电子邮件地址”,策略生成器将接受它,但当我将生成的语句粘贴到bucket策略编辑器时,我得到: 策略“AWS”中的主体无效:steve@here.com" 完整声明: { "Id": "myPol", "Statement": [ { "Sid": "Stmt130", "Action"
{
"Id": "myPol",
"Statement": [
{
"Sid": "Stmt130",
"Action": "s3:*",
"Effect": "Allow",
"Resource": "arn:aws:s3:::myBucketName",
"Principal": {
"AWS": [
"steve@here.com"
]
}
} ]
}
主体可以是另一个AWS帐户或IAM用户。这些文档很有用,这可能是我的错误-如果生成器在让我离开之前进行额外的验证循环来检查我的输入,肯定会很好。这里的实际修复方法是什么?
[HttpPost]
public ActionResult Uploaddemo(HttpPostedFileBase file) {
try {
IAmazonS3 client;
using (client = Amazon.AWSClientFactory.CreateAmazonS3Client(_awsAccessKey, _awsSecretKey,RegionEndpoint.USWest2)) {
var request = new PutObjectRequest() {
BucketName = _bucketName,
CannedACL = S3CannedACL.PublicRead, ACCESIBLE
Key = string.Format("visumes/{0}", file.FileName),
InputStream = file.InputStream,//SEND THE FILE STREAM
};
Amazon.S3.AmazonS3Config s3Config = new Amazon.S3.AmazonS3Config() {
ServiceURL = "http://s3.amazonaws.com"
};
string HOST ="http://s3-website-us-west-2.amazonaws.com";
client.PutObject(request);
}
} catch (Exception ex) {
}
return View();
}