func makeJsonRequest()

in e2e-examples/gcs/main.go [249:311]


func makeJsonRequest(client *storage.Client) []int {
	fmt.Println("========================== start http calls ===============================")
	res := []int{}

	switch *method {
	case "media":
		for i := 0; i < *numCalls; i++ {
			start := time.Now()
			obj := client.Bucket(*bucketName).Object(*objectName)
			rc, err := obj.NewReader(context.Background())
			if err != nil {
				fmt.Println("Failed to create object reader: %v", err)
				os.Exit(1)
			}
			defer rc.Close()

			_, err = ioutil.ReadAll(rc)
			if err != nil {
				fmt.Println("Failed to read data from object: %v", err)
				os.Exit(1)
			}
			total := time.Since(start).Milliseconds()
			res = append(res, int(total))
			//fmt.Printf("http object data: %s\n", data)
			fmt.Println("total time in ms for read: ", total)
		}
	case "metadata":
		for i := 0; i < *numCalls; i++ {
			ctx := context.Background()
			start := time.Now()
			obj := client.Bucket(*bucketName).Object(*objectName)
			_, err := obj.Attrs(ctx)
			if err != nil {
				fmt.Println("obj.Attrs() got error: ", err)
				os.Exit(1)
			}
			//fmt.Printf("-----> obj.Attrs() result: %+v\n", attr)
			total := time.Since(start).Milliseconds()
			res = append(res, int(total))
			fmt.Println("total time in ms for read attributes: ", total)
		}
	case "write":
		for i := 0; i < *numCalls; i++ {
			ctx := context.Background()
			start := time.Now()
			msg := strings.Repeat("x", *size*1024)
			obj := client.Bucket(*bucketName).Object(*objectName)
			w := obj.NewWriter(ctx)
			if _, err := fmt.Fprint(w, msg); err != nil {
				fmt.Println("Failed to write message to object: %v", err)
			}
			if err := w.Close(); err != nil {
				fmt.Println("object writer failed closing: %v", err)
				os.Exit(1)
			}
			total := time.Since(start).Milliseconds()
			res = append(res, int(total))
			fmt.Println("total time in ms for http write: ", total)
		}

	}
	return res
}