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
}