0

我正在编写连接到亚马逊 S3 存储的脚本。该脚本应该创建 2 个存储桶:

  1. 存储桶用于数据

  2. 桶用于日志

我成功创建了两个存储桶,但无法设置日志记录。下面显示了我用于启用存储桶日志记录的代码

 $result = $client->putBucketLogging(array(
        'Bucket' => $bucket,
        'LoggingEnabled' => array(
            'TargetBucket' => $bucket . '-LOG',
            'TargetGrants'=>array(
              'Grantee'=>array(
                  'DisplayName'=>'user.name',
                  'Type'=>'CanonicalUser'
              ),  
            ),
             'TargetPrefix' => 'LOG-',
        ),
    ));

在亚马逊 AWS API for PHP 版本 2 中,Bucket、LoggingEnabled 和 Type 是强制性的。但是文档没有说明如何准确地实现那里的参数。

你能帮我看看putBucketLogging方法的配置数组的结构吗?

4

2 回答 2

2

您还可以使用服务的 API 文档作为参考,其中有时包含有关如何专门为请求构建某些数据类型的更多详细信息。PUT Bucket Logging的S3 API 文档有更多关于如何指定被授权者的详细信息。

此外,您不应在存储桶名称中使用大写字母(请参阅存储桶命名规则)。

于 2013-04-24T00:41:20.810 回答
0

在手册中搜索后,方法putBucketLogging的 php 数组是

    $result = $client->putBucketLogging(array(
        'Bucket' => $bucket,
        'LoggingEnabled' => array(
            'TargetBucket' => $bucket . '-log',
            'TargetGrants' => array(
                'Grant' => array(
                    'Grantee' => array(
                        'Type' => 'AmazonCustomerByEmail',
                        'EmailAddress' => 'email@email.com',
                    ),
                    'Permission' => 'FULL_CONTROL',
                ),
            ),
            'TargetPrefix' => 'log-',
        ),
    ));

但是启用日志记录失败,异常告诉我必须在日志存储桶上设置权限......

于 2013-04-24T22:59:27.783 回答