0

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 に変換されるように処理しませんか? この問題を処理する簡単な方法はありますか?

4

1 に答える 1