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
}