<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 阿里云OSS 本服務用于管理阿里云OSS 本服務是對阿里云SDK的封裝,所以方法名與阿里的SDK一樣,下面是列舉出的幾個使用方法,其他OSS方法都是可以使用的,請參考阿里云 [OSS參考文檔](https://help.aliyun.com/document_detail/32103.html?spm=5176.doc32099.6.748.85Qz6b) 同時支持其他框架使用如Laravel 、ThinkPHP 查看 [composer安裝組件](https://packagist.org/packages/houdunwang/oss) [TOC] ## PHP上傳 #### 配置 | 配置 | 查看 | | --- | --- | | endPoint | 登錄某個塊查看 bucket概覽 | | accessId | 登錄阿里云后臺查看右上角的 "訪問控制(使用子帳號)" 或 "accesskeys(使用主帳號)" | | accessKey | 同上 accessId | ``` Config::set('oss',[ 'accessKeyId'=>'', 'accessKeySecret'=>'', //外網Endpoint OSS開通Region和Endpoint對照表: https://help.aliyun.com/document_detail/31837.html 'endpoint'=>'oss-cn-hangzhou.aliyuncs.com', //OSS塊標識 'bucket'=> "houdunren" ] ); ``` #### 字符串上傳 ``` $object = "hd.txt"; $content = "Hi, OSS."; $res = Oss::putObject($object, $content); if(isset($res['oss-request-url'])){ echo "文件:".$res['oss-request-url']; } ``` #### 上傳本地文件 ``` $object = '1-test-upload.jpg'; $filePath = 'tests/1.jpg'; $res = Oss::uploadFile($object, $filePath); if(isset($res['oss-request-url'])){ echo "文件:".$res['oss-request-url']; } ``` #### 其他OSS管理 組件與官網SDK無縫集成,比如我們拿刪除資源舉例。 下面是官方刪除對象代碼 [官網查看](https://help.aliyun.com/document_detail/32105.html?spm=5176.doc32103.6.761.FSG7RW) ``` $ossClient->deleteObject($bucket, $object); ``` 本組件實現的刪除方法 ``` Oss::deleteObject('hdphp.php'); ``` 也就是說我們在組件中調用SDK提供的方法時,不需要傳遞第一個塊名稱。 ## 前臺直接上傳 #### 后臺簽名 ``` <?php class Oss { //生成供前臺使用的簽名 public static function sign() { //阿里云 AccessKeyId $id = 'xxxxxx'; //阿里云 AccessKeySecret $key = 'xxxxx'; //OSS外網域名: 在阿里云后臺OSS bucket中查看 $host = 'http://hdxj.oss-cn-hangzhou.aliyuncs.com'; //oss中本次上傳存放文件的目錄 $dir = $_GET['dir']; function gmt_iso8601($time) { $dtStr = date("c", $time); $mydatetime = new \DateTime($dtStr); $expiration = $mydatetime->format(\DateTime::ISO8601); $pos = strpos($expiration, '+'); $expiration = substr($expiration, 0, $pos); return $expiration."Z"; } $now = time(); $expire = 30; //設置該policy超時時間是10s. 即這個policy過了這個有效時間,將不能訪問 $end = $now + $expire; $expiration = gmt_iso8601($end); //最大文件大小.用戶可以自己設置 $condition = [0 => 'content-length-range', 1 => 0, 2 => 1048576000]; $conditions[] = $condition; //表示用戶上傳的數據,必須是以$dir開始, 不然上傳會失敗,這一步不是必須項,只是為了安全起見,防止用戶通過policy上傳到別人的目錄 $start = [0 => 'starts-with', 1 => '$key', 2 => $dir]; $conditions[] = $start; $arr = ['expiration' => $expiration, 'conditions' => $conditions]; //return; $policy = json_encode($arr); $base64_policy = base64_encode($policy); $string_to_sign = $base64_policy; $signature = base64_encode(hash_hmac('sha1', $string_to_sign, $key, true)); $response = []; $response['accessid'] = $id; $response['host'] = $host; $response['policy'] = $base64_policy; $response['signature'] = $signature; $response['expire'] = $end; //這個參數是設置用戶上傳指定的前綴 $response['dir'] = $dir; return json_encode($response); } } echo Oss::sign(); ``` #### 前臺 ``` <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>OSS上傳</title> <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.css" rel="stylesheet"> <script> //模塊配置項 var hdjs = { //框架目錄 'base': '../../', }; </script> <script src="../../app/util.js"></script> <script src="../../require.js"></script> <script src="../../config.js"></script> </head> <body> <div class="input-group"> <input type="text" class="form-control" v-model="v.path"> <span class="input-group-btn"> <button class="btn btn-default" type="button" id="pickVideo">上傳文件</button> </span> </div> </div> <script> function upload() { require(['oss'], function (oss) { var id = '#pickVideo'; var uploader = oss.upload({ //獲取簽名 serverUrl: 'sign.php?', //上傳目錄 dir: 'houdunwang/', //按鈕元素 pick: id, accept: { title: 'Images', // extensions: 'mp4', // mimeTypes: 'video/mp4' } }); //上傳開始 uploader.on('startUpload', function () { console.log('開始上傳'); }); //上傳成功 uploader.on('uploadSuccess', function (file, response) { console.log('上傳完成,文件名:' + oss.oss.host + '/' + oss.oss.object_name); }); //上傳中 uploader.on('uploadProgress', function (file, percentage) { console.log('上傳中,進度:' + parseInt(percentage * 100)); }) //上傳結束 uploader.on('uploadComplete', function () { console.log('上傳結束'); }) }); } upload(); </script> </body> </html> ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看