Data Transfer using GoCommands¶
GoCommands provides a range of commands designed to efficiently and conveniently transfer large datasets between your local machine and the Data Store.
Download Data from the Data Store¶
-
Download a collection to a specific local path:
gocmd get --progress -f -K --icat /iplant/home/myUser/mydir /local/dir/
This command downloads the collection
/iplant/home/myUser/mydir
and its contents to/local/dir/
. A new directory namedmydir
will be created under/local/dir/
, resulting in/local/dir/mydir
containing all the downloaded files and subdirectories.- The
--progress
flag shows progress bars, providing visual feedback during file transfers. - The
-f
flag forces overwriting of existing local files without confirmation. - The
-K
flag ensures file integrity by verifying checksums after the download. - The
--icat
flag uses iCAT as a transfer broker, bypassing direct resource server access to prevent potential transfer failures.
- The
-
Sync a collection in the Data Store with a local directory:
gocmd get --progress -f -K --icat --diff --delete /iplant/home/myUser/mydir /local/dir/
This command downloads the collection
/iplant/home/myUser/mydir
and its contents to/local/dir/
, syncing any new updates made to the original data.- The
--diff
flag transfers only new or modified files, comparing sizes and checksums. - The
--delete
flag removes files from the destination that don't exist in the source.
This command is equivalent to:
gocmd sync --progress -K --icat --delete i:/iplant/home/myUser/mydir /local/dir/
- The
-
Download a collection using multiple parallel transfers:
gocmd get --progress -f -K --icat --thread_num 10 /iplant/home/myUser/mydir /local/dir/
This command downloads the collection
/iplant/home/myUser/mydir
and its contents to/local/dir/
using 10 parallel transfer threads. Utilizing more transfer threads can maximize I/O and network bandwidth, often speeding up the transfer process significantly.- The
--thread_num
flag sets the maximum number of threads to use for the transfer.
Thread Count Considerations
- Higher thread counts require more CPU and memory. Excessive threads may overload your system, causing performance issues. For example, Discovery Environment (DE) apps limit transfer threads to 5 due to RAM constraints.
- The Data Store limits concurrent connections, potentially restricting high thread counts.
Using GoCommands on the University of Arizona Campus Network?
When using GoCommands on the UA Campus network, include the
--icat
flag for stable large file transfers. - The
Upload Data to the Data Store¶
-
Upload a local directory to a specific path in the Data Store:
gocmd put --progress -f -K --icat /local/dir/ /iplant/home/myUser/mydir/
This command uploads the local directory
/local/dir/
and its contents to the Data Store at/iplant/home/myUser/mydir/
. A new directory nameddir
will be created under/iplant/home/myUser/mydir/
, resulting in/iplant/home/myUser/mydir/dir
containing all the uploaded files and subdirectories.- The
--progress
flag shows progress bars during file transfers. - The
-f
flag forces overwriting of existing files in the Data Store without confirmation. - The
-K
flag ensures file integrity by verifying checksums after upload. - The
--icat
flag uses iCAT as a transfer broker, bypassing direct resource server access to prevent potential transfer failures.
- The
-
Sync a local directory with a collection in the Data Store:
gocmd put --progress -f -K --icat --diff --delete /local/dir/ /iplant/home/myUser/mydir/
This command uploads the local directory
/local/dir/
to/iplant/home/myUser/mydir/
in the Data Store, syncing any new or updated files. It also removes extra files in the destination collection that do not exist locally.- The
--diff
flag transfers only new or modified files, comparing sizes and checksums. - The
--delete
flag removes files from the destination that don't exist in the source.
This command is equivalent to:
gocmd sync --progress -K --icat --delete /local/dir/ i:/iplant/home/myUser/mydir/
- The
-
Upload a local directory using multiple parallel transfers:
gocmd put --progress -f -K --icat --thread_num 10 /local/dir/ /iplant/home/myUser/mydir/
This command uploads the local directory
/local/dir/
and its contents to/iplant/home/myUser/mydir/
in the Data Store using 10 parallel transfer threads. This can significantly speed up the upload process by maximizing I/O and network bandwidth.- The
--thread_num
flag sets the maximum number of threads to use for the transfer.
Thread Count Considerations
- Higher thread counts require more CPU and memory. Excessive threads may overload your system, causing performance issues. For example, Discovery Environment (DE) apps limit transfer threads to 5 due to RAM constraints.
- The Data Store limits concurrent connections, potentially restricting high thread counts.
Using GoCommands on the University of Arizona Campus Network?
When using GoCommands on the UA Campus network, include the
--icat
flag for stable large file transfers. - The
-
Upload a local directory containing many small files:
gocmd bput --progress -K --icat --thread_num 10 /local/dir/ /iplant/home/myUser/mydir/
This command uploads the local directory
/local/dir/
containing numerous small files to/iplant/home/myUser/mydir/
in the Data Store. Using bundle transfer and parallel transfer can significantly speed up the transfer of many small files.This command is equivalent to:
gocmd sync --bulk_upload --progress -K --icat /local/dir/ i:/iplant/home/myUser/mydir/