You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.2 KiB
77 lines
2.2 KiB
5 months ago
|
<?php
|
||
|
|
||
|
//=============================================================================
|
||
|
|
||
|
//How to use credentials-php to access oss
|
||
|
|
||
|
// step 1:Install credentials-php composer require alibabacloud/credentials
|
||
|
require_once __DIR__ . '/Common.php';
|
||
|
|
||
|
use OSS\OssClient;
|
||
|
use OSS\Core\OssException;
|
||
|
use OSS\Credentials\CredentialsProvider;
|
||
|
use AlibabaCloud\Credentials\Credential;
|
||
|
use OSS\Credentials\StaticCredentialsProvider;
|
||
|
|
||
|
// public provider conversion class
|
||
|
class AlibabaCloudCredentialsWrapper implements CredentialsProvider{
|
||
|
/**
|
||
|
* @var Credential
|
||
|
*/
|
||
|
private $warpper;
|
||
|
public function __construct($credential){
|
||
|
$this->warpper = $credential;
|
||
|
}
|
||
|
public function getCredentials(){
|
||
|
$ak = $this->warpper->getAccessKeyId();
|
||
|
$sk = $this->warpper->getAccessKeySecret();
|
||
|
$token = $this->warpper->getSecurityToken();
|
||
|
return new StaticCredentialsProvider($ak, $sk, $token);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$bucket = Common::getBucketName();
|
||
|
|
||
|
//AccessKey Credentials demo
|
||
|
$credential = new Credential(array(
|
||
|
'type' => 'access_key',
|
||
|
'access_key_id' => '<access_key_id>',
|
||
|
'access_key_secret' => '<accessKey_secret>',
|
||
|
));
|
||
|
$providerWarpper = new AlibabaCloudCredentialsWrapper($credential);
|
||
|
$config = array(
|
||
|
'provider' => $providerWarpper,
|
||
|
'endpoint'=> '<endpoint>'
|
||
|
);
|
||
|
try {
|
||
|
$ossClient = new OssClient($config);
|
||
|
$ossClient->putObject($bucket,'c.file','hi oss,this is credentials test of access key');
|
||
|
$result = $ossClient->getObject($bucket,'c.file');
|
||
|
var_dump($result);
|
||
|
} catch (OssException $e) {
|
||
|
printf($e->getMessage() . "\n");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
// EcsRamRole Credentials demo
|
||
|
$ecsRamRole = new Credential(array(
|
||
|
'type' => 'ecs_ram_role',
|
||
|
'role_name' => 'EcsRamRoleOssTest',
|
||
|
));
|
||
|
$providerWarpper = new AlibabaCloudCredentialsWrapper($ecsRamRole);
|
||
|
$bucket = 'oss-bucket-cd-yp-test';
|
||
|
$config = array(
|
||
|
'provider' => $providerWarpper,
|
||
|
'endpoint'=> '<endpoint>'
|
||
|
);
|
||
|
try {
|
||
|
$ossClient = new OssClient($config);
|
||
|
$ossClient->putObject($bucket,'c.file','hi oss,this is credentials test of EcsRamRole');
|
||
|
$result = $ossClient->getObject($bucket,'c.file');
|
||
|
var_dump($result);
|
||
|
} catch (OssException $e) {
|
||
|
printf($e->getMessage() . "\n");
|
||
|
return;
|
||
|
}
|