lizhen_gitee 11 mesiacov pred
rodič
commit
aaf16c5744
1 zmenil súbory, kde vykonal 56 pridanie a 0 odobranie
  1. 56 0
      application/api/controller/Upload.php

+ 56 - 0
application/api/controller/Upload.php

@@ -0,0 +1,56 @@
+<?php
+
+namespace app\api\controller;
+
+use app\common\controller\Api;
+
+/**
+ * 上传接口
+ */
+class Upload extends Api
+{
+    protected $noNeedLogin = [''];
+    protected $noNeedRight = ['*'];
+
+    /**
+     * 上传文件到腾讯cos获取临时密钥
+     */
+    public function uploadToCloud() {
+        require_once VENDOR_PATH . 'qcloud/src/Sts.php';
+        require_once VENDOR_PATH . 'qcloud/src/Scope.php';
+        $sts = new \Sts();
+
+        $cos_config = get_addon_config('cos');
+
+        $config = array(
+            'url'             => 'https://sts.tencentcloudapi.com/',
+            'domain'          => 'sts.tencentcloudapi.com',
+            'proxy'           => '',
+            'secretId'        => $cos_config['secretId'], // 固定密钥
+            'secretKey'       => $cos_config['secretKey'], // 固定密钥
+            'bucket'          => $cos_config['bucket'], // 换成你的 bucket
+            'region'          => $cos_config['region'], // 换成 bucket 所在园区
+            'durationSeconds' => $cos_config['expire'], // 密钥有效期
+            'allowPrefix'     => '*', // 这里改成允许的路径前缀,可以根据自己网站的用户登录态判断允许上传的具体路径,例子: a.jpg 或者 a/* 或者 * (使用通配符*存在重大安全风险, 请谨慎评估使用)
+            // 密钥的权限列表。简单上传和分片需要以下的权限,其他权限列表请看 https://cloud.tencent.com/document/product/436/31923
+            'allowActions' => array (
+                // 简单上传
+                'name/cos:PutObject',
+                'name/cos:PostObject',
+                // 分片上传
+                'name/cos:InitiateMultipartUpload',
+                'name/cos:ListMultipartUploads',
+                'name/cos:ListParts',
+                'name/cos:UploadPart',
+                'name/cos:CompleteMultipartUpload',
+                // 下载
+                'name/cos:GetObject'
+            )
+        );
+
+        // 获取临时密钥,计算签名
+        $tempKeys = $sts->getTempKeys($config);
+        $this->success("获取成功!",$tempKeys);
+
+    }
+}