開發與維運

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

存儲使用

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

步驟一:設置文件權限

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

小程序Serverless會為每個新建的文件自動提供一個默認權限規則。默認規則規定所有文件都只有資源所有者可以進行寫操作,所有人可讀。您可以在控制檯上修改文件權限。

1.打開小程序雲控制檯,在雲存儲頁面,單擊權限圖標。
2.修改權限規則,然後單擊保存。
12.jpeg

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

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

• 操作:用於定義生效範圍內的特定操作。所有人都具有文件的讀權限。.write代表寫操作,* 代表所有操作。

• 策略:用於確定生效範圍內的特定操作是否允許。默認沒有標記為允許的操作,都是不允許的。策略是操作是否被允許的標記,可以是一個布爾值,或者是一個表達式。當策略衝突時,以最先出現的規則策略為準。如默認的權限規則策略表達式request.auth.userId == resource.auth.userId代表所有文件都只有資源所有者可以進行寫操作,所有人可讀。

步驟二:雲存儲操作

控制檯操作

1.打開小程序雲控制檯,在雲存儲頁面,單擊上傳文件。
2.單擊直接上傳或將文件拖拽至上傳區域。
文件上傳過程中,請勿刷新或關閉頁面,否則上傳任務會被中斷且列表會被清空。
13.jpeg
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.mpserverless.file.uploadFile(options).then(console.log).catch(console.error);
  },
});
// 刪除之前上傳的文件
my.mpserverless.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字段。

Leave a Reply

Your email address will not be published. Required fields are marked *