<?php

namespace App\Model;
use App\Exceptions\DatabaseException;

const OSS_ROLE_RAN = "acs:ram::1325723521662517:role/oss-client-mam";
const OSS_ROLE_SESSION_NAME = "client-001";
class AliOssModel
{
    /**
     * @throws DatabaseException
     */
    public static function getAilOssToken($request){

        try {
            $ali_base_url = getenv('ofc-store-svr') ? getenv('ofc-store-svr') : "http://ofc-store-svr-svr.micro";
            $url = $ali_base_url."/api/v1/assumeRole";
            $data = array(
                "role_arn" => OSS_ROLE_RAN,
                "role_session_name" => OSS_ROLE_SESSION_NAME,
            );
            $header = array(
                'Content-Type: application/json; charset=utf-8',
                'Content-Length: ' . strlen(json_encode($data))
            );
            $res = http_request_code($url,$header,"POST",json_encode($data),2);
            LogModel::addlog([" 获取阿里OSS临时token 1"=>$res,"请求URL"=>$url,"请求头header"=>$header]);

            $result = json_decode($res,true);
            if ($result["code"] != 0){
                throw new \Exception("获取token失败");
            }
        }catch (\Exception $exception){
            throw new DatabaseException($exception->getMessage());
        }
        return $result["data"];
    }
}