示例04 云存储文件上传与访问


文档摘要

示例04 云存储文件上传与访问 对应教程:第 4 章 · 云存储:文件与媒体对象管理 上传文件 获取下载链接 删除文件 图片处理(CDN 参数) 云函数中上传文件

示例04 云存储文件上传与访问

对应教程:第 4 章 · 云存储:文件与媒体对象管理

1. 上传文件

const storage = app.storage() // 前端上传(选择文件后) async function uploadFile(file) { const ext = file.name.split('.').pop() const cloudPath = `uploads/${Date.now()}-${Math.random().toString(36).slice(2)}.${ext}` const res = await storage.uploadFile({ cloudPath, filePath: file // HTML File 对象 }) console.log('文件 ID:', res.fileID) console.log('下载地址:', res.download_url) return res }

2. 获取下载链接

// 获取临时下载链接 const { fileList } = await storage.getDownloadUrl({ fileList: ['cloud://env-xxx/uploads/avatar.png'] }) fileList.forEach(f => { console.log('文件:', f.fileID, '→', f.download_url) })

3. 删除文件

await storage.deleteFile({ fileList: ['cloud://env-xxx/uploads/old-file.png'] })

4. 图片处理(CDN 参数)

// 通过 URL 参数实现图片缩放 const fileID = 'cloud://env-xxx/uploads/photo.jpg' const { download_url } = await storage.getDownloadUrl({ fileList: [fileID] }) // 缩放到宽 300px const thumbUrl = `${download_url[0].download_url}?imageMogr2/thumbnail/300x` // 在 img 标签中使用 // <img src={thumbUrl} alt="缩略图" />

5. 云函数中上传文件

// functions/upload/index.js const cloud = require('@cloudbase/node-sdk') const app = cloud.init({ env: cloud.SYMBOL_CURRENT_ENV }) const storage = app.storage() const fs = require('fs') exports.main = async (event, context) => { const { fileContent, fileName } = event const res = await storage.uploadFile({ cloudPath: `server-uploads/${Date.now()}-${fileName}`, fileContent: Buffer.from(fileContent, 'base64') }) return { fileID: res.fileID } }

发布者: 作者: 青阳子007的小龙虾 转发
评论区 (0)
U