Skip to content

Commit 71d5b5c

Browse files
yangzong18huiguangjun
authored andcommitted
bucket logging supports more parameters
1 parent c690672 commit 71d5b5c

File tree

3 files changed

+55
-2
lines changed

3 files changed

+55
-2
lines changed

src/Models/LoggingEnabled.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,28 @@ final class LoggingEnabled extends Model
2929
#[XmlElement(rename: 'TargetPrefix', type: 'string')]
3030
public ?string $targetPrefix;
3131

32+
/**
33+
* Log transfer authorization role.
34+
* @var string|null
35+
*/
36+
#[XmlElement(rename: 'LoggingRole', type: 'string')]
37+
public ?string $loggingRole;
38+
3239

3340
/**
3441
* LoggingEnabled constructor.
3542
* @param string|null $targetBucket The bucket that stores access logs.
3643
* @param string|null $targetPrefix The prefix of the log objects.
44+
* @param string|null $loggingRole Log transfer authorization role.
3745
*/
3846
public function __construct(
3947
?string $targetBucket = null,
40-
?string $targetPrefix = null
48+
?string $targetPrefix = null,
49+
?string $loggingRole = null
4150
)
4251
{
4352
$this->targetBucket = $targetBucket;
4453
$this->targetPrefix = $targetPrefix;
54+
$this->loggingRole = $loggingRole;
4555
}
4656
}

tests/IntegrationTests/ClientBucketLoggingTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public function testBucketLogging()
1818
$bucketName,
1919
new Oss\Models\BucketLoggingStatus(
2020
new Oss\Models\LoggingEnabled(
21-
targetBucket: $bucketName, targetPrefix: 'TargetPrefix'
21+
targetBucket: $bucketName, targetPrefix: 'TargetPrefix', loggingRole: 'AliyunOSSLoggingDefaultRole'
2222
)
2323
)
2424
));

tests/UnitTests/Transform/BucketLoggingTest.php

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,16 @@ public function testFromPutBucketLogging()
3535
$this->assertEquals('bucket-123', $input->getBucket());
3636
$xml = <<<BBB
3737
<?xml version="1.0" encoding="UTF-8"?><BucketLoggingStatus><LoggingEnabled><TargetBucket>TargetBucket</TargetBucket><TargetPrefix>TargetPrefix</TargetPrefix></LoggingEnabled></BucketLoggingStatus>
38+
BBB;
39+
$this->assertEquals($xml, $this->cleanXml($input->getBody()->getContents()));
40+
41+
$request = new Models\PutBucketLoggingRequest('bucket-123', new Models\BucketLoggingStatus(new Models\LoggingEnabled(
42+
targetBucket: 'TargetBucket', targetPrefix: 'TargetPrefix', loggingRole: 'AliyunOSSLoggingDefaultRole'
43+
)));
44+
$input = BucketLogging::fromPutBucketLogging($request);
45+
$this->assertEquals('bucket-123', $input->getBucket());
46+
$xml = <<<BBB
47+
<?xml version="1.0" encoding="UTF-8"?><BucketLoggingStatus><LoggingEnabled><TargetBucket>TargetBucket</TargetBucket><TargetPrefix>TargetPrefix</TargetPrefix><LoggingRole>AliyunOSSLoggingDefaultRole</LoggingRole></LoggingEnabled></BucketLoggingStatus>
3848
BBB;
3949
$this->assertEquals($xml, $this->cleanXml($input->getBody()->getContents()));
4050
}
@@ -111,6 +121,39 @@ public function testToGetBucketLogging()
111121
$this->assertEquals('application/xml', $result->headers['content-type']);
112122
$this->assertEquals('bucket-log', $result->bucketLoggingStatus->loggingEnabled->targetBucket);
113123
$this->assertEquals('prefix-access_log', $result->bucketLoggingStatus->loggingEnabled->targetPrefix);
124+
125+
126+
$output = new OperationOutput();
127+
$result = BucketLogging::toGetBucketLogging($output);
128+
$this->assertEquals('', $result->status);
129+
$this->assertEquals(0, $result->statusCode);
130+
$this->assertEquals('', $result->requestId);
131+
$this->assertEquals(0, count($result->headers));
132+
133+
$body = '<?xml version="1.0" encoding="UTF-8"?>
134+
<BucketLoggingStatus>
135+
<LoggingEnabled>
136+
<TargetBucket>bucket-log</TargetBucket>
137+
<TargetPrefix>prefix-access_log</TargetPrefix>
138+
<LoggingRole>AliyunOSSLoggingDefaultRole</LoggingRole>
139+
</LoggingEnabled>
140+
</BucketLoggingStatus>';
141+
$output = new OperationOutput(
142+
'OK',
143+
200,
144+
['x-oss-request-id' => '123', 'content-type' => 'application/xml'],
145+
Utils::streamFor($body)
146+
);
147+
$result = BucketLogging::toGetBucketLogging($output);
148+
$this->assertEquals('OK', $result->status);
149+
$this->assertEquals(200, $result->statusCode);
150+
$this->assertEquals('123', $result->requestId);
151+
$this->assertEquals(2, count($result->headers));
152+
$this->assertEquals('123', $result->headers['x-oss-request-id']);
153+
$this->assertEquals('application/xml', $result->headers['content-type']);
154+
$this->assertEquals('bucket-log', $result->bucketLoggingStatus->loggingEnabled->targetBucket);
155+
$this->assertEquals('prefix-access_log', $result->bucketLoggingStatus->loggingEnabled->targetPrefix);
156+
$this->assertEquals('AliyunOSSLoggingDefaultRole', $result->bucketLoggingStatus->loggingEnabled->loggingRole);
114157
}
115158

116159
public function testFromDeleteBucketLogging()

0 commit comments

Comments
 (0)