func thumbnail()

in code/function/function.go [155:178]


func thumbnail(ctx context.Context, e GCSEvent, dest string) error {
	inputBlob := storageClient.Bucket(e.Bucket).Object(e.Name)
	r, err := inputBlob.NewReader(ctx)
	if err != nil {
		return fmt.Errorf("error in getting reading input from bucket: %v", err)
	}

	outputBlob := storageClient.Bucket(e.Bucket).Object(dest)
	w := outputBlob.NewWriter(ctx)
	defer w.Close()

	// Use - as input and output to use stdin and stdout.
	var stderr bytes.Buffer
	cmd := exec.Command("convert", "-", "-thumbnail", "x100", "-")
	cmd.Stdin = r
	cmd.Stdout = w
	cmd.Stderr = &stderr

	if err := cmd.Run(); err != nil {
		return fmt.Errorf("error in imagemagick call: %s", stderr.String())
	}

	return nil
}