上传文件

最近更新时间:2023-09-13 16:55:04

我的收藏
您可以上传任意数量、格式的文件至 CloudBase 云存储,也可以自定义文件、目录的路径和名字。
说明
默认情况下,只有通过了 CloudBase 身份验证 的用户才可以向云存储空间上传文件,因此在用户端(例如 Web)上传文件时需先进行登录认证。
您也可以使用 自定义安全规则,为云存储设置更宽松或更严格的读写权限。
使用 SDK 可以向云存储空间上传文件,并返回该文件全局唯一标识 fileID
Web
微信小程序
Node.js
//第一步,引入 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) => {
// 返回文件 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 用户的文件。