我正在编写连接到亚马逊S3存储的脚本。该脚本应该创建2个桶:
Bucket代表数据
Bucket for for logs
我成功创建了两个存储桶,但无法设置日志记录。下面显示了我用于启用存储桶记录的代码
$result = $client->putBucketLogging(array(
'Bucket' => $bucket,
'LoggingEnabled' => array(
'TargetBucket' => $bucket . '-LOG',
'TargetGrants'=>array(
'Grantee'=>array(
'DisplayName'=>'user.name',
'Type'=>'CanonicalUser'
),
),
'TargetPrefix' => 'LOG-',
),
));
在amazon AWS API for PHP版本2中写道,Bucket,LoggingEnabled和Type是必需的。但是文档没有说明如何准确地实现那些参数。
你能帮我解决 putBucketLogging 方法的配置数组结构吗?
答案 0 :(得分:2)
您还可以使用服务的API文档作为参考,有时会包含有关如何专门构造请求的某些数据类型的更多详细信息。 S3 API docs for PUT Bucket Logging有关于如何指定受让人的更多详细信息。
此外,您不应在存储桶名称中使用大写字母(请参阅Rules for Bucket Naming)。
答案 1 :(得分: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-',
),
));
然而启用日志记录失败,但异常告诉我必须在日志存储桶上设置权限...