0

ここでAmazon s3のドキュメントを読んでいるバケットポリシーを追加しようとしています。 http://docs.amazonwebservices.com/AmazonS3/latest/dev/setpolicyonbucket.html

ドキュメントでは、このコードを実行するように指示されています。

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 curlリクエストを実行する方法です。どこから始めればよいですか? これまで未設計でAmazon s3クラスを使用してきたので、これは初めてです。

ありがとう

4

1 に答える 1

0

メソッドsetAccessControlPolicyはあなたが探しているものですか?上記の例のようにアクセス制御を設定できます。ドキュメントから:

setAccessControlPolicy(string $bucket、[string $ uri ='']、[array $ acp = array()])トップに戻る

$ 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";
        }
    }
?>
于 2012-04-04T13:41:06.647 に答える