您可以上传任意数量、格式的文件至 CloudBase 云存储,也可以自定义文件、目录的路径和名字。
说明
默认情况下,只有通过了 CloudBase 身份验证 的用户才可以向云存储空间上传文件,因此在用户端(例如 Web)上传文件时需先进行登录认证。
您也可以使用 自定义安全规则,为云存储设置更宽松或更严格的读写权限。
使用 SDK 可以向云存储空间上传文件,并返回该文件全局唯一标识 fileID。
//第一步,引入 Web SDK,import tcb from "@cloudbase/js-sdk";//第二步,初始化const app = tcb.init({env: "your-env-id"});/**第三步,登录鉴权流程,此处代码略,请参考:https://cloud.tencent.com/document/product/876/41728*/app.uploadFile({// 云存储的路径cloudPath: "dirname/filename",// 需要上传的文件,File 类型filePath: document.getElementById("file").files[0]}).then((res) => {// 返回文件 IDconsole.log(res.fileID);});
//需先使用 wx.cloud.init 初始化,小程序端无需再引入 SDK ,且免鉴权wx.cloud.uploadFile({cloudPath: "example.png", // 上传至云端的路径filePath: "" // 小程序临时文件路径,需结合小程序相关 API 获取}).then((res) => {// 返回文件 IDconsole.log(res.fileID);});
const tcb = require("@cloudbase/node-sdk");const fs = require("fs");const app = tcb.init();app.uploadFile({cloudPath: "path/test.jpg",fileContent: fs.createReadStream("test.jpg")}).then((res) => {// 返回文件 IDconsole.log(res.fileID);});
说明
上传时文件名需要符合 文件名规范。
cloudPath 为云存储文件或文件夹的相对根目录的路径,为 目录/文件名 的形式,cloudPath 不需要以
/
开头。如果将文件上传至同一路径则是覆盖写,默认情况下,不允许 A 用户覆盖写 B 用户的文件。