在火山引擎TOS中用Node.js上传文件需先配置环境变量AK/SK,再安装SDK并初始化客户端,最后调用putObject方法完成单文件上传;配置须验证生效,region与endpoint必须严格匹配桶地域,同名文件默认覆盖。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在火山引擎对象存储(TOS)中用 Node.js 上传文件,需先完成凭证配置、客户端初始化,再调用 putObject 方法完成单文件上传,整个流程依赖环境变量注入密钥且必须满足命名与权限规范。
配置 TOS 访问凭证
打开终端,执行 nano ~/.bash_profile 编辑环境变量文件。
在文件末尾添加两行,把 AK 和 SK 替换为你在火山引擎控制台获取的真实密钥:
export TOS_ACCESS_KEY=AKTPYmI1Z****
export TOS_SECRET_KEY=T1dJM01UU****
保存退出后,运行 source ~/.bash_profile 使配置立即生效。
【务必验证】 执行 echo $TOS_ACCESS_KEY 和 echo $TOS_SECRET_KEY,若返回非空字符串则配置成功;若为空,说明未生效或写错变量名,需重查。
安装并初始化 TOS Node.js SDK
在项目根目录执行 npm install @volcengine/tos-sdk 安装 SDK。
新建 upload.js 文件,粘贴以下初始化代码:
import { TosClient } from '@volcengine/tos-sdk';<br>const client = new TosClient({<br> accessKeyId: process.env['TOS_ACCESS_KEY'],<br> accessKeySecret: process.env['TOS_SECRET_KEY'],<br> region: 'cn-beijing',<br> endpoint: 'https://tos-cn-beijing.volces.com'<br>});
注意:region 和 endpoint 必须严格匹配——华北2(北京)桶填 cn-beijing 和 https://tos-cn-beijing.volces.com;华东1(上海)则为 cn-shanghai 和 https://tos-cn-shanghai.volces.com。填错将导致连接失败且报错无明确提示。
执行单文件上传(putObject)
方法一:上传本地文件(推荐用于脚本批量上传)
在 upload.js 中追加如下代码:
import * as fs from 'fs';<br>async function uploadFile() {<br> const bucketName = 'my-bucket-name';<br> const objectName = 'uploads/report.pdf';<br> const fileStream = fs.createReadStream('./report.pdf');<br> await client.putObject({<br> bucket: bucketName,<br> key: objectName,<br> body: fileStream<br> });<br>}<br>uploadFile();
方法二:上传字符串内容(适合配置、日志等轻量文本)
替换 body 字段为:body: Buffer.from('Hello from Node.js SDK'),此时 objectName 可设为 config/app.json 等路径格式。
【关键限制】 若同名 object 已存在,新上传将直接覆盖旧文件;如需保留历史版本,请提前在 TOS 控制台开启桶的版本控制功能。


















