gpt4 book ai didi

json - 将二进制数据 blob 发送到 dynamodb 时出错

转载 作者:数据小太阳 更新时间:2023-10-29 03:28:33 24 4
gpt4 key购买 nike

我在尝试使用 godynamo 管理 dynamodb 实例时遇到了问题。

我的代码旨在获取一个 gob 编码的字节数组并将其放入 dynamodb。

func (c *checkPointManager) CommitGraph(pop *Population) {
var blob, err = pop.GobEncodeColorGraphs()
fitness := pop.GetTotalFitness()
if err != nil {
log.Fatal(err)
}

put1 := put.NewPutItem()
put1.TableName = "CheckPoint"
put1.Item["fitnessScore"] = &attributevalue.AttributeValue{N: string(fitness)}
put1.Item["population"] = &attributevalue.AttributeValue{N: string(1)}
put1.Item["graph"] = &attributevalue.AttributeValue{B: string(blob)}
body, code, err := put1.EndpointReq()
if err != nil || code != http.StatusOK {
log.Fatalf("put failed %d %v %s\n", code, err, body)
}
fmt.Printf("values checkpointed: %d\n %v\n %s\n", code, err, body)

但每次我运行这段代码时,我都会收到以下错误。 无法转换为 Blob:Base64 编码长度应为 4 字节的倍数但发现:25

godynamo 是否无法确保二进制数组专门转换为 base64?有没有一种简单的方法可以让我处理这个问题?

最佳答案

根据 Amazon DynamoDB Data Types 的二进制数据类型描述,“客户端应用程序必须以 base64 格式对二进制值进行编码” .

如果需要,您的代码可以对值进行编码,请参阅 golang 的 base64 包: https://golang.org/pkg/encoding/base64

godynamo 库提供了可以为您编码的函数,请查看 AttributeValue :

    // InsertB_unencoded adds a new plain string to the B field.
// The argument is assumed to be plaintext and will be base64 encoded.
func (a *AttributeValue) InsertB_unencoded(k string) error {

关于json - 将二进制数据 blob 发送到 dynamodb 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30493462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com