The cockroach nodelocal upload command uploads a file to the external IO directory on a node's (the gateway node, by default) local file system.

This command takes in a source file to upload and a destination filename. It will then use a SQL connection to upload the file to the node's local file system, at externalIODir/destination/filename.

Note:

The source file is only uploaded to one node, not all of the nodes.

Note:

New in v20.2: CockroachDB now supports uploading files to a user-scoped file storage using a SQL connection. We recommend using userfile instead of nodelocal, as it is user-scoped and more secure.

Required privileges

Only members of the admin role can run cockroach nodelocal upload. By default, the root user belongs to the admin role.

Considerations

The --external-io flag on the node you're uploading to cannot be set to disabled.

Synopsis

Upload a file:

$ cockroach nodelocal upload <location/of/file> <destination/of/file> [flags]

View help:

$ cockroach nodelocal upload --help

Flags

Flag Description
--certs-dir The path to the certificate directory containing the CA and client certificates and client key.

Env Variable: COCKROACH_CERTS_DIR
Default: ${HOME}/.cockroach-certs/
--echo-sql Reveal the SQL statements sent implicitly by the command-line utility.
--host The server host and port number to connect to. This can be the address of any node in the cluster.

Env Variable: COCKROACH_HOST
Default: localhost:26257
--insecure Use an insecure connection.

Env Variable: COCKROACH_INSECURE
Default: false
--url A connection URL to use instead of the other arguments.

Env Variable: COCKROACH_URL
Default: no URL
--user
-u
The SQL user that will own the client session.

Env Variable: COCKROACH_USER
Default: root

Examples

Upload a file

To upload a file to the default node (i.e., the gateway node):

copy
icon/buttons/copy
$ cockroach nodelocal upload ./grants.csv test/grants.csv --certs-dir=certs
successfully uploaded to nodelocal://1/test/grants.csv

Then, you can use the file to IMPORT or IMPORT INTO data.

Upload a file to a specific node

To upload a file to a specific node (e.g., node 2), use the --host flag:

copy
icon/buttons/copy
$ cockroach nodelocal upload ./grants.csv grants.csv --host=localhost:26259 --insecure
successfully uploaded to nodelocal://2/grants.csv

Or, use the --url flag:

copy
icon/buttons/copy
$ cockroach nodelocal upload ./grants.csv grants.csv --url=postgresql://root@localhost:26258?sslmode=disable --insecure
successfully uploaded to nodelocal://3/grants.csv

Then, you can use the file to IMPORT or IMPORT INTO data.

See also



Yes No