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