snow stage copy¶
Copies all files from target path to target directory. This works for both uploading to and downloading files from the stage.
Syntax¶
snow stage copy
<source_path>
<destination_path>
--overwrite / --no-overwrite
--parallel <parallel>
--recursive / --no-recursive
--auto-compress / --no-auto-compress
--connection <connection>
--account <account>
--user <user>
--password <password>
--authenticator <authenticator>
--private-key-path <private_key_path>
--token-file-path <token_file_path>
--database <database>
--schema <schema>
--role <role>
--warehouse <warehouse>
--temporary-connection
--mfa-passcode <mfa_passcode>
--enable-diag
--diag-log-path <diag_log_path>
--diag-allowlist-path <diag_allowlist_path>
--format <format>
--verbose
--debug
--silent
Arguments¶
source_path
Source path for copy operation. Can be either stage path or local. You can use a glob pattern for local files but the pattern has to be enclosed in quotes.
destination_path
Target directory path for copy operation. Should be stage if source is local or local if source is stage.
Options¶
--overwrite / --no-overwrite
Overwrites existing files in the target path.
--parallel INTEGER
Number of parallel threads to use when uploading files.
--recursive / --no-recursive
Copy files recursively with directory structure.
--auto-compress / --no-auto-compress
Specifies whether Snowflake uses gzip to compress files during upload. Ignored when downloading.
--connection, -c, --environment TEXT
Name of the connection, as defined in your
config.toml
. Default:default
.--account, --accountname TEXT
Name assigned to your Snowflake account. Overrides the value specified for the connection.
--user, --username TEXT
Username to connect to Snowflake. Overrides the value specified for the connection.
--password TEXT
Snowflake password. Overrides the value specified for the connection.
--authenticator TEXT
Snowflake authenticator. Overrides the value specified for the connection.
--private-key-path TEXT
Snowflake private key path. Overrides the value specified for the connection.
--token-file-path TEXT
Path to file with an OAuth token that should be used when connecting to Snowflake.
--database, --dbname TEXT
Database to use. Overrides the value specified for the connection.
--schema, --schemaname TEXT
Database schema to use. Overrides the value specified for the connection.
--role, --rolename TEXT
Role to use. Overrides the value specified for the connection.
--warehouse TEXT
Warehouse to use. Overrides the value specified for the connection.
--temporary-connection, -x
Uses connection defined with command line parameters, instead of one defined in config.
--mfa-passcode TEXT
Token to use for multi-factor authentication (MFA).
--enable-diag
Run python connector diagnostic test.
--diag-log-path TEXT
Diagnostic report path.
--diag-allowlist-path TEXT
Diagnostic report path to optional allowlist.
--format [TABLE|JSON]
Specifies the output format.
--verbose, -v
Displays log entries for log levels
info
and higher.--debug
Displays log entries for log levels
debug
and higher; debug logs contains additional information.--silent
Turns off intermediate output to console.
--help
Displays the help text for this command.
Usage notes¶
One of
SOURCE_PATH
orDESTINATION_PATH
must be a local directory, while the other should be a directory in the Snowflake stage. The stage path must start with “@”. For example:snow stage copy @my_stage dir/
- copies files frommy_stage
stage to the localdir
directory.snow stage copy dir/ @my_stage
- copies files from the localdir
directory tomy_stage
.
You can specify multiple files matching a regular expression by using a glob pattern for the
source_path
argument. You must enclose the glob pattern in single or double quotes.
Examples¶
To copy files from the local machine to a stage, use a command similar to the following:
snow stage copy local_example_app @example_app_stage/app
put file:///.../local_example_app/* @example_app_stage/app4 auto_compress=false parallel=4 overwrite=False +-------------------------------------------------------------------------------------- | source | target | source_size | target_size | source_compression... |------------------+------------------+-------------+-------------+-------------------- | environment.yml | environment.yml | 62 | 0 | NONE ... | snowflake.yml | snowflake.yml | 252 | 0 | NONE ... | streamlit_app.py | streamlit_app.py | 109 | 0 | NONE ... +--------------------------------------------------------------------------------------
To download files from a stage to a local directory, use a command similar to the following:
mkdir local_app_backup snow stage copy @example_app_stage/app local_app_backup
get @example_app_stage/app file:///.../local_app_backup/ parallel=4 +------------------------------------------------+ | file | size | status | message | |------------------+------+------------+---------| | environment.yml | 62 | DOWNLOADED | | | snowflake.yml | 252 | DOWNLOADED | | | streamlit_app.py | 109 | DOWNLOADED | | +------------------------------------------------+
The following example copies all
.txt
files in a directory to a stage.snow stage copy "testdir/*.txt" @TEST_STAGE_3
put file:///.../testdir/*.txt @TEST_STAGE_3 auto_compress=false parallel=4 overwrite=False +------------------------------------------------------------------------------------------------------------+ | source | target | source_size | target_size | source_compression | target_compression | status | message | |--------+--------+-------------+-------------+--------------------+--------------------+----------+---------| | b1.txt | b1.txt | 3 | 16 | NONE | NONE | UPLOADED | | | b2.txt | b2.txt | 3 | 16 | NONE | NONE | UPLOADED | | +------------------------------------------------------------------------------------------------------------+