BunnyStream TUS上传基础流程
BunnyStream是支持TUS协议的分块视频上传服务,TUS协议可以实现断点续传,避免大文件上传过程中因网络中断导致的重复上传问题。正常的上传流程需要先获取上传授权,再分块推送视频数据,最后确认上传完成。

401认证错误的常见原因
401错误表示请求未通过服务端的身份认证,在BunnyStream TUS上传场景中,常见的原因有以下几类:
- API密钥配置错误,使用了无效的或者没有上传权限的密钥
- 上传请求头中缺少必要的认证字段,或者字段格式不符合要求
- 视频库ID、上传路径等参数配置错误,导致服务端无法匹配对应的资源权限
- TUS协议要求的上传元数据签名生成错误,服务端校验签名不通过
正确的参数配置说明
进行BunnyStream TUS上传需要提前准备以下核心参数:
| 参数名称 | 参数说明 | 配置要求 |
|---|---|---|
| api_key | BunnyStream的API密钥 | 需要在BunnyCDN控制台获取,具备视频上传权限 |
| library_id | 视频库ID | 目标视频库的标识,在BunnyStream控制台视频库设置页查看 |
| upload_url | TUS上传地址 | 格式为https://video.ipipp.com/tusupload/{library_id} |
| video_title | 上传视频的标题 | 自定义视频名称,需要放在TUS元数据中 |
完整上传代码示例
以下是使用Python实现BunnyStream TUS上传的示例代码,包含参数配置和错误处理逻辑:
import requests
# 基础参数配置
API_KEY = "your_bunnystream_api_key"
LIBRARY_ID = "your_library_id"
UPLOAD_URL = f"https://video.ipipp.com/tusupload/{LIBRARY_ID}"
VIDEO_TITLE = "test_video"
VIDEO_PATH = "./test.mp4"
def upload_video_tus():
# 第一步:创建TUS上传会话
headers = {
"Authorization": f"Bearer {API_KEY}",
"Tus-Resumable": "1.0.0",
"Upload-Length": str(get_video_size(VIDEO_PATH)),
"Upload-Metadata": f"videoTitle {VIDEO_TITLE}"
}
create_resp = requests.post(UPLOAD_URL, headers=headers)
if create_resp.status_code == 401:
print("创建上传会话失败,401认证错误,请检查API密钥和参数配置")
return
if create_resp.status_code != 201:
print(f"创建上传会话失败,状态码:{create_resp.status_code}")
return
# 获取上传会话地址
upload_session_url = create_resp.headers.get("Location")
# 第二步:分块上传视频数据
with open(VIDEO_PATH, "rb") as f:
offset = 0
while True:
chunk = f.read(1024 * 1024) # 每次上传1MB
if not chunk:
break
upload_headers = {
"Authorization": f"Bearer {API_KEY}",
"Tus-Resumable": "1.0.0",
"Upload-Offset": str(offset),
"Content-Type": "application/offset+octet-stream"
}
upload_resp = requests.patch(upload_session_url, headers=upload_headers, data=chunk)
if upload_resp.status_code == 401:
print("分块上传失败,401认证错误,请检查请求头配置")
return
offset += len(chunk)
print("视频上传完成")
def get_video_size(video_path):
import os
return os.path.getsize(video_path)
if __name__ == "__main__":
upload_video_tus()
错误排查建议
如果遇到401错误,可以按照以下步骤排查:
- 先检查API_KEY是否正确,是否有视频上传的权限,可在BunnyStream控制台重新生成密钥测试
- 核对LIBRARY_ID是否和上传地址中的ID一致,避免参数不匹配
- 检查请求头中的Authorization字段格式是否正确,是否是Bearer加空格加密钥的格式
- 确认TUS协议相关的请求头是否完整,比如Tus-Resumable字段是否设置为1.0.0
注意所有请求头中的参数都需要严格按照BunnyStream的文档要求配置,多余或者缺失的字段都可能导致认证失败。
BunnyStreamTUS_upload401_authentication_errorvideo_upload修改时间:2026-06-13 19:54:15