"2.0", // 描述一条或多条权限的详细信息 "statement" => [ [ // 描述声明产生的结果是“允许”还是“显式拒绝”。包括 allow(允许)和 deny (显式拒绝)两种情况。该元素是必填项 "effect" => "allow", // 描述允许或拒绝的操作 "action" => [ "cos:PutObject", "cos:PostObject" ], // 描述授权的具体数据 "resource" => [ /* qcs-qcloud service 的简称,表示是腾讯云的云资源 service_type:cos产品简称 region:$tecent_cos_param['region'] 描述地域信息 account::uid/$tecent_cos_param['main_app_id'] 描述资源拥有者的主账号信息,目前支持两种方式描述资源拥有者,uin 和 uid 方式 */ "qcs::cos:" . $tecent_cos_param['region'] . ":uid/" . $tecent_cos_param['main_app_id'] . ":" . $tecent_cos_param['bucket_name'] . "/*" ], ] ] ]; $result = $credentials_class->getFederationToken('cos', $policy); $return_data = [ 'token' => $result['Credentials']['Token'], 'tem_secret_id' => $result['Credentials']['TmpSecretId'], 'tem_secret_key' => $result['Credentials']['TmpSecretKey'], 'bucket' => $tecent_cos_param['bucket_name'], 'region' => $tecent_cos_param['region'], 'scheme' => Request::scheme(), // 请求地址 'host' => Request::scheme() . '://' . $tecent_cos_param['bucket_name'] . '.cos.' . $tecent_cos_param['region'] . '.myqcloud.com/', // 目录 'dir' => empty($file_path) ? $tecent_cos_param['first_directory'] . '/uid' . UID . '/member/' . date('Ymd') . '/' . $file_name : $file_path . date('YmdHis'), // 展示地址 'show_url' => $tecent_cos_param['show_url'] ]; return sendSuccessMessage($return_data); } /** * 本地图片转cos * @param $param ['url'] 本地路径 示例:/ueditor/php/upload/image/20221205/1670210864567835.jpg * @date 2022-12-05 */ public function ueditorFileUploadToCos() { $param = input('post.'); $tencent_cos_param = get_tencent_cos_config(2); $file_class = new \tencent\cos\object\File($tencent_cos_param); $cos_file_dirname = 'uid' . 2 . '/ueditor/' . date("Ymd"); $result = $file_class->uploadFile('.' . $param['url'], $cos_file_dirname); return sendSuccessMessage([ // 图片COS地址 'url' => $result ]); } }