AliBabacloud.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Gold
  5. * Date: 2024/3/20
  6. * Time: 9:20
  7. */
  8. namespace app\api\controller;
  9. use AlibabaCloud\SDK\Sts\V20150401\Sts;
  10. use \Exception;
  11. use AlibabaCloud\Tea\Exception\TeaError;
  12. use AlibabaCloud\Tea\Utils\Utils;
  13. use Darabonba\OpenApi\Models\Config;
  14. use AlibabaCloud\SDK\Sts\V20150401\Models\AssumeRoleRequest;
  15. use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
  16. require_once '../vendor/aliyunmail/aliyun-php-sdk-core/Config.php'; // 假定您的源码文件和aliyun-php-sdk处于同一目录
  17. $path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
  18. if (file_exists($path)) require_once $path;
  19. date_default_timezone_set('PRC');
  20. class AliBabacloud extends Base
  21. {
  22. protected $access_key = 'LTAI5tGJE1WU5ytYK2zBxnDx';// key
  23. protected $access_secret = 'uNyByodVajsN1lrMSCxpbrJF46Pwx3';//secret
  24. protected $role_arn= 'acs:ram::1122764885952286:role/ramoss';//role_arn
  25. protected $role_session_name= 'RamOss';//role_session_name
  26. /**
  27. * 使用AK&SK初始化账号Client
  28. * @return Sts Client
  29. */
  30. public static function createClient($accessKeyId, $accessKeySecret){
  31. // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
  32. // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/311677.html。
  33. $config = new Config([
  34. // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。
  35. "accessKeyId" => $accessKeyId,
  36. // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
  37. "accessKeySecret" => $accessKeySecret
  38. ]);
  39. // Endpoint 请参考 https://api.aliyun.com/product/Sts
  40. $config->endpoint = "sts.cn-hangzhou.aliyuncs.com";
  41. return new Sts($config);
  42. }
  43. /**
  44. * @param string[] $args
  45. * @return void
  46. */
  47. public static function main($args){
  48. $client = self::createClient();
  49. $assumeRoleRequest = new AssumeRoleRequest([
  50. "durationSeconds" => 1,
  51. "policy" => "your_value",
  52. "roleArn" => "your_value",
  53. "roleSessionName" => "your_value"
  54. ]);
  55. try {
  56. // 复制代码运行请自行打印 API 的返回值
  57. $res = $client->assumeRoleWithOptions($assumeRoleRequest, new RuntimeOptions([]));
  58. $json_res = json_encode($res,true);
  59. $res_arr = json_decode($json_res,true);
  60. }
  61. catch (Exception $error) {
  62. if (!($error instanceof TeaError)) {
  63. $error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
  64. }
  65. // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
  66. // 错误 message
  67. var_dump($error->message);
  68. // 诊断地址
  69. var_dump($error->data["Recommend"]);
  70. Utils::assertAsString($error->message);
  71. }
  72. }
  73. }