12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Gold
- * Date: 2024/3/20
- * Time: 9:20
- */
- namespace app\api\controller;
- use AlibabaCloud\SDK\Sts\V20150401\Sts;
- use \Exception;
- use AlibabaCloud\Tea\Exception\TeaError;
- use AlibabaCloud\Tea\Utils\Utils;
- use Darabonba\OpenApi\Models\Config;
- use AlibabaCloud\SDK\Sts\V20150401\Models\AssumeRoleRequest;
- use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
- require_once '../vendor/aliyunmail/aliyun-php-sdk-core/Config.php'; // 假定您的源码文件和aliyun-php-sdk处于同一目录
- $path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
- if (file_exists($path)) require_once $path;
- date_default_timezone_set('PRC');
- class AliBabacloud extends Base
- {
- protected $access_key = 'LTAI5tGJE1WU5ytYK2zBxnDx';// key
- protected $access_secret = 'uNyByodVajsN1lrMSCxpbrJF46Pwx3';//secret
- protected $role_arn= 'acs:ram::1122764885952286:role/ramoss';//role_arn
- protected $role_session_name= 'RamOss';//role_session_name
- /**
- * 使用AK&SK初始化账号Client
- * @return Sts Client
- */
- public static function createClient($accessKeyId, $accessKeySecret){
- // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
- // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/311677.html。
- $config = new Config([
- // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。
- "accessKeyId" => $accessKeyId,
- // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
- "accessKeySecret" => $accessKeySecret
- ]);
- // Endpoint 请参考 https://api.aliyun.com/product/Sts
- $config->endpoint = "sts.cn-hangzhou.aliyuncs.com";
- return new Sts($config);
- }
- /**
- * @param string[] $args
- * @return void
- */
- public static function main($args){
- $client = self::createClient();
- $assumeRoleRequest = new AssumeRoleRequest([
- "durationSeconds" => 1,
- "policy" => "your_value",
- "roleArn" => "your_value",
- "roleSessionName" => "your_value"
- ]);
- try {
- // 复制代码运行请自行打印 API 的返回值
- $res = $client->assumeRoleWithOptions($assumeRoleRequest, new RuntimeOptions([]));
- $json_res = json_encode($res,true);
- $res_arr = json_decode($json_res,true);
- }
- catch (Exception $error) {
- if (!($error instanceof TeaError)) {
- $error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
- }
- // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
- // 错误 message
- var_dump($error->message);
- // 诊断地址
- var_dump($error->data["Recommend"]);
- Utils::assertAsString($error->message);
- }
- }
- }
|