簡單幾步,用雲函數上傳文件至靜態網站託管

前言

雲開發CloudBase爲開發者提供靜態網站託管的能力,靜態資源(HTML、CSS、JavaScript、字體等)的分發由對象存儲 COS 和擁有多個邊緣網點的 CDN 提供支持。html

本篇文章將使用雲開發 Node.js 管理端 SDK演示,只需簡單幾步便可在雲函數中上傳文件到靜態網站託管。node

準備

  • 建立雲開發按量計費環境;
  • 在按量計費環境下開通靜態網站託管;
  • 查詢騰訊雲訪問密鑰。

操做步驟

1、獲取訪問密鑰:secretId 和 secretKey

打開騰訊雲控制檯,在右上角頭像位置下拉菜單中找到訪問管理並點擊進入。數據庫

選擇左側菜單欄中的訪問密鑰-API密鑰管理,點擊新建密鑰。json

點擊「顯示」,根據提示操做便可得到密鑰。小程序

圖片

2、建立雲函數

打開雲開發 CloudBase 控制檯,選擇按量付費環境,選擇左側菜單欄的雲函數。後端

圖片

點擊新建雲函數,而後根據提示信息填寫雲函數配置信息,完成建立便可。api

圖片

點擊剛剛建立的雲函數,進入編輯頁面,點擊「函數代碼」。服務器

圖片

複製測試代碼到新建立的雲函數中,並修改envId(雲開發環境id)、secretId和secretKey(獲取方式見上一步)。微信

const CloudBase = require('@cloudbase/manager-node')
const fs = require('fs')
const { hosting } = new CloudBase({
secretId: 'Your SecretId', // 騰訊雲API密鑰SecretId https://console.cloud.tencent.com/cam/capi
secretKey: 'Your SecretKey', // 騰訊雲API密鑰SecretKey  https://console.cloud.tencent.com/cam/capi
envId: 'Your envId' // 雲開發環境ID,可在騰訊云云開發控制檯獲取 https://console.cloud.tencent.com/tcb/env/index
})

exports.main = async(event, context) => {
//寫入文件到雲函數臨時目錄
const content = '測試內容!'

fs.writeFile('/tmp/test.txt', content, (err) => {
if (err) {
return console.log(err);
}
console.log("File saved successfully!");
})
let fileCount = 0
// 上傳文件
await hosting.uploadFiles({
files: [{
localPath: '/tmp/test.txt',
cloudPath: 'hosting/test_data/data.txt'
}],
ignore: ['**/ignore.*'],
onFileFinish: () => {
fileCount++
}
})
console.log(fileCount) // 1
return fileCount
}

以及 package.json 文件:less

{
"name": "tcb_scf2hosting",
"version": "1.0.0",
"description": "使用雲函數上傳文件到靜態網站託管",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"@cloudbase/manager-node": "latest"
},
"author": "XiaoLin",
"license": "ISC"
}

3、保存並安裝依賴

編輯完成後點擊左下方保存並安裝依賴按鈕。並等待右上角出現雲函數更新成功提示後便可。

圖片

4、測試

打開右上角的測試按鈕,點擊運行測試,出現以下結果說明測試成功。

圖片

打開所操做雲環境的靜態網站託管便可看到剛剛上傳的資源信息。

圖片

結語

本文經過雲開發 Node.js 管理端 SDK 以及運用雲函數臨時讀寫文件的 tmp 目錄,來實現使用雲函數上傳文件到靜態網站託管。

除了雲函數,雲開發 manager-node sdk 還支持開發者經過接口形式對雲開發提供的數據庫、文件存儲等資源進行建立、管理、配置等操做,歡迎體驗:https://docs.cloudbase.net/api-reference/manager/node/introduction.html

產品介紹

雲開發(Tencent CloudBase,TCB)是騰訊雲提供的雲原生一體化開發環境和工具平臺,爲開發者提供高可用、自動彈性擴縮的後端雲服務,包含計算、存儲、託管等serverless化能力,可用於雲端一體化開發多種端應用(小程序,公衆號,Web 應用,Flutter 客戶端等),幫助開發者統一構建和管理後端服務和雲資源,避免了應用開發過程當中繁瑣的服務器搭建及運維,開發者能夠專一於業務邏輯的實現,開發門檻更低,效率更高。
開通雲開發:https://console.cloud.tencent.com/tcb?tdl_anchor=techsite
產品文檔:https://cloud.tencent.com/product/tcb?from=12763
技術文檔:https://cloudbase.net?from=10004 技術交流加Q羣:601134960 最新資訊關注微信公衆號【騰訊云云開發】

相關文章
相關標籤/搜索