NAME

gcloud transfer jobs create - create a Transfer Service transfer job

SYNOPSIS

gcloud transfer jobs create SOURCE DESTINATION [--name=NAME --description=DESCRIPTION --source-creds-file=SOURCE_CREDS_FILE --source-agent-pool=SOURCE_AGENT_POOL --destination-agent-pool=DESTINATION_AGENT_POOL --intermediate-storage-path=INTERMEDIATE_STORAGE_PATH --manifest-file=MANIFEST_FILE] [--event-stream-name=EVENT_STREAM_NAME --event-stream-starts=EVENT_STREAM_STARTS --event-stream-expires=EVENT_STREAM_EXPIRES] [--do-not-run --schedule-starts=SCHEDULE_STARTS --schedule-repeats-every=SCHEDULE_REPEATS_EVERY --schedule-repeats-until=SCHEDULE_REPEATS_UNTIL] [--include-prefixes=[INCLUDED_PREFIXES,...] --exclude-prefixes=[EXCLUDED_PREFIXES,...] --include-modified-before-absolute=INCLUDE_MODIFIED_BEFORE_ABSOLUTE --include-modified-after-absolute=INCLUDE_MODIFIED_AFTER_ABSOLUTE --include-modified-before-relative=INCLUDE_MODIFIED_BEFORE_RELATIVE --include-modified-after-relative=INCLUDE_MODIFIED_AFTER_RELATIVE] [--overwrite-when=OVERWRITE_WHEN --delete-from=DELETE_FROM --preserve-metadata=[METADATA_FIELDS,...] --custom-storage-class=CUSTOM_STORAGE_CLASS] [--notification-pubsub-topic=NOTIFICATION_PUBSUB_TOPIC --notification-event-types=[EVENT_TYPES,...] --notification-payload-format=NOTIFICATION_PAYLOAD_FORMAT] [--[no-]enable-posix-transfer-logs --log-actions=[LOG_ACTIONS,...] --log-action-states=[LOG_ACTION_STATES,...]] [--source-endpoint=SOURCE_ENDPOINT --source-signing-region=SOURCE_SIGNING_REGION --source-auth-method=SOURCE_AUTH_METHOD --source-list-api=SOURCE_LIST_API --source-network-protocol=SOURCE_NETWORK_PROTOCOL --source-request-model=SOURCE_REQUEST_MODEL] [--no-async] [GCLOUD_WIDE_FLAG ...]

DESCRIPTION

Create a Transfer Service transfer job, allowing you to transfer data to Google Cloud Storage on a one-time or recurring basis.

EXAMPLES

To create a one-time, immediate transfer job to move data from Google Cloud Storage bucket "foo" into the "baz" folder in Cloud Storage bucket "bar", run:

$ gcloud transfer jobs create gs://foo gs://bar/baz/

To create a transfer job to move data from an Amazon S3 bucket called "foo" to a Google Cloud Storage bucket named "bar" that runs every day with custom name "my-test-job", run:

$ gcloud transfer jobs create s3://foo gs://bar --name=my-test-job \ --source-creds-file=/examplefolder/creds.txt \ --schedule-repeats-every=1d

To create a one-time, immediate transfer job to move data between Google Cloud Storage buckets "foo" and "bar" with filters to include objects that start with prefixes "baz" and "qux"; and objects modified in the 24 hours before the transfer started, run:

$ gcloud transfer jobs create gs://foo gs://bar/ \ --include-prefixes=baz,qux --include-modified-after-relative=1d

To create a one-time, immediate transfer job to move data from a directory with absolute path "/foo/bar/" in the filesystem associated with agent pool "my-pool" into Google Cloud Storage bucket "example-bucket", run:

$ gcloud transfer jobs create posix:///foo/bar/ \ gs://example-bucket --source-agent-pool=my-pool

POSITIONAL ARGUMENTS

SOURCE

The source of your data. Available sources and formatting information:

Public clouds -

[Google Cloud Storage] gs://example-bucket/example-folder/

[Amazon S3] s3://examplebucket/example-folder

[Azure Blob Storage or Data Lake Storage] http://examplestorageaccount.blob.core.windows.net/examplecontainer/examplefolder

POSIX filesystem - Specify the posix:// scheme followed by the absolute path to the desired directory, starting from the root of the host machine (denoted by a leading slash). For example:

posix:///path/directory/

A file transfer agent must be installed on the POSIX filesystem, and you need an agent pool flag on this jobs command to activate the agent.

Publicly-accessible objects - Specify the URL of a TSV file containing a list of URLs of publicly-accessible objects. For example:

http://example.com/tsvfile

DESTINATION

The destination of your transferred data. Available destinations and formatting information:

Google Cloud Storage - Specify the gs:// scheme; name of the bucket; and, if transferring to a folder, the path to the folder. For example:

gs://example-bucket/example-folder/

POSIX filesystem - Specify the posix:// scheme followed by the absolute path to the desired directory, starting from the root of the host machine (denoted by a leading slash). For example:

posix:///path/directory/

A file transfer agent must be installed on the POSIX filesystem, and you need an agent pool flag on this jobs command to activate the agent.

FLAGS

JOB INFORMATION
--name=NAME

A unique identifier for the job. Referring to your source and destination is recommended. If left blank, the name is auto-generated upon submission of the job.

--description=DESCRIPTION

An optional description to help identify the job using details that don't fit in its name.

--source-creds-file=SOURCE_CREDS_FILE

Path to a local file on your machine that includes credentials for an Amazon S3 or Azure Blob Storage source (not required for Google Cloud Storage sources). If not specified for an S3 source, gcloud will check your system for an AWS config file. However, this flag must be specified to use AWS's "role_arn" auth service. For formatting, see:

S3: https://cloud.google.com/storage-transfer/docs/reference/rest/v1/TransferSpec#AwsAccessKey Note: Be sure to put quotations around the JSON value strings.

Azure: http://cloud/storage-transfer/docs/reference/rest/v1/TransferSpec#AzureCredentials

--source-agent-pool=SOURCE_AGENT_POOL

If using a POSIX filesystem source, specify the ID of the agent pool associated with source filesystem.

--destination-agent-pool=DESTINATION_AGENT_POOL

If using a POSIX filesystem destination, specify the ID of the agent pool associated with destination filesystem.

--intermediate-storage-path=INTERMEDIATE_STORAGE_PATH

If transferring between filesystems, specify the path to a folder in a Google Cloud Storage bucket (gs://example-bucket/example-folder) to use as intermediary storage. Recommended: Use an empty folder reserved for this transfer job to ensure transferred data doesn't interact with any of your existing Cloud Storage data.

--manifest-file=MANIFEST_FILE

Path to a .csv file in a Google Cloud Storage bucket containing a list of files to transfer from your source. E.g., gs://mybucket/manifest.csv. For manifest file formatting, see https://cloud.google.com/storage-transfer/docs/manifest.

EVENT STREAM

Configure an event stream to transfer data whenever it is added or changed at your source, enabling you to act on the data in near real time. This event-driven transfer execution mode is available for transfers from Google Cloud Storage and Amazon S3. For formatting information, see https://cloud.google.com/sdk/gcloud/reference/topic/datetimes.

--event-stream-name=EVENT_STREAM_NAME

Specify an event stream that Storage Transfer Service can use to listen for when objects are created or updated. For Google Cloud Storage sources, specify a Cloud Pub/Sub subscription, using format "projects/yourproject/subscriptions/yoursubscription". For Amazon S3 sources, specify the Amazon Resource Name (ARN) of an Amazon Simple Queue Service (SQS) queue using format "arn:aws:sqs:region:account_id:queue_name".

--event-stream-starts=EVENT_STREAM_STARTS

Set when to start listening for events UTC using the %Y-%m-%dT%H:%M:%S%z datetime format (e.g., 2020-04-12T06:42:12+04:00). If not set, the job will start running and listening for events upon the successful submission of the create job command.

--event-stream-expires=EVENT_STREAM_EXPIRES

Set when to stop listening for events UTC using the %Y-%m-%dT%H:%M:%S%z datetime format (e.g., 2020-04-12T06:42:12+04:00). If not set, the job will continue running and listening for events indefinitely.

SCHEDULE

A job's schedule determines when and how often the job will run. For formatting information, see https://cloud.google.com/sdk/gcloud/reference/topic/datetimes.

--do-not-run

Disable default Transfer Service behavior of running job upon creation if no schedule is set. If this flag is specified, the job won't run until an operation is manually started or a schedule is added.

--schedule-starts=SCHEDULE_STARTS

Set when the job will start using the %Y-%m-%dT%H:%M:%S%z datetime format (e.g., 2020-04-12T06:42:12+04:00). If not set, the job will run upon the successful submission of the create job command unless the --do-not-run flag is included.

--schedule-repeats-every=SCHEDULE_REPEATS_EVERY

Set the frequency of the job using the absolute duration format (e.g., 1 month is p1m; 1 hour 30 minutes is 1h30m). If not set, the job will run once.

--schedule-repeats-until=SCHEDULE_REPEATS_UNTIL

Set when the job will stop recurring using the %Y-%m-%dT%H:%M:%S%z datetime format (e.g., 2020-04-12T06:42:12+04:00). If specified, you must also include a value for the --schedule-repeats-every flag. If not specified, the job will continue to repeat as specified in its repeat-every field unless the job is manually disabled or you add this field later.

OBJECT CONDITIONS

A set of conditions to determine which objects are transferred. For time-based object condition formatting tips, see https://cloud.google.com/sdk/gcloud/reference/topic/datetimes. Note: If you specify multiple conditions, objects must have at least one of the specified 'include' prefixes and all of the specified time conditions. If an object has an 'exclude' prefix, it will be excluded even if it matches other conditions.

--include-prefixes=[INCLUDED_PREFIXES,...]

Include only objects that start with the specified prefix(es). Separate multiple prefixes with commas, omitting spaces after the commas (e.g., --include-prefixes=foo,bar).

--exclude-prefixes=[EXCLUDED_PREFIXES,...]

Exclude any objects that start with the prefix(es) entered. Separate multiple prefixes with commas, omitting spaces after the commas (e.g., --exclude-prefixes=foo,bar).

--include-modified-before-absolute=INCLUDE_MODIFIED_BEFORE_ABSOLUTE

Include objects last modified before an absolute date/time. Ex. by specifying '2020-01-01', the transfer would include objects last modified before January 1, 2020. Use the %Y-%m-%dT%H:%M:%S%z datetime format.

--include-modified-after-absolute=INCLUDE_MODIFIED_AFTER_ABSOLUTE

Include objects last modified after an absolute date/time. Ex. by specifying '2020-01-01', the transfer would include objects last modified after January 1, 2020. Use the %Y-%m-%dT%H:%M:%S%z datetime format.

--include-modified-before-relative=INCLUDE_MODIFIED_BEFORE_RELATIVE

Include objects that were modified before a relative date/time in the past. Ex. by specifying a duration of '10d', the transfer would include objects last modified more than 10 days before its start time. Use the absolute duration format (ex. 1m for 1 month; 1h30m for 1 hour 30 minutes).

--include-modified-after-relative=INCLUDE_MODIFIED_AFTER_RELATIVE

Include objects that were modified after a relative date/time in the past. Ex. by specifying a duration of '10d', the transfer would include objects last modified less than 10 days before its start time. Use the absolute duration format (ex. 1m for 1 month; 1h30m for 1 hour 30 minutes).

TRANSFER OPTIONS
--overwrite-when=OVERWRITE_WHEN

Determine when destination objects are overwritten by source objects. Options include:

  • 'different' - Overwrites files with the same name if the contents are different (e.g., if etags or checksums don't match)

  • 'always' - Overwrite destination file whenever source file has the same name -- even if they're identical

  • 'never' - Never overwrite destination file when source file has the same name

OVERWRITE_WHEN must be one of: always, different, never.

--delete-from=DELETE_FROM

By default, transfer jobs won't delete any data from your source or destination. These options enable you to delete data if needed for your use case. Options include:

  • 'destination-if-unique' - Delete files from destination if they're not also at source. Use to sync destination to source (i.e., make destination match source exactly)

  • 'source-after-transfer' - Delete files from source after they're transferred

DELETE_FROM must be one of: destination-if-unique, source-after-transfer.

--preserve-metadata=[METADATA_FIELDS,...]

Specify object metadata values that can optionally be preserved. Example: --preserve-metadata=storage-class,uid

For more info, see: https://cloud.google.com/storage-transfer/docs/metadata-preservation.

METADATA_FIELDS must be one of: acl, gid, kms-key, mode, storage-class, symlink, temporary-hold, uid.

--custom-storage-class=CUSTOM_STORAGE_CLASS

Specifies the storage class to set on objects being transferred to Cloud Storage buckets. If unspecified, the objects' storage class is set to the destination bucket default. Valid values are:

Custom storage class settings are ignored if the destination bucket is Autoclass-enabled https://cloud.google.com/storage/docs/autoclass. Objects transferred into Autoclass-enabled buckets are initially set to the STANDARD storage class.

NOTIFICATION CONFIG

A configuration for receiving notifications oftransfer operation status changes via Cloud Pub/Sub.

--notification-pubsub-topic=NOTIFICATION_PUBSUB_TOPIC

Pub/Sub topic used for notifications.

--notification-event-types=[EVENT_TYPES,...]

Define which change of transfer operation status will trigger Pub/Sub notifications. Choices include 'success', 'failed', 'aborted'. To trigger notifications for all three status changes, you can leave this flag unspecified as long as you've specified a topic for the --notification-pubsub-topic flag. EVENT_TYPES must be one of: success, failed, aborted.

--notification-payload-format=NOTIFICATION_PAYLOAD_FORMAT

If 'none', no transfer operation details are included with notifications. If 'json', a json representation of the relevant transfer operation is included in notification messages (e.g., to see errors after an operation fails). NOTIFICATION_PAYLOAD_FORMAT must be one of: json, none.

LOGGING CONFIG

Configure which transfer actions and action states are reported when logs are generated for this job. Logs can be viewed by running the following command: gcloud logging read "resource.type=storage_transfer_job"

--[no-]enable-posix-transfer-logs

Sets whether to generate logs for transfers with a POSIX filesystem source. This setting will later be merged with other log configurations. Use --enable-posix-transfer-logs to enable and --no-enable-posix-transfer-logs to disable.

--log-actions=[LOG_ACTIONS,...]

Define the transfer operation actions to report in logs. Separate multiple actions with commas, omitting spaces after the commas (e.g., --log-actions=find,copy). LOG_ACTIONS must be one of: copy, delete, find.

--log-action-states=[LOG_ACTION_STATES,...]

The states in which the actions specified in --log-actions are logged. Separate multiple states with a comma, omitting the space after the comma (e.g., --log-action-states=succeeded,failed). LOG_ACTION_STATES must be one of: failed, succeeded.

ADDITIONAL OPTIONS
--source-endpoint=SOURCE_ENDPOINT

For transfers from S3-compatible sources, specify your storage system's endpoint. Check with your provider for formatting (ex. s3.us-east-1.amazonaws.com for Amazon S3).

--source-signing-region=SOURCE_SIGNING_REGION

For transfers from S3-compatible sources, specify a region for signing requests. You can leave this unspecified if your storage provider doesn't require a signing region.

--source-auth-method=SOURCE_AUTH_METHOD

For transfers from S3-compatible sources, choose a process for adding authentication information to S3 API requests. Refer to AWS's SigV4 https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html and SigV2 https://docs.aws.amazon.com/general/latest/gr/signature-version-2.html documentation for more information. SOURCE_AUTH_METHOD must be one of: AWS_SIGNATURE_V2, AWS_SIGNATURE_V4.

--source-list-api=SOURCE_LIST_API

For transfers from S3-compatible sources, choose the version of the S3 listing API for returning objects from the bucket. Refer to AWS's ListObjectsV2 https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html and ListObjects https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html documentation for more information. SOURCE_LIST_API must be one of: LIST_OBJECTS, LIST_OBJECTS_V2.

--source-network-protocol=SOURCE_NETWORK_PROTOCOL

For transfers from S3-compatible sources, choose the network protocol agents should use for this job. SOURCE_NETWORK_PROTOCOL must be one of: HTTP, HTTPS.

--source-request-model=SOURCE_REQUEST_MODEL

For transfers from S3-compatible sources, choose which addressing style to use. Determines if the bucket name is in the hostname or part of the URL. For example, https://s3.region.amazonaws.com/bucket-name/key-name for path style and Ex. https://bucket-name.s3.region.amazonaws.com/key-name for virtual-hosted style. SOURCE_REQUEST_MODEL must be one of: PATH_STYLE, VIRTUAL_HOSTED_STYLE.

EXECUTION OPTIONS
--no-async

For jobs set to run upon creation, this flag blocks other tasks in your terminal until the job's initial, immediate transfer operation has completed. If not included, tasks will run asynchronously.

GCLOUD WIDE FLAGS

These flags are available to all commands: --access-token-file, --account, --billing-project, --configuration, --flags-file, --flatten, --format, --help, --impersonate-service-account, --log-http, --project, --quiet, --trace-token, --user-output-enabled, --verbosity.

Run $ gcloud help for details.

NOTES

This variant is also available:

$ gcloud alpha transfer jobs create