2012-04-04 126 views
0

我想把增加斗政策我读亚马逊s3文档在这里。 http://docs.amazonwebservices.com/AmazonS3/latest/dev/setpolicyonbucket.html亚马逊s3把斗与桶政策

其中说它运行该代码。

PUT /?policy HTTP/1.1 
Host: bucket.s3.amazonaws.com 
Date: Tue, 04 Apr 2010 20:34:56 GMT 
Authorization: AWS AKIAIOSFODNN7EXAMPLE:VGhpcyBSAMPLEBieSBlbHZpbmc= 

{ 
"Version":"2008-10-17", 
"Id":"aaaa-bbbb-cccc-dddd", 
"Statement" : [ 
    { 
     "Effect":"Allow", 
     "Sid":"1", 
     "Principal" : { 
      "AWS":["1111-2222-3333","4444-5555-6666"] 
     }, 
     "Action":["s3:GetObject*"], 
     "Resource":"arn:aws:s3:::mybucket/*" 
    } 
] 
} 

这正是我需要做什么,我与挣扎是如何我运行一个PHP请求,卷曲要做到这一点我在哪里开始?对此我是新的,因为我一直使用亚马逊s3类到目前为止不受欢迎。

感谢

+2

你为什么不使用SDK?亚马逊有一个适用于AWS的PHP SDK。 – 2012-04-04 13:08:00

+0

我知道我开始在这里使用非符号s3类http://undesigned.org.za/2007/10/22/amazon-s3-php-class但随着我的项目增长,我需要这个功能,它似乎不可能与我正在使用的类,所以我只是试图插入此功能。 – DCHP 2012-04-04 13:12:09

+0

让我知道如果我发布的解决方案的作品。文件不是100%清楚,但我认为这是你需要的。 – 2012-04-04 13:42:01

回答

0

是方法setAccessControlPolicy你在找什么?它允许您像上面的示例一样设置访问控制。从该文档:

setAccessControlPolicy(字符串$斗,[字符串$ URI = ''],[阵列 $ ACP =阵列()])返回顶部

设置访问控制策略用于对象或桶时,$ URI = ''

例子:

<?php 

    if (($acp = S3::getAccessControlPolicy($bucket, $uri)) !== false) { 
     // Here you would modify the $acp array... 
     // For example, grant access to the S3 LogDelivery system: 
     $acp["acl"][] = array(
      "type" => "Group", "uri" => "http://acs.amazonaws.com/groups/s3/LogDelivery", "permission" => "WRITE" 
     ); 
     $acp["acl"][] = array(
      "type" => "Group", "uri" => "http://acs.amazonaws.com/groups/s3/LogDelivery", "permission" => "READ_ACP" 
     ); 
     // Then update the policy using the modified $acp array: 
     if (S3::setAccessControlPolicy($bucket, $uri, $acp)) { 
      echo "Policy updated"; 
     } 
    } 
?> 
+0

嗨斯科特是啊我一直在玩这一段时间试图设置我来添加一个桶策略,但我不认为你可以添加或更新桶策略,我一直在查看代码。 https://github.com/tpyo/amazon-s3-php-class/blob/master/S3.php – DCHP 2012-04-04 14:37:46

+0

当你使用该功能并尝试它时会发生什么? – 2012-04-04 15:00:23