func (tb *Blob) MustUpload(t *testing.T, ds blobserver.BlobReceiver) { sb, err := ds.ReceiveBlob(tb.BlobRef(), tb.Reader()) if err != nil { t.Fatalf("failed to upload blob %v (%q): %v", tb.BlobRef(), tb.Contents, err) } tb.AssertMatches(t, sb) // TODO: better error reporting }
func (tb *testBlob) ExpectUploadBlob(t *testing.T, ds blobserver.BlobReceiver) { sb, err := ds.ReceiveBlob(tb.BlobRef(), tb.Reader()) if err != nil { t.Fatalf("ReceiveBlob error: %v", err) } tb.AssertMatches(t, sb) }
func copyBlob(br blob.Ref, dst blobserver.BlobReceiver, src blob.Fetcher) error { rc, _, err := src.Fetch(br) if err != nil { return err } defer rc.Close() _, err = dst.ReceiveBlob(br, rc) return err }
func handlePut(conn http.ResponseWriter, req *http.Request, blobReceiver blobserver.BlobReceiver) { if w, ok := blobReceiver.(blobserver.ContextWrapper); ok { blobReceiver = w.WrapContext(req) } blobRef := blobref.FromPattern(kPutPattern, req.URL.Path) if blobRef == nil { httputil.BadRequestError(conn, "Malformed PUT URL.") return } if !blobRef.IsSupported() { httputil.BadRequestError(conn, "unsupported object hash function") return } _, err := blobReceiver.ReceiveBlob(blobRef, req.Body) if err != nil { httputil.ServerError(conn, err) return } fmt.Fprint(conn, "OK") }