天天看點

【小程式雲七天學習訓練營】Day3

雲存儲使用

mpserverless.file 對象提供 uploadFile 和 deleteFile方法管理檔案。上傳的檔案将通過CDN進行網絡加速。

步驟一:設定檔案權限

小程式Serverless提供了一套簡明易懂的JSON文法用來控制使用者對資源的通路,類似于身份驗證體系裡的IAM或者網絡安全中的ACL。您可以通過修改權限規則來管理檔案權限。

小程式Serverless會為每個建立的檔案自動提供一個預設權限規則。預設規則規定所有檔案都隻有資源所有者可以進行寫操作,所有人可讀。您可以在控制台上修改檔案權限。

1.打開小程式雲控制台,在雲存儲頁面,單擊權限圖示。

2.修改權限規則,然後單擊儲存。

上面的權限規則由多個子規則組成,每個子規則包含以下資訊:

• 範圍:用于定義規則生效範圍。在資料存儲的安全規則中,每一個規則的範圍是一個檔案(路徑)。您可以通過檔案路徑指定一個特定的檔案, 也可以通過JavaScript的正規表達式指代一批檔案或使用星号(*)指代所有檔案。

• 操作:用于定義生效範圍内的特定操作。所有人都具有檔案的讀權限。.write代表寫操作,* 代表所有操作。

• 政策:用于确定生效範圍内的特定操作是否允許。預設沒有标記為允許的操作,都是不允許的。政策是操作是否被允許的标記,可以是一個布爾值,或者是一個表達式。當政策沖突時,以最先出現的規則政策為準。如預設的權限規則政策表達式request.auth.userId == resource.auth.userId代表所有檔案都隻有資源所有者可以進行寫操作,所有人可讀。

步驟二:雲存儲操作

控制台操作

1.打開小程式雲控制台,在雲存儲頁面,單擊上傳檔案。

2.單擊直接上傳或将檔案拖拽至上傳區域。

檔案上傳過程中,請勿重新整理或關閉頁面,否則上傳任務會被中斷且清單會被清空。

3.上傳成功後,您可以單擊詳情檢視圖檔下載下傳位址。

小程式端調用

1.在小程式項目的根目錄執行以下指令安裝 SDK。

npm install @alicloud/mpserverless-sdk --save           

2.檔案上傳或删除。

// 選擇檔案上傳
my.chooseImage({
  chooseImage: 1,
  success: res => {
    const path = res.apFilePaths[0];
    const options = {
      filePath: path,
      headers: {
        contentDisposition: 'attachment',
      },
    };

    my.serverless.file.uploadFile(options).then(console.log).catch(console.error);
  },
});
// 删除之前上傳的檔案
my.serverless.file.deleteFile('https://resource.bspapp.com/xxx-xx/4b82ded0-0118-4de4-9f50-ab13110a1ffb.jpg').then(res => {
  console.log(res);
}).catch(err => {
  console.error(err);
});           

今日作業

實作在小程式中點選選擇相冊内圖檔上傳,上傳成功後,插入一條産品表的資料,産品圖檔url字段使用上傳成功後傳回的fileUrl字段。

繼續閱讀