code: def upload_to_gcs(bucket, object_name, local_file):
      """
      Ref: https://cloud.google.com/storage/docs/uploading-objects#storage-upload-object-python
      :param bucket: GCS bucket name
      :param object_name: target path & file-name
      :param local_file: source path & file-name
      :return:
      """
      # WORKAROUND to prevent timeout for files > 6 MB on 800 kbps upload speed.
      # (Ref: https://github.com/googleapis/python-storage/issues/74)
      storage.blob._MAX_MULTIPART_SIZE = 5 * 1024 * 1024  # 5 MB
      storage.blob._DEFAULT_CHUNKSIZE = 5 * 1024 * 1024  # 5 MB
      # End of Workaround
  
      client = storage.Client()
      bucket = client.bucket(bucket)
  
      blob = bucket.blob(object_name)
      blob.upload_from_filename(local_file)
  
file_path: data-engineering-zoomcamp/cohorts/2022/week_2_data_ingestion/airflow/dags/data_ingestion_gcs_dag.py
imports: import os
  import logging
  from airflow import DAG
  from airflow.utils.dates import days_ago
  from airflow.operators.bash import BashOperator
  from airflow.operators.python import PythonOperator
  from google.cloud import storage
  from airflow.providers.google.cloud.operators.bigquery import BigQueryCreateExternalTableOperator
  import pyarrow.csv
  import pyarrow.parquet
label_desc: Use image node_id 2 for calling a global function with example usage: upload_to_gcs(bucket, object_name, local_file) without return types