http - Go 中的 Lambda 二进制有效负载编码
问题描述
我正在尝试编写一个 lambda,它将通过 HTTP 以块的形式返回一个 .WAV 文件。我已经在一个字节切片 ( outputPayload [] byte
) 中获得了我的实际数据,并试图将其传回。虽然请求似乎正在运行,但收到的响应与我预期的长度不同,并且似乎已损坏。这是我的代码:
//Create the necessary headers
responseHeader := make(map[string]string)
responseHeader["Accept-Ranges"] = "bytes"
responseHeader["Content-Range"] = fmt.Sprintf("%s/%d", rangeRequired, fileSize)
responseHeader["Content-Type"] = fileType // this will be "audio/wav"
responseHeader["Content-Length"] = fmt.Sprintf("%d", returnedByteCount)
responseBody := string(outputPayload)
return events.APIGatewayProxyResponse{
StatusCode: http.StatusPartialContent,
Headers: responseHeader,
Body: responseBody,
}, nil
作为基本检查,more
在命令行中使用,原始文件的开头如下所示:
RIFF$^?^C^@WAVEfmt ^P^@^@^@^A^@^B^@D<AC>^@^@^P<B1>^B^@^D^@^P^@data^@^?^C^@ESC^@^Y^@
虽然下载的文件如下所示:
RIFF$^?^C^@WAVEfmt ^P^@^@^@^A^@^B^@D�^@^@^P�^B^@^D^@^P^@data^@^?^C^@ESC^@^Y^@
我猜我在某个地方遇到了编码问题。我的预感是字符串转换是问题所在,但这是我需要 APIGatewayProxyResponse“Body”组件的变量类型。如何更改我的代码输出以确保有效负载与原始文件匹配?
解决方案
推荐阅读
- elf - 如何理解elf中Program Headers中Offset和VirAddr的区别?
- amazon-web-services - 在 AWS 建议上安装新的 ERPNEXT
- c - 为什么修改openssl的源代码不起作用
- html - 背景尺寸:Iphone 上的封面显示不清晰
- r - 使用来自 R 中 4 个不同栅格堆栈的地图循环生成 par() 面板图
- r - 从 GLM 获取真实的预测值
- html - 具有行高的div中跨度的css边框,边框在顶部旁边
- java - 如何在 Spring Boot 中处理 Spring Security 中的 csrf 令牌和会话到期?
- vue.js - Vuetify - 严格的数据表自定义过滤器
- dockerfile - 评估 dockerfile 中的 ARG