:py:mod:`airflow.providers.google.cloud.transfers.local_to_gcs`
===============================================================

.. py:module:: airflow.providers.google.cloud.transfers.local_to_gcs

.. autoapi-nested-parse::

   This module contains operator for uploading local file(s) to GCS.



Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.transfers.local_to_gcs.LocalFilesystemToGCSOperator




.. py:class:: LocalFilesystemToGCSOperator(*, src, dst, bucket, gcp_conn_id='google_cloud_default', mime_type='application/octet-stream', delegate_to=None, gzip=False, impersonation_chain = None, **kwargs)

   Bases: :py:obj:`airflow.models.BaseOperator`

   Uploads a file or list of files to Google Cloud Storage.
   Optionally can compress the file for upload.

   .. seealso::
       For more information on how to use this operator, take a look at the guide:
       :ref:`howto/operator:LocalFilesystemToGCSOperator`

   :param src: Path to the local file, or list of local files. Path can be either absolute
       (e.g. /path/to/file.ext) or relative (e.g. ../../foo/*/*.csv). (templated)
   :param dst: Destination path within the specified bucket on GCS (e.g. /path/to/file.ext).
       If multiple files are being uploaded, specify object prefix with trailing backslash
       (e.g. /path/to/directory/) (templated)
   :param bucket: The bucket to upload to. (templated)
   :param gcp_conn_id: (Optional) The connection ID used to connect to Google Cloud.
   :param mime_type: The mime-type string
   :param delegate_to: The account to impersonate, if any
   :param gzip: Allows for file to be compressed and uploaded as gzip
   :param impersonation_chain: Optional service account to impersonate using short-term
       credentials, or chained list of accounts required to get the access_token
       of the last account in the list, which will be impersonated in the request.
       If set as a string, the account must grant the originating account
       the Service Account Token Creator IAM role.
       If set as a sequence, the identities from the list must grant
       Service Account Token Creator IAM role to the directly preceding identity, with first
       account from the list granting this role to the originating account (templated).

   .. py:attribute:: template_fields
      :annotation: :Sequence[str] = ['src', 'dst', 'bucket', 'impersonation_chain']

      

   .. py:method:: execute(self, context)

      Uploads a file or list of files to Google Cloud Storage



