in custom-targets/util/clouddeploy/clouddeploy.go [444:472]
func uploadGCS(ctx context.Context, gcsClient *storage.Client, gcsURI string, content *GCSUploadContent) error {
// Determine the source of the content to upload.
var contentData []byte
switch {
case len(content.Data) != 0:
contentData = content.Data
case len(content.LocalPath) != 0:
var err error
contentData, err = os.ReadFile(content.LocalPath)
if err != nil {
return err
}
default:
return fmt.Errorf("unable to determine the content to upload to GCS")
}
gcsObjURI, err := parseGCSURI(gcsURI)
if err != nil {
return err
}
w := gcsClient.Bucket(gcsObjURI.bucket).Object(gcsObjURI.name).NewWriter(ctx)
if _, err := w.Write(contentData); err != nil {
return err
}
if err := w.Close(); err != nil {
return err
}
return nil
}