Storage Docker CLI Client
The Storage API Docker command line interface (CLI) client is a portable command line client which provides a simple implementation of Storage API. It runs on any platform which has Docker installed.
Currently, the client implements
- functions for exporting and importing tables;
- functions for creating and deleting buckets; and additionally,
- the project backup feature.
The client source is available in our Github repository. The client docker image is available in the Quay repository.
Running in Docker
Section titled “Running in Docker”To print available commands:
docker run quay.io/keboola/storage-api-cli:latestThe latest image tag always refers to the latest tagged version.
Running Phar
Section titled “Running Phar”PHAR (PHP Archive) is now deprecated, but there are still some older versions available. See the repository documentation.
Example --- Creating a Table
Section titled “Example --- Creating a Table”To create a new table in Storage, use the create-table command. Provide the name of an
existing bucket, the name of the new table and a CSV file with the table’s contents.
To create thenew-table table in the in.c-main bucket, use
docker run --volume=$("pwd"):/data quay.io/keboola/storage-api-cli:latest create-table in.c-main new-table /data/new-table.csv --token=storage_tokenor on Windows:
docker run --volume=C:\Users\name\some-dir:/data quay.io/keboola/storage-api-cli:latest create-table in.c-main new-table /data/new-table.csv --token=storage_tokenor when using other then default US region, you need to provide the Storage API address:
docker run --volume=$("pwd"):/data quay.io/keboola/storage-api-cli:latest create-table in.c-main new-table /data/new-table.csv --token=storage_token --url="https://connection.eu-central-1.keboola.com/"Any of the above commands will import the contents of new-table.csv in the current directory into the newly
created table. You should see an output similar to this one:
Authorized as: ondrej.popelka@keboola.com (Odinuv Sandbox)Bucket found okTable create startTable create endTable id: in.c-main.new-tablePlease note that the Docker container can only access folders within the container, so you need to mount a local folder.
In the example above, the local folder $("pwd") (replaced by the absolute path at runtime) is mounted as /data into the container.
The table is then accessible in this folder. The same approach applies to all other commands working with local files.
Example --- Importing Data
Section titled “Example --- Importing Data”If you only want to import new data into the table, use the write-table command and provide
the ID (bucketName.tableName) of an existing table.
To import data into the new-table table in the in.c-main bucket, use
docker run --volume=$("pwd"):/data quay.io/keboola/storage-api-cli:latest write-table in.c-main.new-table /data/new-data.csv --token=storage_token --incrementalThe above command will import the contents of the new-data.csv file into the existing table. If the
--incremental parameter is supplied, the table contents will be appended. If the parameter is not
supplied, the table contents will be overwritten. You should see an output similar to this one:
Authorized as: ondrej.popelka@keboola.com (Tutorial)Table found okImport startImport done in 17 secs.
Results:transaction:warnings:importedColumns: - id - secondColtotalRowsCount: 8totalDataSizeBytes: 4096Example --- Exporting Data
Section titled “Example --- Exporting Data”If you want to export a table from Storage, use the export-table command. Provide
the ID (bucketName.tableName) of an existing table.
To export data from the old-table table in the in.c-main bucket, use
docker run --volume=$("pwd"):/data quay.io/keboola/storage-api-cli:latest export-table in.c-main.old-table /data/old-data.csv --token=storage_tokenThe above command will export the table from Storage and save it as old-data.csv in
the current directory. You should see an output similar to this one:
Authorized as: ondrej.popelka@keboola.com (Tutorial)Table found okExport done in 17 secs.