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

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

.. autoapi-nested-parse::

   This module contains SFTP to Google Cloud Storage operator.



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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.transfers.sftp_to_gcs.SFTPToGCSOperator




Attributes
~~~~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.transfers.sftp_to_gcs.WILDCARD


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

   

.. py:class:: SFTPToGCSOperator(*, source_path, destination_bucket, destination_path = None, gcp_conn_id = 'google_cloud_default', sftp_conn_id = 'ssh_default', delegate_to = None, mime_type = 'application/octet-stream', gzip = False, move_object = False, impersonation_chain = None, **kwargs)

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

   Transfer files to Google Cloud Storage from SFTP server.

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

   :param source_path: The sftp remote path. This is the specified file path
       for downloading the single file or multiple files from the SFTP server.
       You can use only one wildcard within your path. The wildcard can appear
       inside the path or at the end of the path.
   :param destination_bucket: The bucket to upload to.
   :param destination_path: The destination name of the object in the
       destination Google Cloud Storage bucket.
       If destination_path is not provided file/files will be placed in the
       main bucket path.
       If a wildcard is supplied in the destination_path argument, this is the
       prefix that will be prepended to the final destination objects' paths.
   :param gcp_conn_id: (Optional) The connection ID used to connect to Google Cloud.
   :param sftp_conn_id: The sftp connection id. The name or identifier for
       establishing a connection to the SFTP server.
   :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 mime_type: The mime-type string
   :param gzip: Allows for file to be compressed and uploaded as gzip
   :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 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] = ['source_path', 'destination_path', 'destination_bucket', 'impersonation_chain']

      

   .. 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.



