2011-06-08 28 views
15

我从http://awspolicygen.s3.amazonaws.com/policygen.html开始创建一个策略,将授予用户列表的特定S3存储桶的上传权限。我不清楚我如何定义这些用户应该是谁。如何定义AWS策略声明的主体?

该文档将委托人称为“一个或多个人”,没有如何参考该人的示例。我们假设“电子邮件地址”和政策发电机会接受它,但是当我粘贴生成的语句来斗策略编辑器,我得到:

政策无效的主体 - “AWS”:“史蒂夫@这里。 COM”

声明全文:

{ 
    "Id": "myPol", 
    "Statement": [ 
    { 
     "Sid": "Stmt130", 
     "Action": "s3:*", 
     "Effect": "Allow", 
     "Resource": "arn:aws:s3:::myBucketName", 
     "Principal": { 
     "AWS": [ 
      "[email protected]" 
     ] 
     } 
    } ] 
} 

回答

0
[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(); 
}