godev/internal/storage: return ErrObjectNotExist in GCSObject.NewReader

Map cloud.google.com/go/storage.ErrObjectNotExist to the package's
ErrObjectNotExist (matching FSObject.NewReader) so handlers return
404 instead of 500 when a GCS object is missing.

Change-Id: Iabe1428776cc2e98c5b3b5d9b9e999f905c8cc1b
Reviewed-on: https://go-review.googlesource.com/c/telemetry/+/848286
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Hongxiang Jiang <hxjiang@golang.org>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
diff --git a/godev/internal/storage/storage.go b/godev/internal/storage/storage.go
index c91d73d..a96585e 100644
--- a/godev/internal/storage/storage.go
+++ b/godev/internal/storage/storage.go
@@ -111,7 +111,11 @@
 }
 
 func (o *GCSObject) NewReader(ctx context.Context) (io.ReadCloser, error) {
-	return o.ObjectHandle.NewReader(ctx)
+	r, err := o.ObjectHandle.NewReader(ctx)
+	if errors.Is(err, storage.ErrObjectNotExist) {
+		return nil, ErrObjectNotExist
+	}
+	return r, err
 }
 
 func (o *GCSObject) NewWriter(ctx context.Context) (io.WriteCloser, error) {