Php Amazon s3使用bucket策略放置bucket

Php Amazon s3使用bucket策略放置bucket,php,curl,amazon-s3,amazon,Php,Curl,Amazon S3,Amazon,我正在阅读AmazonS3文档,试图添加一个bucket策略。 在文档中,它表示要运行此代码 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-bbb

我正在阅读AmazonS3文档,试图添加一个bucket策略。

在文档中,它表示要运行此代码

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请求来实现这一点,从哪里开始?这是一个新概念,因为我一直在使用AmazonS3类,直到现在还没有注册

谢谢

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

setAccessControlPolicy字符串$bucket,[string$uri=],[array $acp=阵列]返回顶部

当$uri=

例如:


你为什么不使用SDK?Amazon有一个针对AWS的PHP SDK。我知道我开始在这里使用未经设计的s3类,但随着我的项目的发展,我需要这个功能,而我使用的类似乎不可能实现这个功能,所以我只是尝试插入这个功能。让我知道我发布的解决方案是否有效。文档不是100%清楚,但我认为这就是你需要的。嗨,斯科特,是的,我已经玩了一段时间,试图设置我添加一个bucket策略,但我不认为你可以添加或更新一个bucket策略,我一直在看代码。当您使用该函数并尝试它时会发生什么?
<?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";
        }
    }
?>