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