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

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

.. autoapi-nested-parse::

   This module contains a Google Cloud Storage operator.



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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.transfers.gcs_to_gcs.GCSToGCSOperator




Attributes
~~~~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.transfers.gcs_to_gcs.WILDCARD


.. py:data:: WILDCARD
   :annotation: = *

   

.. py:class:: GCSToGCSOperator(*, source_bucket, source_object=None, source_objects=None, destination_bucket=None, destination_object=None, delimiter=None, move_object=False, replace=True, gcp_conn_id='google_cloud_default', delegate_to=None, last_modified_time=None, maximum_modified_time=None, is_older_than=None, impersonation_chain = None, source_object_required=False, exact_match=False, **kwargs)

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

   Copies objects from a bucket to another, with renaming if requested.

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

   :param source_bucket: The source Google Cloud Storage bucket where the
        object is. (templated)
   :param source_object: The source name of the object to copy in the Google cloud
       storage bucket. (templated)
       You can use only one wildcard for objects (filenames) within your
       bucket. The wildcard can appear inside the object name or at the
       end of the object name. Appending a wildcard to the bucket name is
       unsupported.
   :param source_objects: A list of source name of the objects to copy in the Google cloud
       storage bucket. (templated)
   :param destination_bucket: The destination Google Cloud Storage bucket
       where the object should be. If the destination_bucket is None, it defaults
       to source_bucket. (templated)
   :param destination_object: The destination name of the object in the
       destination Google Cloud Storage bucket. (templated)
       If a wildcard is supplied in the source_object argument, this is the
       prefix that will be prepended to the final destination objects' paths.
       Note that the source path's part before the wildcard will be removed;
       if it needs to be retained it should be appended to destination_object.
       For example, with prefix ``foo/*`` and destination_object ``blah/``, the
       file ``foo/baz`` will be copied to ``blah/baz``; to retain the prefix write
       the destination_object as e.g. ``blah/foo``, in which case the copied file
       will be named ``blah/foo/baz``.
       The same thing applies to source objects inside source_objects.
   :param move_object: When move object is True, the object is moved instead
       of copied to the new location. This is the equivalent of a mv command
       as opposed to a cp command.
   :param replace: Whether you want to replace existing destination files or not.
   :param delimiter: This is used to restrict the result to only the 'files' in a given 'folder'.
       If source_objects = ['foo/bah/'] and delimiter = '.avro', then only the 'files' in the
       folder 'foo/bah/' with '.avro' delimiter will be copied to the destination object.
   :param gcp_conn_id: (Optional) The connection ID used to connect to Google Cloud.
   :param delegate_to: The account to impersonate using domain-wide delegation of authority,
       if any. For this to work, the service account making the request must have
       domain-wide delegation enabled.
   :param last_modified_time: When specified, the objects will be copied or moved,
       only if they were modified after last_modified_time.
       If tzinfo has not been set, UTC will be assumed.
   :param maximum_modified_time: When specified, the objects will be copied or moved,
       only if they were modified before maximum_modified_time.
       If tzinfo has not been set, UTC will be assumed.
   :param is_older_than: When specified, the objects will be copied if they are older
       than the specified time in seconds.
   :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).
   :param source_object_required: Whether you want to raise an exception when the source object
       doesn't exist. It doesn't have any effect when the source objects are folders or patterns.
   :param exact_match: When specified, only exact match of the source object (filename) will be
       copied.

   :Example:

   The following Operator would copy a single file named
   ``sales/sales-2017/january.avro`` in the ``data`` bucket to the file named
   ``copied_sales/2017/january-backup.avro`` in the ``data_backup`` bucket ::

       copy_single_file = GCSToGCSOperator(
           task_id='copy_single_file',
           source_bucket='data',
           source_objects=['sales/sales-2017/january.avro'],
           destination_bucket='data_backup',
           destination_object='copied_sales/2017/january-backup.avro',
           gcp_conn_id=google_cloud_conn_id
       )

   The following Operator would copy all the Avro files from ``sales/sales-2017``
   folder (i.e. with names starting with that prefix) in ``data`` bucket to the
   ``copied_sales/2017`` folder in the ``data_backup`` bucket. ::

       copy_files = GCSToGCSOperator(
           task_id='copy_files',
           source_bucket='data',
           source_objects=['sales/sales-2017'],
           destination_bucket='data_backup',
           destination_object='copied_sales/2017/',
           delimiter='.avro'
           gcp_conn_id=google_cloud_conn_id
       )

       Or ::

       copy_files = GCSToGCSOperator(
           task_id='copy_files',
           source_bucket='data',
           source_object='sales/sales-2017/*.avro',
           destination_bucket='data_backup',
           destination_object='copied_sales/2017/',
           gcp_conn_id=google_cloud_conn_id
       )

   The following Operator would move all the Avro files from ``sales/sales-2017``
   folder (i.e. with names starting with that prefix) in ``data`` bucket to the
   same folder in the ``data_backup`` bucket, deleting the original files in the
   process. ::

       move_files = GCSToGCSOperator(
           task_id='move_files',
           source_bucket='data',
           source_object='sales/sales-2017/*.avro',
           destination_bucket='data_backup',
           move_object=True,
           gcp_conn_id=google_cloud_conn_id
       )

   The following Operator would move all the Avro files from ``sales/sales-2019``
    and ``sales/sales-2020` folder in ``data`` bucket to the same folder in the
    ``data_backup`` bucket, deleting the original files in the process. ::

       move_files = GCSToGCSOperator(
           task_id='move_files',
           source_bucket='data',
           source_objects=['sales/sales-2019/*.avro', 'sales/sales-2020'],
           destination_bucket='data_backup',
           delimiter='.avro',
           move_object=True,
           gcp_conn_id=google_cloud_conn_id
       )


   .. py:attribute:: template_fields
      :annotation: :Sequence[str] = ['source_bucket', 'source_object', 'source_objects', 'destination_bucket', 'destination_object',...

      

   .. py:attribute:: ui_color
      :annotation: = #f0eee4

      

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

      This is the main method to derive when creating an operator.
      Context is the same dictionary used as when rendering jinja templates.

      Refer to get_template_context for more context.



