You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lambda中写入WebM数据至/tmp文件后上传S3失效问题排查

问题分析与解决:Lambda写入WebM文件后无法正常播放

问题根源

你写入文件的逻辑存在错误:使用print()写入二进制WebM数据时,Python会将字节对象转换成字符串表示形式(例如把原始字节b'\x1aE\xdf\xa3'转为字符串"b'\\x1aE\\xdf\\xa3'"),而非直接写入原始二进制内容。这种转换会破坏WebM文件的结构,导致上传到S3后无法正常播放。

修正代码

将文件写入部分替换为以下代码:

# 以二进制写入模式打开文件,直接写入原始字节数据
with open("/tmp/audio.webm", "wb") as audio_file:
    audio_file.write(form_data['audio'][0])

关键说明

  • 打开文件时必须使用wb模式(二进制写入模式),不能用文本模式(a/w是文本模式,会默认处理编码,破坏二进制数据)
  • 直接调用write()方法写入原始字节对象,避免使用print()——print()会自动添加换行符、并对字节对象做字符串格式化,完全不适合处理二进制文件

修正后,写入/tmp/audio.webm的就是原始WebM二进制数据,上传到S3后可以正常播放,后续用ffmpeg合并视频也能正常工作。

内容的提问来源于stack exchange,提问作者ZPears

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 20:10:02