上传文件
您可以上传任意数量、格式的文件至 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 用户的文件。