游乐游手机版
首页/AI热点日报/热点详情

火山引擎对象存储 Node.js 上传文件方法教程

类型:热点整理2026-08-18
在火山引擎TOS中使用Node js上传文件,通常需要先配置环境变量 AK SK,然后安装 SDK 并初始化客户端,最后通过 putObject 方法完成单文件上传;配置完成后务必验证是否生效,且 region 与 endpoint 必须与存储桶地域严格对应,同名文件默认会被覆盖。在火山引擎对象存储

在火山引擎TOS中使用Node.js上传文件,通常需要先配置环境变量 AK/SK,然后安装 SDK 并初始化客户端,最后通过 putObject 方法完成单文件上传;配置完成后务必验证是否生效,且 region 与 endpoint 必须与存储桶地域严格对应,同名文件默认会被覆盖。

火山引擎对象存储怎么用Node.js上传文件?

在火山引擎对象存储(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 安装 TOS SDK。

新建 upload.js 文件,并写入以下初始化代码:

import { TosClient } from '@volcengine/tos-sdk';
const client = new TosClient({
accessKeyId: process.env['TOS_ACCESS_KEY'],
accessKeySecret: process.env['TOS_SECRET_KEY'],
region: 'cn-beijing',
endpoint: 'https://tos-cn-beijing.volces.com'
});

这里有一个非常容易忽略的关键点: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';
async function uploadFile() {
const bucketName = 'my-bucket-name';
const objectName = 'uploads/report.pdf';
const fileStream = fs.createReadStream('./report.pdf');
await client.putObject({
bucket: bucketName,
key: objectName,
body: fileStream
});
}
uploadFile();

方法二:上传字符串内容(适用于配置文件、日志内容等轻量文本)

将 body 字段替换为:
body: Buffer.from('Hello from Node.js SDK'),此时 objectName 可以设置为 config/app.json 这类路径形式。

【关键限制】 如果同名 object 已经存在,新上传的文件会直接覆盖原有文件;若希望保留历史版本,建议提前在 TOS 控制台为存储桶开启版本控制功能。

来源:https://www.php.cn/faq/2965629.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。