web端接入AliOss存儲


1、快速開始,安裝

npm安裝:
        npm install ali-oss
直接引入:
        <script src="http://gosspublic.alicdn.com/aliyun-oss-sdk-x.x.x.min.js"></script>
本地引入:
        <script src="./aliyun-oss-sdk-x.x.x.min.js"></script>

2、Bucket設置:(這步需要登錄到oss管理系統配置)設置http請求方式。

3、獲取token

      因為我們項目是即時通訊 所以 通過socket cmd方式獲取,具體與后台溝通

4、上傳文件

    • 上傳blob數據
    • 斷點上傳
/**
 * web端阿里雲上傳
 * @param  {Object} files 上傳資源
 * @param  {Object} result token
 * @return {Object}
 */
retryAliUpSend: (files, result) => {
    let client = new OSS({
        accessKeyId: result.AccessKeyId,
        accessKeySecret: result.AccessKeySecret,
        stsToken: result.SecurityToken,
        endpoint: result.endpoint,
        bucket: result.bucket,
        secure: true
    });
    // 上傳命名=>自定義命名規則
    const aliObjName = 'test001';

    // storeAs表示上傳的object name , file表示上傳的文件
    client.multipartUpload(aliObjName, files).then(function (result) {
        // 上傳成功結果
    }).catch(function (err) {
        上傳失敗
    });
},

5、復制文件

      復制部分,web端無api文檔,需通過查看源碼找到復制方法

      > aliObjName >> 新上傳的key & filename

      > sourceName >> oss存儲內存已存在的key & filename

/**
* web端阿里雲復制
* @param  {Object} sourceName 需要復制的key
* @param  {Object} aliObjName 上傳命名(key)
* @param  {Object} result token
* @return {Object}
*/
aliUpCopy: (sourceName,aliObjName,result) => {
    let client = new OSS({
        accessKeyId: result.AccessKeyId,
        accessKeySecret: result.AccessKeySecret,
        stsToken: result.SecurityToken,
        endpoint: result.endpoint,
        bucket: result.bucket,
        secure: true
    });
    // 復制文件
    client.copy(aliObjName, sourceName, {}).then(function (result) {
        
    }).catch(function (err) {
        
    });
},

6、下載文件

/**
 * 下載
 * @param  {Object} URL objkey 即上傳命名,阿里雲oss上存儲的文件名
 * @param  {Object} resize 需要限制下載的圖片尺寸,可自定義
 * @return {Object}
 */
downLoadAliUrl: (URL, resize) => {
    // 獲取cookie存儲的token
    let aliOssMsg;
    if (utils.getCookie('setAliOssToken')) {
        aliOssMsg = JSON.parse(utils.getCookie('setAliOssToken'));
    }
    let client = new OSS({
        accessKeyId: aliOssMsg.AccessKeyId,
        accessKeySecret: aliOssMsg.AccessKeySecret,
        stsToken: aliOssMsg.SecurityToken,
        endpoint: aliOssMsg.endpoint,
        bucket: aliOssMsg.bucket,
        secure: true
    });
    // 下載文件
    const result = client.signatureUrl(URL, {process: resize});
    return result;
}

ps: 

a、token有時效性,考慮token是否實時獲取

b、文件下載,下載視頻或音頻不能帶resize

c、bucket,區分環境、域名。

*考慮不全,可查看官方api文檔

地址:https://help.aliyun.com/document_detail/64041.html?spm=a2c4g.11174283.6.982.709d7da2Yr45k1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM