aspera-cli 4.1.0 → 4.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +150 -69
- data/docs/README.erb.md +129 -48
- data/docs/test_env.conf +13 -4
- data/lib/aspera/aoc.rb +19 -22
- data/lib/aspera/cli/main.rb +19 -15
- data/lib/aspera/cli/plugins/aoc.rb +24 -38
- data/lib/aspera/cli/plugins/ats.rb +2 -2
- data/lib/aspera/cli/plugins/config.rb +111 -108
- data/lib/aspera/cli/plugins/faspex.rb +1 -1
- data/lib/aspera/cli/plugins/faspex5.rb +7 -24
- data/lib/aspera/cli/plugins/preview.rb +10 -1
- data/lib/aspera/cli/transfer_agent.rb +6 -5
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/cos_node.rb +33 -28
- data/lib/aspera/environment.rb +2 -2
- data/lib/aspera/fasp/installation.rb +68 -45
- data/lib/aspera/fasp/local.rb +75 -40
- data/lib/aspera/fasp/parameters.rb +3 -2
- data/lib/aspera/fasp/resume_policy.rb +13 -12
- data/lib/aspera/node.rb +13 -0
- data/lib/aspera/oauth.rb +12 -2
- data/lib/aspera/rest.rb +2 -11
- data/lib/aspera/secrets.rb +20 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1cc7508185a5c551f30a30e54a0cfa2d0ac7931a1bbb565bc7b15e98cca31479
|
4
|
+
data.tar.gz: ca9aae212a8411ddcfa4d1db4aa842fb273bf56fe247490b31037dcb0d628c94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 929bcc3dee9158eb60c810796ed8dc88cfd52d187abb47cb6733adb09971e67849ce1b0bf5cff7daf3dc1f7af327490b574ab8351c94435c6ac83f0674423cd8
|
7
|
+
data.tar.gz: 5c3cba44333dfca675a3cc3b0b77bb6d16654f322b580c936c911551dc85bcc55b16b01649faac2a5ae1f0805b3a2a83315c648ea6c1fb7987c569dc431887b4
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
[comment1]: # (Do not edit this README.md, edit docs/README.erb.md, for details, read docs/README.md)
|
2
2
|
# `ascli` : Command Line Interface for IBM Aspera products
|
3
3
|
|
4
|
-
Version : 4.
|
4
|
+
Version : 4.2.0
|
5
5
|
|
6
6
|
_Laurent/2016-2021_
|
7
7
|
|
@@ -81,7 +81,7 @@ Once the gem is installed, `ascli` shall be accessible:
|
|
81
81
|
|
82
82
|
```
|
83
83
|
$ ascli --version
|
84
|
-
4.
|
84
|
+
4.2.0
|
85
85
|
```
|
86
86
|
|
87
87
|
## First use
|
@@ -90,9 +90,10 @@ Once installation is completed, you can proceed to the first use with a demo ser
|
|
90
90
|
|
91
91
|
If you want to test with Aspera on Cloud, jump to section: [Wizard](#aocwizard)
|
92
92
|
|
93
|
-
|
93
|
+
To test with Aspera demo transfer server, setup the environment and then test:
|
94
94
|
|
95
95
|
```
|
96
|
+
$ ascli config initdemo
|
96
97
|
$ ascli server browse /
|
97
98
|
:............:...........:......:........:...........................:.......................:
|
98
99
|
: zmode : zuid : zgid : size : mtime : name :
|
@@ -112,7 +113,7 @@ If you want to use `ascli` with another server, and in order to make further cal
|
|
112
113
|
* download a file
|
113
114
|
|
114
115
|
```
|
115
|
-
$ ascli config id myserver update --url=ssh://demo.asperasoft.com:33001 --username=asperaweb --password=
|
116
|
+
$ ascli config id myserver update --url=ssh://demo.asperasoft.com:33001 --username=asperaweb --password=_demo_pass_
|
116
117
|
updated: myserver
|
117
118
|
$ ascli config id default set server myserver
|
118
119
|
updated: default→server to myserver
|
@@ -146,18 +147,22 @@ Then, follow the section relative to the product you want to interact with ( Asp
|
|
146
147
|
|
147
148
|
# <a name="installation"></a>Installation
|
148
149
|
|
149
|
-
It is possible to install *either*
|
150
|
+
It is possible to install *either* directly on the host operating system (Linux, Windows, Macos) or as a docker container.
|
151
|
+
|
152
|
+
The direct installation is recommended and consists in installing:
|
150
153
|
|
151
154
|
* [Ruby](#ruby) version >= > 2.4
|
152
155
|
* [aspera-cli](#the_gem)
|
153
156
|
* [Aspera SDK (ascp)](#fasp_prot)
|
154
157
|
|
155
|
-
The following sections provide information on the installation.
|
158
|
+
The following sections provide information on the various installation methods.
|
156
159
|
|
157
160
|
An internet connection is required for the installation. If you dont have internet for the installation, refer to section [Installation without internet access](#offline_install).
|
158
161
|
|
159
162
|
## Docker container
|
160
163
|
|
164
|
+
Use this method only if you know what you do, else use the standard recommended method as described here above.
|
165
|
+
|
161
166
|
This method installs a docker image that contains: Ruby, ascli and the FASP sdk.
|
162
167
|
|
163
168
|
Ensure that you have Docker installed.
|
@@ -181,11 +186,12 @@ $ ./ascli install
|
|
181
186
|
|
182
187
|
Start using it !
|
183
188
|
|
184
|
-
Note that the tool is run in the container.
|
189
|
+
Note that the tool is run in the container, so transfers are also executed in the container, not calling host.
|
185
190
|
|
186
|
-
The wrapping script maps the container folder `/usr/src/app/config` to configuration folder `$HOME/.aspera/ascli
|
191
|
+
The wrapping script maps the container folder `/usr/src/app/config` to configuration folder `$HOME/.aspera/ascli` on host.
|
187
192
|
|
188
193
|
To transfer to/from the native host, you will need to map a volume in docker or use the config folder (already mapped).
|
194
|
+
To add local storage as a volume edit the script: ascli and add a `--volume` stanza.
|
189
195
|
|
190
196
|
## <a name="ruby"></a>Ruby
|
191
197
|
|
@@ -195,7 +201,7 @@ A ruby interpreter is required to run the tool or to use the gem and tool.
|
|
195
201
|
|
196
202
|
Ruby minimum version: > 2.4. Ruby version 3 is also supported.
|
197
203
|
|
198
|
-
*
|
204
|
+
*Ruby can be installed using any method* : rpm, yum, dnf, rvm, brew, windows installer, ... .
|
199
205
|
|
200
206
|
Refer to the following sections for a proposed method for specific operating systems.
|
201
207
|
|
@@ -773,7 +779,7 @@ $ ascli config id <option preset> set|delete|show|initialize|update
|
|
773
779
|
The command `update` allows the easy creation of [option preset](#lprt) by simply providing the options in their command line format, e.g. :
|
774
780
|
|
775
781
|
```
|
776
|
-
$ ascli config id demo_server update --url=ssh://demo.asperasoft.com:33001 --username=asperaweb --password=
|
782
|
+
$ ascli config id demo_server update --url=ssh://demo.asperasoft.com:33001 --username=asperaweb --password=_demo_pass_ --ts=@json:'{"precalculate_job_size":true}'
|
777
783
|
```
|
778
784
|
|
779
785
|
* This creates a [option preset](#lprt) `demo_server` with all provided options.
|
@@ -781,13 +787,13 @@ $ ascli config id demo_server update --url=ssh://demo.asperasoft.com:33001 --use
|
|
781
787
|
The command `set` allows setting individual options in a [option preset](#lprt).
|
782
788
|
|
783
789
|
```
|
784
|
-
$ ascli config id demo_server set password
|
790
|
+
$ ascli config id demo_server set password _demo_pass_
|
785
791
|
```
|
786
792
|
|
787
793
|
The command `initialize`, like `update` allows to set several parameters at once, but it deletes an existing configuration instead of updating it, and expects a _[Structured Value](#native)_.
|
788
794
|
|
789
795
|
```
|
790
|
-
$ ascli config id demo_server initialize @json:'{"url":"ssh://demo.asperasoft.com:33001","username":"asperaweb","password":"
|
796
|
+
$ ascli config id demo_server initialize @json:'{"url":"ssh://demo.asperasoft.com:33001","username":"asperaweb","password":"_demo_pass_","ts":{"precalculate_job_size":true}}'
|
791
797
|
```
|
792
798
|
|
793
799
|
A good practice is to not manually edit the configuration file and use modification commands instead.
|
@@ -824,11 +830,19 @@ Note that special plugin name: `config` can be associated with a preset that is
|
|
824
830
|
Operations on this preset are done using regular `config` operations:
|
825
831
|
|
826
832
|
```
|
827
|
-
$ ascli config id default set _plugin_name_
|
833
|
+
$ ascli config id default set _plugin_name_ _default_preset_for_plugin_
|
828
834
|
$ ascli config id default get _plugin_name_
|
829
|
-
"
|
835
|
+
"_default_preset_for_plugin_"
|
830
836
|
```
|
831
837
|
|
838
|
+
### <a name="lprtdef"></a>Special Plugin: config
|
839
|
+
|
840
|
+
Plugin `config` (not to be confused with Option preset config) is used to configure `ascli` but it also contains global options.
|
841
|
+
|
842
|
+
When `ascli` starts, it lookjs for the `default` Option preset and if there is a value for `config`, if so, it loads the option values for any plugin used.
|
843
|
+
|
844
|
+
If no global default is set by the user, the tool will use `global_common_defaults` when setting global parameters (e.g. `conf ascp use`)
|
845
|
+
|
832
846
|
### Format of file
|
833
847
|
|
834
848
|
The configuration file is a hash in a YAML file. Example:
|
@@ -844,7 +858,7 @@ cli_default:
|
|
844
858
|
demo_server:
|
845
859
|
url: ssh://demo.asperasoft.com:33001
|
846
860
|
username: asperaweb
|
847
|
-
password:
|
861
|
+
password: _demo_pass_
|
848
862
|
```
|
849
863
|
|
850
864
|
We can see here:
|
@@ -913,7 +927,6 @@ A [option preset](#lprt) value can be removed with `unset`:
|
|
913
927
|
$ ascli config id cli_default unset interactive
|
914
928
|
```
|
915
929
|
|
916
|
-
|
917
930
|
### Examples
|
918
931
|
|
919
932
|
For Faspex, Shares, Node (including ATS, Aspera Transfer Service), Console,
|
@@ -1033,21 +1046,42 @@ The `config` plugin also allows specification for the use of a local FASP client
|
|
1033
1046
|
|
1034
1047
|
```
|
1035
1048
|
$ ascli config ascp show
|
1036
|
-
/Users/laurent/
|
1049
|
+
/Users/laurent/.aspera/ascli/sdk/ascp
|
1050
|
+
$ ascli config ascp info
|
1051
|
+
+--------------------+-----------------------------------------------------------+
|
1052
|
+
| key | value |
|
1053
|
+
+--------------------+-----------------------------------------------------------+
|
1054
|
+
| ascp | /Users/laurent/.aspera/ascli/sdk/ascp |
|
1055
|
+
...
|
1037
1056
|
```
|
1038
1057
|
|
1039
1058
|
### Selection of local `ascp`
|
1040
1059
|
|
1060
|
+
By default, `ascli` uses any found local product with ascp, including SDK.
|
1061
|
+
|
1041
1062
|
To temporarily use an alternate ascp path use option `ascp_path` (`--ascp-path=`)
|
1042
1063
|
|
1043
|
-
|
1064
|
+
For a permanent change, the command `config ascp use` sets the same parameter for the global default.
|
1065
|
+
|
1066
|
+
Using a POSIX shell:
|
1044
1067
|
|
1045
1068
|
```
|
1046
1069
|
$ ascli config ascp use '/Users/laurent/Applications/Aspera CLI/bin/ascp'
|
1047
|
-
|
1070
|
+
ascp version: 4.0.0.182279
|
1071
|
+
Updated: global_common_defaults: ascp_path <- /Users/laurent/Applications/Aspera CLI/bin/ascp
|
1072
|
+
Saved to default global preset global_common_defaults
|
1048
1073
|
```
|
1049
1074
|
|
1050
|
-
|
1075
|
+
Windows:
|
1076
|
+
|
1077
|
+
```
|
1078
|
+
$ ascli config ascp use C:\Users\admin\.aspera\ascli\sdk\ascp.exe
|
1079
|
+
ascp version: 4.0.0.182279
|
1080
|
+
Updated: global_common_defaults: ascp_path <- C:\Users\admin\.aspera\ascli\sdk\ascp.exe
|
1081
|
+
Saved to default global preset global_common_defaults
|
1082
|
+
```
|
1083
|
+
|
1084
|
+
If the path has spaces, read section: [Shell and Command line parsing](#parsing).
|
1051
1085
|
|
1052
1086
|
### List locally installed Aspera Transfer products
|
1053
1087
|
|
@@ -1134,7 +1168,7 @@ will effectively push files to the related server from the agent node.
|
|
1134
1168
|
|
1135
1169
|
### <a name="direct"></a>Direct (local ascp using FASPManager API)
|
1136
1170
|
|
1137
|
-
By default
|
1171
|
+
By default `ascli` uses a local ascp, equivalent to specifying `--transfer=direct`.
|
1138
1172
|
`ascli` will detect locally installed Aspera products.
|
1139
1173
|
Refer to section [FASP](#client).
|
1140
1174
|
|
@@ -1144,17 +1178,33 @@ To specify a FASP proxy (only supported with the `direct` agent), set the approp
|
|
1144
1178
|
* `EX_http_proxy_url` (proxy for legacy http fallback)
|
1145
1179
|
* `EX_ascp_args`
|
1146
1180
|
|
1147
|
-
The `transfer-info`
|
1181
|
+
The `transfer-info` accepts the following optional parameters:
|
1182
|
+
|
1183
|
+
<table>
|
1184
|
+
<tr><th>Name</th><th>Type</th><th>Default</th><th>Feature</th><th>Description</th></tr>
|
1185
|
+
<tr><td>spawn_timeout_sec</td><td>Float</td><td>3</td><td>Multi session</td><td>Verification time that ascp is running</td></tr>
|
1186
|
+
<tr><td>spawn_delay_sec</td><td>Float</td><td>2</td><td>Multi session</td><td>Delay between startup of sessions</td></tr>
|
1187
|
+
<tr><td>wss</td><td>Bool</td><td>false</td><td>Web Socket Session</td><td>Enable use of web socket session in case it is available</td></tr>
|
1188
|
+
<tr><td>resume</td><td>Hash</td><td>nil</td><td>Resumer parameters</td><td>See below</td></tr>
|
1189
|
+
</table>
|
1190
|
+
|
1191
|
+
Resume parameters:
|
1148
1192
|
|
1149
1193
|
<table>
|
1150
|
-
<tr><th>Name</th><th>Default</th><th>Feature</th><th>Description</th></tr>
|
1151
|
-
<tr><td>iter_max</td
|
1152
|
-
<tr><td>sleep_initial</td><td>2</td><td>Resume</td><td>First Sleep before retry</td></tr>
|
1153
|
-
<tr><td>sleep_factor</td>
|
1154
|
-
<tr><td>sleep_max</td
|
1155
|
-
<tr><td>wss</td> <td>false</td><td>Web Socket Session</td><td>Enable use of web socket session in case it is available</td></tr>
|
1194
|
+
<tr><th>Name</th><th>Type</th><th>Default</th><th>Feature</th><th>Description</th></tr>
|
1195
|
+
<tr><td>iter_max</td><td>int</td><td>7</td><td>Resume</td><td>Max number of retry on error</td></tr>
|
1196
|
+
<tr><td>sleep_initial</td><td>int</td><td>2</td><td>Resume</td><td>First Sleep before retry</td></tr>
|
1197
|
+
<tr><td>sleep_factor</td><td>int</td><td>2</td><td>Resume</td><td>Multiplier of Sleep</td></tr>
|
1198
|
+
<tr><td>sleep_max</td><td>int</td><td>60</td><td>Resume</td><td>Maximum sleep</td></tr>
|
1156
1199
|
</table>
|
1157
1200
|
|
1201
|
+
Examples:
|
1202
|
+
|
1203
|
+
```
|
1204
|
+
$ ascli ... --transfer-info=@json:'{"wss":true,"resume":{"iter_max":10}}'
|
1205
|
+
$ ascli ... --transfer-info=@json:'{"spawn_delay_sec":2.5}'
|
1206
|
+
```
|
1207
|
+
|
1158
1208
|
### IBM Aspera Connect Client GUI
|
1159
1209
|
|
1160
1210
|
By specifying option: `--transfer=connect`, `ascli` will start transfers
|
@@ -1204,7 +1254,7 @@ is described in a _transfer-spec_ (Transfer Specification), such as:
|
|
1204
1254
|
|
1205
1255
|
`ascli` builds a default _transfer-spec_ internally, so it is not necessary to provide additional parameters on the command line for this transfer.
|
1206
1256
|
|
1207
|
-
If needed, it is possible to modify or add any of the supported _transfer-spec_ parameter using the `ts` option. The `ts` option accepts a [Structured Value](#native) containing one or several _transfer-spec_ parameters.
|
1257
|
+
If needed, it is possible to modify or add any of the supported _transfer-spec_ parameter using the `ts` option. The `ts` option accepts a [Structured Value](#native) containing one or several _transfer-spec_ parameters. Multiple `ts` options on command line are cummulative.
|
1208
1258
|
|
1209
1259
|
It is possible to specify ascp options when the `transfer` option is set to `direct` using the special [_transfer-spec_](#transferspec) parameter: `EX_ascp_args`. Example: `--ts=@json:'{"EX_ascp_args":["-l","100m"]}'`. This is espacially useful for ascp command line parameters not supported yet in the transfer spec.
|
1210
1260
|
|
@@ -1456,6 +1506,8 @@ A non complete list of commands used in unit tests:
|
|
1456
1506
|
```
|
1457
1507
|
ascli
|
1458
1508
|
ascli -h
|
1509
|
+
ascli aoc -N remind --username=my_aoc_user_email
|
1510
|
+
ascli aoc -N servers
|
1459
1511
|
ascli aoc admin analytics transfers --query=@json:'{"status":"completed","direction":"receive"}'
|
1460
1512
|
ascli aoc admin ats access_key --id=akibmcloud --secret=somesecret node browse /
|
1461
1513
|
ascli aoc admin ats access_key --id=akibmcloud delete
|
@@ -1494,7 +1546,6 @@ ascli aoc admin resource node --name=AOC_NODE1_NAME --secret=AOC_NODE1_SECRET v4
|
|
1494
1546
|
ascli aoc admin resource node --name=AOC_NODE1_NAME --secret=AOC_NODE1_SECRET v4 mkdir /folder1
|
1495
1547
|
ascli aoc admin resource workspace list
|
1496
1548
|
ascli aoc admin resource workspace_membership list --fields=ALL --query=@json:'{"page":1,"per_page":50,"embed":"member","inherited":false,"workspace_id":11363,"sort":"name"}'
|
1497
|
-
ascli aoc apiinfo
|
1498
1549
|
ascli aoc automation workflow --id="my_wf_id" action create --value=@json:'{"name":"toto"}' | tee action.info
|
1499
1550
|
ascli aoc automation workflow create --value=@json:'{"name":"test_workflow"}'
|
1500
1551
|
ascli aoc automation workflow delete --id="my_wf_id"
|
@@ -1531,7 +1582,6 @@ ascli aoc packages send --value=@json:'{"name":"Important files delivery","recip
|
|
1531
1582
|
ascli aoc packages send --workspace="my_aoc_shbx_ws" --value=@json:'{"name":"Important files delivery","recipients":["my_aoc_shbx_name"]}' testfile.bin
|
1532
1583
|
ascli aoc packages send -N --value=@json:'{"name":"Important files delivery"}' testfile.bin --link=my_aoc_publink_send_aoc_user --password=my_aoc_publink_send_use_pass
|
1533
1584
|
ascli aoc packages send -N --value=@json:'{"name":"Important files delivery"}' testfile.bin --link=my_aoc_publink_send_shd_inbox
|
1534
|
-
ascli aoc servers
|
1535
1585
|
ascli aoc user info modify @json:'{"name":"dummy change"}'
|
1536
1586
|
ascli aoc user info show
|
1537
1587
|
ascli aoc workspace
|
@@ -1550,8 +1600,8 @@ ascli ats cluster list
|
|
1550
1600
|
ascli ats cluster show --cloud=aws --region=eu-west-1
|
1551
1601
|
ascli ats cluster show --id=1f412ae7-869a-445c-9c05-02ad16813be2
|
1552
1602
|
ascli conf flush_tokens
|
1553
|
-
ascli conf wiz --url=https://my_aoc_org.ibmaspera.com --config-file=SAMPLE_CONFIG_FILE --pkeypath='' --username=
|
1554
|
-
ascli conf wiz --url=https://my_aoc_org.ibmaspera.com --config-file=SAMPLE_CONFIG_FILE --pkeypath='' --username=
|
1603
|
+
ascli conf wiz --url=https://my_aoc_org.ibmaspera.com --config-file=SAMPLE_CONFIG_FILE --pkeypath='' --username=my_aoc_user_email --test-mode=yes
|
1604
|
+
ascli conf wiz --url=https://my_aoc_org.ibmaspera.com --config-file=SAMPLE_CONFIG_FILE --pkeypath='' --username=my_aoc_user_email --test-mode=yes --use-generic-client=yes
|
1555
1605
|
ascli config ascp connect id 'Aspera Connect for Windows' info
|
1556
1606
|
ascli config ascp connect id 'Aspera Connect for Windows' links id 'Windows Installer' download --to-folder=.
|
1557
1607
|
ascli config ascp connect id 'Aspera Connect for Windows' links list
|
@@ -1570,7 +1620,7 @@ ascli config plugins
|
|
1570
1620
|
ascli config proxy_check --fpac=file:///examples/proxy.pac https://eudemo.asperademo.com
|
1571
1621
|
ascli console transfer current list
|
1572
1622
|
ascli console transfer smart list
|
1573
|
-
ascli console transfer smart sub
|
1623
|
+
ascli console transfer smart sub my_job_id @json:'{"source":{"paths":["my_file_name"]},"source_type":"user_selected"}'
|
1574
1624
|
ascli cos -N --bucket=my_icos_bucket_name --endpoint=my_icos_bucket_endpoint --apikey=my_icos_bucket_apikey --crn=my_icos_resource_instance_id node info
|
1575
1625
|
ascli cos -N --bucket=my_icos_bucket_name --region=my_icos_bucket_region --service-credentials=@json:@file:service_creds.json node info
|
1576
1626
|
ascli cos node access_key --id=self show
|
@@ -1592,7 +1642,7 @@ ascli faspex source name "Server Files" node br /
|
|
1592
1642
|
ascli faspex5 node list --value=@json:'{"type":"received","subtype":"mypackages"}'
|
1593
1643
|
ascli faspex5 package list --value=@json:'{"mailbox":"inbox","state":["released"]}'
|
1594
1644
|
ascli faspex5 package receive --id="my_package_id" --to-folder=.
|
1595
|
-
ascli faspex5 package send --value=@json:'{"title":"test title","recipients":["${f5_user}"]}' testfile.bin
|
1645
|
+
ascli faspex5 package send --value=@json:'{"title":"test title","recipients":[{"name":"${f5_user}"}]}' testfile.bin
|
1596
1646
|
ascli node -N -Ptst_node_preview access_key create --value=@json:'{"id":"aoc_1","storage":{"type":"local","path":"/"}}'
|
1597
1647
|
ascli node -N -Ptst_node_preview access_key delete --id=aoc_1
|
1598
1648
|
ascli node async --id=1 bandwidth
|
@@ -1648,7 +1698,7 @@ ascli server delete NEW_SERVER_FOLDER
|
|
1648
1698
|
ascli server delete folder_1/target_hot
|
1649
1699
|
ascli server delete folder_1/to.delete
|
1650
1700
|
ascli server df
|
1651
|
-
ascli server download NEW_SERVER_FOLDER/testfile.bin --to-folder=.
|
1701
|
+
ascli server download NEW_SERVER_FOLDER/testfile.bin --to-folder=. --transfer-info=@json:'{"wss":false,"resume":{"iter_max":1}}'
|
1652
1702
|
ascli server download NEW_SERVER_FOLDER/testfile.bin --to-folder=folder_1 --transfer=node
|
1653
1703
|
ascli server du /
|
1654
1704
|
ascli server health transfer --to-folder=folder_1 --format=nagios
|
@@ -1661,7 +1711,7 @@ ascli server upload --sources=@ts --ts=@json:'{"paths":[{"source":"testfile.bin"
|
|
1661
1711
|
ascli server upload --src-type=pair --sources=@json:'["testfile.bin","NEW_SERVER_FOLDER/othername"]'
|
1662
1712
|
ascli server upload --src-type=pair testfile.bin NEW_SERVER_FOLDER/othername
|
1663
1713
|
ascli server upload --to-folder=folder_1/target_hot --lock-port=12345 --ts=@json:'{"EX_ascp_args":["--remove-after-transfer","--remove-empty-directories","--exclude-newer-than=-8","--src-base","source_hot"]}' source_hot
|
1664
|
-
ascli server upload testfile.bin --to-folder=NEW_SERVER_FOLDER
|
1714
|
+
ascli server upload testfile.bin --to-folder=NEW_SERVER_FOLDER --ts=@json:'{"multi_session":3,"multi_session_threshold":1,"resume_policy":"none","target_rate_kbps":1500}' --transfer-info=@json:'{"spawn_delay_sec":2.5}' --progress=multi
|
1665
1715
|
ascli shares admin share list
|
1666
1716
|
ascli shares repository browse /
|
1667
1717
|
ascli shares repository delete /SHARES_UPLOAD/testfile.bin
|
@@ -1684,7 +1734,7 @@ ascli sync start --parameters=@json:'{"sessions":[{"name":"test","reset":true,"r
|
|
1684
1734
|
```
|
1685
1735
|
$ ascli -h
|
1686
1736
|
NAME
|
1687
|
-
ascli -- a command line tool for Aspera Applications (v4.
|
1737
|
+
ascli -- a command line tool for Aspera Applications (v4.2.0)
|
1688
1738
|
|
1689
1739
|
SYNOPSIS
|
1690
1740
|
ascli COMMANDS [OPTIONS] [ARGS]
|
@@ -1735,7 +1785,7 @@ OPTIONS: global
|
|
1735
1785
|
--once-only=ENUM process only new items (some commands): yes, no
|
1736
1786
|
|
1737
1787
|
COMMAND: config
|
1738
|
-
SUBCOMMANDS: gem_path genkey plugins flush_tokens list overview open echo id documentation wizard export_to_cli detect coffee ascp email_test smtp_settings proxy_check folder file check_update
|
1788
|
+
SUBCOMMANDS: gem_path genkey plugins flush_tokens list overview open echo id documentation wizard export_to_cli detect coffee ascp email_test smtp_settings proxy_check folder file check_update initdemo
|
1739
1789
|
OPTIONS:
|
1740
1790
|
--value=VALUE extended value for create, update, list filter
|
1741
1791
|
--property=VALUE name of property to set
|
@@ -1751,8 +1801,8 @@ OPTIONS:
|
|
1751
1801
|
--fpac=VALUE proxy auto configuration URL
|
1752
1802
|
-P, --presetVALUE load the named option preset from current config file
|
1753
1803
|
--default=VALUE set as default configuration for specified plugin
|
1754
|
-
--secret=VALUE
|
1755
|
-
--secrets=VALUE
|
1804
|
+
--secret=VALUE default secret
|
1805
|
+
--secrets=VALUE secret repository (Hash)
|
1756
1806
|
--sdk-url=VALUE URL to get SDK
|
1757
1807
|
--sdk-folder=VALUE SDK folder location
|
1758
1808
|
--test-mode=ENUM skip user validation in wizard mode: yes, no
|
@@ -1918,24 +1968,24 @@ OPTIONS:
|
|
1918
1968
|
|
1919
1969
|
|
1920
1970
|
COMMAND: aoc
|
1921
|
-
SUBCOMMANDS:
|
1971
|
+
SUBCOMMANDS: reminder bearer_token organization tier_restrictions user workspace packages files gateway admin automation servers
|
1922
1972
|
OPTIONS:
|
1923
1973
|
--url=VALUE URL of application, e.g. https://org.asperafiles.com
|
1924
1974
|
--username=VALUE username to log in
|
1925
1975
|
--password=VALUE user's password
|
1926
|
-
--auth=ENUM type of
|
1976
|
+
--auth=ENUM OAuth type of authentication: body_userpass, header_userpass, web, jwt, url_token, ibm_apikey
|
1927
1977
|
--operation=ENUM client operation for transfers: push, pull
|
1928
|
-
--client-id=VALUE API client identifier in application
|
1929
|
-
--client-secret=VALUE API client passcode
|
1930
|
-
--redirect-uri=VALUE API client redirect URI
|
1931
|
-
--private-key=VALUE RSA private key PEM value
|
1978
|
+
--client-id=VALUE OAuth API client identifier in application
|
1979
|
+
--client-secret=VALUE OAuth API client passcode
|
1980
|
+
--redirect-uri=VALUE OAuth API client redirect URI
|
1981
|
+
--private-key=VALUE OAuth JWT RSA private key PEM value (prefix file path with @val:@file:)
|
1932
1982
|
--workspace=VALUE name of workspace
|
1933
1983
|
--name=VALUE resource name
|
1934
1984
|
--path=VALUE file or folder path
|
1935
1985
|
--link=VALUE public link to shared resource
|
1936
1986
|
--new-user-option=VALUE new user creation option
|
1937
1987
|
--from-folder=VALUE share to share source folder
|
1938
|
-
--scope=VALUE scope for AoC API calls
|
1988
|
+
--scope=VALUE OAuth scope for AoC API calls
|
1939
1989
|
--notify=VALUE notify users that file was received
|
1940
1990
|
--bulk=ENUM bulk operation: yes, no
|
1941
1991
|
--default-ports=ENUM use standard FASP ports or get from node api: yes, no
|
@@ -2534,10 +2584,10 @@ $ ascli aoc packages recv --id=ALL --once-only=yes --lock-port=12345
|
|
2534
2584
|
* `--once-only=yes` keeps memory of any downloaded package in persistency files located in the configuration folder.
|
2535
2585
|
* `--lock-port=12345` ensures that only one instance is started at the same time, to avoid collisions
|
2536
2586
|
|
2537
|
-
Typically, one would regularly execute this command on a regular basis, using the method
|
2587
|
+
Typically, one would regularly execute this command on a regular basis, using the method of your choice:
|
2538
2588
|
|
2539
|
-
* Windows scheduler
|
2540
|
-
* cron
|
2589
|
+
* Windows: [Task Scheduler](https://docs.microsoft.com/en-us/windows/win32/taskschd/task-scheduler-start-page)
|
2590
|
+
* Linux/Unix: [cron](https://www.man7.org/linux/man-pages/man5/crontab.5.html)
|
2541
2591
|
* etc...
|
2542
2592
|
|
2543
2593
|
## Download Files
|
@@ -2757,7 +2807,7 @@ This can also be set as default using a preset
|
|
2757
2807
|
One can test the "server" application using the well known demo server:
|
2758
2808
|
|
2759
2809
|
```
|
2760
|
-
$ ascli config id aspera_demo_server update --url=ssh://demo.asperasoft.com:33001 --username=asperaweb --password=
|
2810
|
+
$ ascli config id aspera_demo_server update --url=ssh://demo.asperasoft.com:33001 --username=asperaweb --password=_demo_pass_
|
2761
2811
|
$ ascli config id default set server aspera_demo_server
|
2762
2812
|
$ ascli server browse /aspera-test-dir-large
|
2763
2813
|
$ ascli server download /aspera-test-dir-large/200MB
|
@@ -3061,7 +3111,7 @@ to start from ma configuration file, using `ascli` standard options.
|
|
3061
3111
|
|
3062
3112
|
# Plugin: Preview
|
3063
3113
|
|
3064
|
-
The `preview` generates "previews" of graphical files, i.e. thumbnails (office, images, video) and video previews on
|
3114
|
+
The `preview` generates "previews" of graphical files, i.e. thumbnails (office, images, video) and video previews on storage for use primarily in the Aspera on Cloud application.
|
3065
3115
|
This is based on the "node API" of Aspera HSTS when using Access Keys only inside it's "storage root".
|
3066
3116
|
Several parameters can be used to tune several aspects:
|
3067
3117
|
|
@@ -3190,9 +3240,10 @@ $ ascli config id previewconf update --url=https://localhost:9092 --username=my_
|
|
3190
3240
|
$ ascli config id default set preview previewconf
|
3191
3241
|
```
|
3192
3242
|
|
3193
|
-
Here we assume that Office file generation is disabled, else remove
|
3243
|
+
Here we assume that Office file generation is disabled, else remove this option.
|
3244
|
+
`lock_port` prevents concurrent execution of generation when using a scheduler.
|
3194
3245
|
|
3195
|
-
|
3246
|
+
One can check if the access key is well configured using:
|
3196
3247
|
|
3197
3248
|
```
|
3198
3249
|
$ ascli -Ppreviewconf node browse /
|
@@ -3278,6 +3329,14 @@ $ ascli preview scan --skip-folders=@json:'["/not_here"]'
|
|
3278
3329
|
|
3279
3330
|
The option `folder_reset_cache` forces the node service to refresh folder contents using various methods.
|
3280
3331
|
|
3332
|
+
When scanning the option `value` has the same behaviour as for the `node find` command.
|
3333
|
+
|
3334
|
+
For instance to filter out files beginning with `._` do:
|
3335
|
+
|
3336
|
+
```
|
3337
|
+
... --value='exec:!f["name"].start_with?("._") or f["name"].eql?(".DS_Store")'
|
3338
|
+
```
|
3339
|
+
|
3281
3340
|
## Preview File types
|
3282
3341
|
|
3283
3342
|
Two types of preview can be generated:
|
@@ -3415,7 +3474,7 @@ Note that in addition, many "EX_" [_transfer-spec_](#transferspec) parameters ar
|
|
3415
3474
|
## Simple session
|
3416
3475
|
|
3417
3476
|
```
|
3418
|
-
MY_TSPEC='{"remote_host":"demo.asperasoft.com","remote_user":"asperaweb","ssh_port":33001,"remote_password":"
|
3477
|
+
MY_TSPEC='{"remote_host":"demo.asperasoft.com","remote_user":"asperaweb","ssh_port":33001,"remote_password":"_demo_pass_","direction":"receive","destination_root":"./test.dir","paths":[{"source":"/aspera-test-dir-tiny/200KB.1"}],"resume_level":"none"}'
|
3419
3478
|
|
3420
3479
|
echo "${MY_TSPEC}"|asession
|
3421
3480
|
```
|
@@ -3428,7 +3487,7 @@ This is particularly useful for a persistent session ( with the [_transfer-spec_
|
|
3428
3487
|
|
3429
3488
|
```
|
3430
3489
|
$ asession
|
3431
|
-
{"remote_host":"demo.asperasoft.com","ssh_port":33001,"remote_user":"asperaweb","remote_password":"
|
3490
|
+
{"remote_host":"demo.asperasoft.com","ssh_port":33001,"remote_user":"asperaweb","remote_password":"_demo_pass_","direction":"receive","destination_root":".","keepalive":true,"resume_level":"none"}
|
3432
3491
|
{"type":"START","source":"/aspera-test-dir-tiny/200KB.2"}
|
3433
3492
|
{"type":"DONE"}
|
3434
3493
|
```
|
@@ -3597,7 +3656,20 @@ So, it evolved into `ascli`:
|
|
3597
3656
|
|
3598
3657
|
# Changes (Release notes)
|
3599
3658
|
|
3600
|
-
* 4.
|
3659
|
+
* 4.2.0
|
3660
|
+
|
3661
|
+
* new: command `aoc remind` to receive organization membership by email
|
3662
|
+
* new: in `preview` option `value` to filter out on file name
|
3663
|
+
* new: `initdemo` to initialize for demo server
|
3664
|
+
* new: `direct` transfer agent options: `spawn_timeout_sec` and `spawn_delay_sec`
|
3665
|
+
* fix: on Windows `conf ascp use` expects ascp.exe
|
3666
|
+
* fix: (break) multi_session_threshold is Integer, not String
|
3667
|
+
* fix: `conf ascp install` renames sdk folder if it already exists (leftover shared lib may make fail)
|
3668
|
+
* fix: removed replace_illegal_chars from default aspera.conf causing "Error creating illegal char conversion table"
|
3669
|
+
* change: (break) `aoc apiinfo` is removed, use `aoc servers` to provide the list of cloud systems
|
3670
|
+
* change: (break) parameters for resume in `transfer-info` for `direct` are now in sub-key `"resume"`
|
3671
|
+
|
3672
|
+
* 4.1.0
|
3601
3673
|
|
3602
3674
|
* fix: remove keys from transfer spec and command line when not needed
|
3603
3675
|
* fix: default to create_dir:true so that sending single file to a folder does not rename file if folder does not exist
|
@@ -3968,11 +4040,15 @@ Breaking change:
|
|
3968
4040
|
|
3969
4041
|
* Breaking change: "files" application renamed to "aspera" (for "Aspera on Cloud"). "repository" renamed to "files". Default is automatically reset, e.g. in config files and change key "files" to "aspera" in [option preset](#lprt) "default".
|
3970
4042
|
|
3971
|
-
# BUGS
|
4043
|
+
# BUGS, FEATURES, CONTRIBUTION
|
4044
|
+
|
4045
|
+
For issues or feature requests use the Github repository and issues.
|
3972
4046
|
|
3973
|
-
|
4047
|
+
You can also contribute to this open source project.
|
3974
4048
|
|
3975
|
-
|
4049
|
+
One can also create one's own command nplugin.
|
4050
|
+
|
4051
|
+
## Only one value for any option
|
3976
4052
|
|
3977
4053
|
Some commands and sub commands may ask for the same option name.
|
3978
4054
|
Currently, since option definition is position independant (last one wins), it is not possible
|
@@ -3986,7 +4062,8 @@ This happens typically for the `node` sub command, e.g. identify the node by nam
|
|
3986
4062
|
|
3987
4063
|
## ED255519 key not supported
|
3988
4064
|
|
3989
|
-
|
4065
|
+
ED25519 keys are deactivated since version 0.9.24 so this type of key will just be ignored.
|
4066
|
+
|
3990
4067
|
Without this deactivation, if such key was present the following error was generated:
|
3991
4068
|
|
3992
4069
|
```
|
@@ -3996,7 +4073,17 @@ OpenSSH keys only supported if ED25519 is available
|
|
3996
4073
|
Which meant that you do not have ruby support for ED25519 SSH keys.
|
3997
4074
|
You may either install the suggested Gems, or remove your ed25519 key from your `.ssh` folder to solve the issue.
|
3998
4075
|
|
3999
|
-
|
4076
|
+
## Error "Remote host is not who we expected"
|
4077
|
+
|
4078
|
+
`ascp` version 4.x changed the algorithm used to check the SSH server certificate. To ignore the certificate (SSH fingerprint) add option on client side:
|
4079
|
+
|
4080
|
+
```
|
4081
|
+
--ts=@json:'{"sshfp":null}'
|
4082
|
+
```
|
4083
|
+
|
4084
|
+
Refer to ES-1944 in release notes of 4.1 and to [HSTS admin manual section "Configuring Transfer Server Authentication With a Host-Key Fingerprint"](https://www.ibm.com/docs/en/ahts/4.2?topic=upgrades-configuring-ssh-server): if you have access to server side, basically disable other SSH host keys than RSA.
|
4085
|
+
|
4086
|
+
## Miscelaneous
|
4000
4087
|
|
4001
4088
|
* remove rest and oauth classes and use ruby standard gems:
|
4002
4089
|
|
@@ -4012,9 +4099,3 @@ You may either install the suggested Gems, or remove your ed25519 key from your
|
|
4012
4099
|
* Going through proxy: use env var http_proxy and https_proxy, no_proxy
|
4013
4100
|
|
4014
4101
|
* easier use with https://github.com/pmq20/ruby-packer
|
4015
|
-
|
4016
|
-
# Contribution
|
4017
|
-
|
4018
|
-
Send comments !
|
4019
|
-
|
4020
|
-
Create your own plugin !
|