存儲使用
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.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字段。