func exportObjects()

in tools/mc2bq/pkg/export/export.go [265:308]


func exportObjects(ctx context.Context, dataset *bigquery.Dataset, params *Params, src bigquery.LoadSource, tableName string) error {
	tbl := dataset.Table(tableName)
	_, err := tbl.Metadata(ctx)
	if err != nil && !gapiutil.IsErrorWithCode(err, http.StatusNotFound) {
		return err
	}
	if err == nil && !params.Force {
		return errTableExists
	}

	err = gapiutil.IgnoreErrorWithCode(tbl.Delete(ctx), http.StatusNotFound)
	if err != nil {
		return err
	}

	fmt.Println(messages.ExportingDataToTable{TableName: tableName})
	loader := tbl.LoaderFrom(src)
	loader.WriteDisposition = bigquery.WriteTruncate
	job, err := loader.Run(ctx)
	if err != nil {
		return err
	}

	status, err := job.Wait(ctx)
	if err != nil {
		return err
	}

	err = status.Err()
	if err != nil {
		if len(status.Errors) > 0 {
			var sb strings.Builder
			fmt.Fprintf(&sb, "encountered errors during export:")
			for _, err := range status.Errors {
				fmt.Fprintf(&sb, "\n\t%v", err)
			}

			return errors.New(sb.String())
		}
		return err
	}

	return nil
}