Skip to content

Commit ca9871a

Browse files
committed
dashboard/app: fix parsing bug and accept "gs://" prefixes
Bug: payload is a serialized json, not string.
1 parent 49cfeac commit ca9871a

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

dashboard/app/api.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -176,17 +176,17 @@ func contextNamespace(c context.Context) string {
176176

177177
func gcsPayloadHandler(handler APIHandler) APIHandler {
178178
return func(c context.Context, payload io.Reader) (interface{}, error) {
179-
p, err := io.ReadAll(payload)
180-
if err != nil {
181-
return nil, fmt.Errorf("io.ReadAll: %w", err)
179+
var gcsURL string
180+
if err := json.NewDecoder(payload).Decode(&gcsURL); err != nil {
181+
return nil, fmt.Errorf("json.NewDecoder(payload).Decode(&gcsURL): %w", err)
182182
}
183-
payloadURL := string(p)
183+
gcsURL = strings.TrimPrefix(gcsURL, "gs://")
184184
clientGCS, err := gcs.NewClient(c)
185185
if err != nil {
186186
return nil, fmt.Errorf("gcs.NewClient: %w", err)
187187
}
188188
defer clientGCS.Close()
189-
gcsFile, err := clientGCS.Read(payloadURL)
189+
gcsFile, err := clientGCS.Read(gcsURL)
190190
if err != nil {
191191
return nil, fmt.Errorf("clientGCS.Read: %w", err)
192192
}

0 commit comments

Comments
 (0)