php生成阿里云OSS STS凭证返回前端,前端上传文件到OSS

  1. 要先去阿里云管理后台开通STS服务
  2. 然后去 下载类库包 https://help.aliyun.com/document_detail/31920.html
  3. 直接上代码,调用即可
<?php
namespace app\common;

class StsService
{
    protected $url = 'https://sts.aliyuncs.com';
    protected $accessKeySecret;
    protected $accessKeyId;
    protected $roleArn;//指定角色的 ARN ,角色策略权限
    protected $durationSeconds = '900';//指定的过期时间


    public function __construct()
    {
        $config = config('aliyun');
        $this->accessKeyId = $config['accessKey_id'];
        $this->accessKeySecret = $config['accessKey_secret'];
        $this->roleArn = '';//指定角色的 ARN ,角色策略权限
    }



    public function getStsAuth()
    {
		//引入文件,根据自己路径来引入
        require_once VENDOR_PATH.'sts-server/aliyun-php-sdk-core/Config.php';

        $iClientProfile = \DefaultProfile::getProfile("cn-shenzhen", $this->accessKeyId, $this->accessKeySecret);

        $client = new \DefaultAcsClient($iClientProfile);

        $request = new \Sts\Request\V20150401\AssumeRoleRequest();

        $request->setRoleSessionName("client_name");

        $request->setRoleArn($this->roleArn);



        $request->setDurationSeconds($this->durationSeconds);

        $response = $client->doAction($request);

        $rows = array();

        $body = $response->getBody();

        $content = json_decode($body);

        if ($response->getStatus() == 200){
            $rows['statusCode'] = 200;
            $rows['accessKeyId'] = $content->Credentials->AccessKeyId;
            $rows['accessKeySecret'] = $content->Credentials->AccessKeySecret;
            $rows['expiration'] = $content->Credentials->Expiration;
            $rows['securityToken'] = $content->Credentials->SecurityToken;
        }else{
            $rows['statusCode'] = 500;
            $rows['errorCode'] = $content->Code;
            $rows['errorMessage'] = $content->Message;
        }

        return $rows;
    }

}

把数据返回前端即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值