腾讯云cos 临时密钥 适用于前端直传等临时授权场景

composer添加

php 复制代码
"qcloud_sts/qcloud-sts-sdk": "^3.0",
 "tencentcloud/sts": "^3.0"

执行

php 复制代码
composer require qcloud_sts/qcloud-sts-sdk
composer require tencentcloud/sts

然后就可以直接使用了

$params参数可以看官网去设置:对象存储-临时密钥生成及使用指引

php 复制代码
try {
            // 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
            // 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
            // 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
            $cred = new Credential(Env::get('COS_SECRET_ID'), Env::get('COS_SECRET_KEY'));
            // 实例化一个http选项,可选的,没有特殊需求可以跳过
            $httpProfile = new HttpProfile();
            $httpProfile->setEndpoint("sts.tencentcloudapi.com");

            // 实例化一个client选项,可选的,没有特殊需求可以跳过
            $clientProfile = new ClientProfile();
            $clientProfile->setHttpProfile($httpProfile);
            // 实例化要请求产品的client对象,clientProfile是可选的
            $client = new StsClient($cred, "ap-guangzhou", $clientProfile);

            // 实例化一个请求对象,每个接口都会对应一个request对象
            $req = new GetFederationTokenRequest();

            $params = array(
                "Name" => "test",
                "Policy" => "{\"version\":\"2.0\",\"statement\":[{\"effect\":\"allow\",\"action\":[\"name/cos:PutObject\",\"name/cos:DeleteObject\",\"name/cos:InitiateMultipartUpload\",\"name/cos:ListMultipartUploads\",\"name/cos:ListParts\",\"name/cos:UploadPart\",\"name/cos:CompleteMultipartUpload\"],\"resource\":\"*\"}]}",
                "DurationSeconds" => 1800
            );
            $req->fromJsonString(json_encode($params));

            // 返回的resp是一个GetFederationTokenResponse的实例,与请求对象对应
            $resp = $client->GetFederationToken($req);

            $return = [];
            $return['sts'] = $resp;
            $return['bucket'] = Env::get('COS_BUCKET').'-'.Env::get('COS_APP_ID');
            $return['start_time'] = strtotime(date('Y-m-d H:i:s'));
            $return['region'] = Env::get('COS_REGION');
            // 输出json格式的字符串回包
            return success($return);
        }
        catch(TencentCloudSDKException $e) {
            return failure(1, $e->getMessage());
        }
相关推荐
缓慢更新6 分钟前
AI 辅助生成单测:从接口定义到用例的流水线
java·服务器·前端·网络·数据库·人工智能
陈随易36 分钟前
AI 运维服务器,安全又可靠的方法
前端·后端·程序员
Escalating_xu1 小时前
【Linux 网络编程】DNS 与 ICMP:从域名解析到 ping、traceroute,把“网络通不通”问清楚
linux·网络·php
风骏时光牛马1 小时前
AI稳定性治理体系构建与疑难问题深度分析
前端
IT_陈寒2 小时前
JavaScript的this坑人实录,这次我真的记下来了
前端·人工智能·后端
开开心心就好3 小时前
音频降噪剪辑工具,音量裁剪一键处理
运维·服务器·前端·spring·ocr·音视频·1024程序员节
niucloud-admin3 小时前
NIUCLOUD PHP SAAS上门家政使用文档--服务订单:订单列表
开发语言·php
一枕槐安4873 小时前
大模型限流、重试、超时处理:API 调用健壮性方案
linux·服务器·php·大模型api·指数退避·限流控制·超时预算
李纲明4 小时前
WordPress 白屏或提示「出现了严重错误」:先开 WP_DEBUG 抓致命错误,再二分插件与主题
运维·php·debug·wordpress·白屏·插件冲突·devdiy
PedroQue995 小时前
0.8.2 新增 backFallback 配置,无 tabbar 页返回无忧
前端·uni-app