2011-06-08 29 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(); 
}