UNI-APP之uniCloud使用(存儲-日誌-示例)| 8月更文挑戰

這是我參與8月更文挑戰的第3天,活動詳情查看:8月更文挑戰javascript

雲存儲

開發者使用uniCloud的雲存儲,無需再像傳統模式那樣單獨去購買存儲空間、CDN映射、流量採購等;uniCloud雲存儲支持文本、圖片和其餘由用戶生成的內容存儲到雲端,並提供CDN下載地址,java

開發者可在客戶端使用雲存儲API,文件上傳成功後,系統會自動生成一個資源連接,開發者需保存該文件地址供後續業務下載使用。小程序

即將支持雲函數中使用雲存儲功能。微信小程序

uploadFile(Object object)

上傳文件到雲存儲,阿里雲單文件大小限制爲100M,騰訊雲單文件最大爲5G數組

請求參數

Object objectpromise

參數名 類型 必填 默認值 說明 平臺差別說明
filePath String - 要上傳的文件對象 -

響應參數

字段 類型 說明
code String 狀態碼,操做成功則不返回
message String 錯誤描述
fileID String 文件惟一 ID,用來訪問文件,建議存儲起來
requestId String 請求序列號,用於錯誤排查

示例代碼

uni.chooseImage({
    count: 1,
    success(res) {
        console.log(res);
        if (res.tempFilePaths.length > 0) {
            let filePath = res.tempFilePaths[0]
            //進行上傳操做
            // promise
            const result = await uniCloud.uploadFile({
                filePath: filePath
            });
            // callback
            uniCloud.uploadFile({
                filePath: filePath
                },
                success() {},
                fail() {},
                complete() {}
            });
        }
    }
});
複製代碼

Tips微信

  • 阿里雲返回的fileID爲連接形式

deleteFile(Object object)

刪除雲端文件markdown

請求參數

Object objectapp

字段 類型 必填 說明
fileList .String 要刪除的文件 ID 組成的數組,阿里雲只支持一次刪除一個文件

響應參數

字段 類型 必填 說明
code String 狀態碼,操做成功則不返回
message String 錯誤描述
fileList .Object 刪除結果組成的數組
requestId String 請求序列號,用於錯誤排查

fileList定義框架

字段 類型 必填 說明
code String 刪除結果,成功爲 SUCCESS
fileID String 文件 ID

示例代碼

// promise
uniCloud
  .deleteFile({
    fileList: ['cloud://jimmytest-088bef/1534576354877.jpg']
  })
  .then(res => {});
// callback
uniCloud.deleteFile(
  {
    fileList: ['cloud://jimmytest-088bef/1534576354877.jpg'],
    success(){},
    fail(){},
    complete(){}
  }
);
複製代碼

普通日誌

開發者在雲函數內也可使用console.logconsole.infoconsole.warnconsole.error四種方式打印日誌。

HBuilderX中查看日誌的教程在 快速上手章節

高級日誌

高級日誌包括如下四種,以此方式輸出的日誌會持久化存儲(有效期30天)。

接口 描述
uniCloud.logger.log 以 log 日誌等級輸出日誌
uniCloud.logger.info 以 info 日誌等級輸出日誌
uniCloud.logger.warn 以 warn 日誌等級輸出日誌
uniCloud.logger.error 以 error 日誌等級輸出日誌

若項目僅鏈接一個服務空間,uniCloud框架會自動綁定服務空間,開發者無需手動作初始化工做(可理解爲類調用)。只有存在多服務空間時,才須要根據本文進行初始化

//項目僅鏈接了一個服務空間,則無需初始化//可經過uniCloud直接調用雲開發的APIuniCloud.callFunction()uniCloud.uploadFile()
複製代碼

若項目鏈接了多個服務空間,uniCloud沒法自動綁定;需開發者在客戶端代碼中,手動調用初始化方法uniCloud.init,綁定服務空間。

uniCloud.init方法會返回一個uniCloud實例,以後雲開發API的調用都須要經過該uniCloud實例發起(相似實例調用)。

uniCloud.init方法定義以下:

function init(options):uniCloud
複製代碼

uniCloud.init方法接受一個options參數,返回uniCloud實例,uniCloud實例可調用雲函數、雲存儲相關API。

options 參數說明

參數名 類型 必填 默認值 說明
provider String - 目前僅支持aliyun
spaceId String - 服務空間ID,注意是服務空間ID,不是服務空間名稱
clientSecret String - 能夠在uniCloud控制檯服務空間列表中查看

示例代碼

//開發者建立了多個服務空間,則需手動初始化
const myCloud = uniCloud.init({
  provider: 'aliyun',
  spaceId: 'xxxx-yyy',
  clientSecret: 'xxxx'
});
//經過uniCloud實例調用雲開發的API
myCloud.callFunction()
myCloud.uploadFile()
複製代碼

示例

相關文章
相關標籤/搜索