如何解决上传视频 (4mb) base64 编码时远程服务器卡住
我正在尝试使用 nodejs 后端服务器将视频从 React Native 应用程序上传到 aws s3 存储桶。我的方法是,
- 在 React Native 应用程序级别将视频转换为 base64
- 通过在请求中附加 base64 数据作为表单数据向后端服务器发送 POST 请求
- 在后端服务器上使用 multer 上传到 s3 存储桶。
我在使用这种方法时遇到了一些问题
我可以上传小尺寸视频 (kb),当我尝试上传 4mb 视频时,它在我的本地机器上运行良好,但在服务器(具有 1Gb 内存的 aws ec2 实例)中,这导致服务器卡住。
const params = {
Bucket: S3_VIDEO_BUCKET_NAME,Key: `${name}`,Body: bufferContent,ContentEncoding: 'base64',ContentType: `${context}/${type}`,}
s3.upload(params,function (err,data) {
if (err) {
console.log('Error',err)
isError = true
}
if (data) {
console.log('Upload Success',data.Location)
console.log(`${S3_VIDEO_CLOUD_FRONT_DOMAIN}${data.Key}`)
key = data.Key
}
})
已编辑 => 我正在使用 multer 并且最大 fieldSize 为 20mb。
var upload = multer({ limits: { fieldSize: 20 * 1024 * 1024 } })
解决方法
如果您的服务器使用 nginx,那么您可能需要检查 client_max_body_size
,它通常默认为 1mb
Changing Nginx body size
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。