Skip to content

Commit bb6d2e5

Browse files
yangzong18huiguangjun
authored andcommitted
add a provider read param from environment variables (#253)
1 parent 7d35d03 commit bb6d2e5

File tree

3 files changed

+66
-1
lines changed

3 files changed

+66
-1
lines changed

samples/CredentialsProvider.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
use OSS\OssClient;
55
use OSS\Core\OssException;
66
use OSS\Credentials\StaticCredentialsProvider;
7+
use OSS\Credentials\EnvironmentVariableCredentialsProvider;
78
$bucket = Common::getBucketName();
89

910
// Access Key Provider demo
@@ -43,3 +44,20 @@
4344
printf($e->getMessage() . "\n");
4445
return;
4546
}
47+
48+
// read from env
49+
$envProvider = new EnvironmentVariableCredentialsProvider();
50+
$config = array(
51+
'provider' => $envProvider,
52+
'endpoint'=> "<endpoint>"
53+
);
54+
55+
try {
56+
$ossClient = new OssClient($config);
57+
$ossClient->putObject($bucket,'c.file','hi oss,this is credentials test of sts provider');
58+
$result = $ossClient->getObject($bucket,'c.file');
59+
var_dump($result);
60+
} catch (OssException $e) {
61+
printf($e->getMessage() . "\n");
62+
return;
63+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
namespace OSS\Credentials;
3+
4+
use OSS\Core\OssException;
5+
6+
class EnvironmentVariableCredentialsProvider implements CredentialsProvider
7+
{
8+
9+
/**
10+
* @return Credentials
11+
* @throws OssException
12+
*/
13+
public function getCredentials()
14+
{
15+
$ak= getenv('OSS_ACCESS_KEY_ID');
16+
$sk = getenv('OSS_ACCESS_KEY_SECRET');
17+
$token = getenv('OSS_SESSION_TOKEN');
18+
return new Credentials($ak, $sk, $token);
19+
}
20+
}

tests/OSS/Tests/OssClientTest.php

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
namespace OSS\Tests;
44

55
use OSS\Core\OssException;
6+
use OSS\Credentials\EnvironmentVariableCredentialsProvider;
67
use OSS\OssClient;
78
use OSS\Credentials\Credentials;
89
use OSS\Credentials\CredentialsProvider;
910
use OSS\Credentials\StaticCredentialsProvider;
11+
require_once __DIR__ . DIRECTORY_SEPARATOR . 'TestOssClientBase.php';
1012

1113
class TestEmptyIdCredentials extends Credentials
1214
{
@@ -78,7 +80,6 @@ public function getCredentials()
7880
}
7981
}
8082

81-
8283
class OssClientTest extends TestOssClientBase
8384
{
8485
public function testConstrunct()
@@ -491,4 +492,30 @@ public function testEmptyCredentials()
491492
$this->assertEquals('access key id is empty', $e->getMessage());
492493
}
493494
}
495+
496+
public function testEnvironmentVariableCredentialsProvider()
497+
{
498+
try {
499+
$provider = new EnvironmentVariableCredentialsProvider();
500+
$config = array(
501+
'provider' => $provider,
502+
'endpoint'=>'oss-cn-hangzhou.aliyuncs.com'
503+
);
504+
$ossClient = new OssClient($config);
505+
$ossClient->putObject($this->bucket,'test_emptybody','');
506+
$this->assertTrue(true);
507+
} catch (OssException $e) {
508+
printf($e->getMessage());
509+
$this->assertFalse(true);
510+
}
511+
512+
513+
try {
514+
$ossClient->getObject($this->bucket,'test_emptybody');
515+
$this->assertTrue(true);
516+
} catch (OssException $e) {
517+
printf($e->getMessage());
518+
$this->assertFalse(true);
519+
}
520+
}
494521
}

0 commit comments

Comments
 (0)