aspera-cli 4.1.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 !
|