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