在火山引擎tos中用python上传文件需安装sdk、配置ak/sk等环境变量、初始化客户端,再调用put_object方法;必须确保endpoint与region匹配、data为二进制文件对象,且桶具备写权限。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在火山引擎对象存储(TOS)中用 Python 上传文件,需先安装 SDK、配置凭证、初始化客户端,再调用 put_object 方法完成上传。整个过程依赖正确 AK/SK、有效 endpoint 和可写权限的桶,缺一不可。
安装 TOS Python SDK
执行 pip 命令安装官方 SDK:
pip install volcengine-python-sdk
注意:若系统缺少 python-devel 包,crcmod 的 C 扩展将无法编译,导致上传校验失败或性能下降。请确认已安装 python-devel(Linux)或对应开发头文件(macOS/Windows)。
配置访问密钥
推荐通过环境变量设置,避免硬编码泄露风险:
export TOS_ACCESS_KEY=AKxxxxxxxxxxxxxx
export TOS_SECRET_KEY=SKxxxxxxxxxxxxxx
export TOS_REGION=cn-beijing
export TOS_ENDPOINT=tos-cn-beijing.volces.com
【TOS_REGION 和 TOS_ENDPOINT 必须匹配】例如华北2(北京)区域必须使用 tos-cn-beijing.volces.com,填错会导致连接拒绝或签名验证失败。
初始化客户端并上传文件
方法一:使用 TosClientV2(推荐,支持新版功能)
第一步:导入模块并读取环境变量
import os
from volcengine.tos import TosClientV2
第二步:创建客户端实例
client = TosClientV2(
ak=os.getenv('TOS_ACCESS_KEY'),
sk=os.getenv('TOS_SECRET_KEY'),
region=os.getenv('TOS_REGION'),
endpoint=os.getenv('TOS_ENDPOINT')
)
第三步:执行上传(本地文件 → 桶内指定路径)
client.put_object(bucket='my-bucket', key='photos/vacation.jpg', data=open('/path/to/local.jpg', 'rb'))
这一步操作起来很简单,直接把文件句柄传入即可;但注意 【data 参数必须是二进制模式打开的文件对象】,用 'r' 模式会报错。
方法二:使用 TosClient(兼容旧版,不推荐新项目使用)
from volcengine.tos import TosClient
client = TosClient(os.getenv('TOS_ACCESS_KEY'), os.getenv('TOS_SECRET_KEY'), os.getenv('TOS_ENDPOINT'), os.getenv('TOS_REGION'))
client.put_object('my-bucket', 'docs/report.pdf', open('/tmp/report.pdf', 'rb'))
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











