aspera-cli 4.7.0 → 4.8.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
- checksums.yaml.gz.sig +1 -0
- data/README.md +844 -861
- data/bin/ascli +20 -1
- data/bin/asession +37 -34
- data/docs/test_env.conf +11 -3
- data/examples/aoc.rb +13 -12
- data/examples/dascli +26 -0
- data/examples/faspex4.rb +34 -29
- data/examples/transfer.rb +30 -29
- data/lib/aspera/aoc.rb +151 -143
- data/lib/aspera/ascmd.rb +56 -45
- data/lib/aspera/ats_api.rb +6 -5
- data/lib/aspera/cli/basic_auth_plugin.rb +18 -16
- data/lib/aspera/cli/extended_value.rb +32 -30
- data/lib/aspera/cli/formater.rb +103 -111
- data/lib/aspera/cli/info.rb +2 -1
- data/lib/aspera/cli/listener/line_dump.rb +1 -0
- data/lib/aspera/cli/listener/logger.rb +1 -0
- data/lib/aspera/cli/listener/progress.rb +13 -12
- data/lib/aspera/cli/listener/progress_multi.rb +21 -20
- data/lib/aspera/cli/main.rb +106 -89
- data/lib/aspera/cli/manager.rb +96 -85
- data/lib/aspera/cli/plugin.rb +50 -32
- data/lib/aspera/cli/plugins/alee.rb +6 -5
- data/lib/aspera/cli/plugins/aoc.rb +521 -426
- data/lib/aspera/cli/plugins/ats.rb +84 -83
- data/lib/aspera/cli/plugins/bss.rb +30 -27
- data/lib/aspera/cli/plugins/config.rb +483 -397
- data/lib/aspera/cli/plugins/console.rb +17 -15
- data/lib/aspera/cli/plugins/cos.rb +26 -35
- data/lib/aspera/cli/plugins/faspex.rb +201 -168
- data/lib/aspera/cli/plugins/faspex5.rb +109 -74
- data/lib/aspera/cli/plugins/node.rb +378 -189
- data/lib/aspera/cli/plugins/orchestrator.rb +71 -65
- data/lib/aspera/cli/plugins/preview.rb +131 -122
- data/lib/aspera/cli/plugins/server.rb +94 -93
- data/lib/aspera/cli/plugins/shares.rb +42 -28
- data/lib/aspera/cli/plugins/sync.rb +15 -14
- data/lib/aspera/cli/transfer_agent.rb +56 -52
- data/lib/aspera/cli/version.rb +2 -1
- data/lib/aspera/colors.rb +29 -28
- data/lib/aspera/command_line_builder.rb +50 -43
- data/lib/aspera/cos_node.rb +64 -38
- data/lib/aspera/data_repository.rb +1 -0
- data/lib/aspera/environment.rb +18 -8
- data/lib/aspera/fasp/agent_base.rb +26 -23
- data/lib/aspera/fasp/agent_connect.rb +35 -30
- data/lib/aspera/fasp/agent_direct.rb +68 -60
- data/lib/aspera/fasp/agent_httpgw.rb +71 -64
- data/lib/aspera/fasp/agent_node.rb +24 -23
- data/lib/aspera/fasp/agent_trsdk.rb +19 -20
- data/lib/aspera/fasp/error.rb +2 -1
- data/lib/aspera/fasp/error_info.rb +79 -68
- data/lib/aspera/fasp/installation.rb +122 -114
- data/lib/aspera/fasp/listener.rb +1 -0
- data/lib/aspera/fasp/parameters.rb +44 -41
- data/lib/aspera/fasp/resume_policy.rb +14 -11
- data/lib/aspera/fasp/transfer_spec.rb +6 -5
- data/lib/aspera/fasp/uri.rb +25 -24
- data/lib/aspera/faspex_gw.rb +83 -72
- data/lib/aspera/hash_ext.rb +10 -12
- data/lib/aspera/id_generator.rb +8 -7
- data/lib/aspera/keychain/encrypted_hash.rb +60 -45
- data/lib/aspera/keychain/macos_security.rb +26 -24
- data/lib/aspera/log.rb +34 -38
- data/lib/aspera/nagios.rb +14 -13
- data/lib/aspera/node.rb +19 -19
- data/lib/aspera/oauth.rb +121 -101
- data/lib/aspera/open_application.rb +6 -5
- data/lib/aspera/persistency_action_once.rb +9 -8
- data/lib/aspera/persistency_folder.rb +10 -9
- data/lib/aspera/preview/file_types.rb +261 -266
- data/lib/aspera/preview/generator.rb +74 -73
- data/lib/aspera/preview/image_error.png +0 -0
- data/lib/aspera/preview/options.rb +7 -6
- data/lib/aspera/preview/utils.rb +30 -33
- data/lib/aspera/preview/video_error.png +0 -0
- data/lib/aspera/proxy_auto_config.rb +25 -23
- data/lib/aspera/rest.rb +73 -74
- data/lib/aspera/rest_call_error.rb +1 -0
- data/lib/aspera/rest_error_analyzer.rb +11 -9
- data/lib/aspera/rest_errors_aspera.rb +5 -4
- data/lib/aspera/secret_hider.rb +68 -0
- data/lib/aspera/ssh.rb +12 -10
- data/lib/aspera/sync.rb +49 -47
- data/lib/aspera/temp_file_manager.rb +7 -5
- data/lib/aspera/timer_limiter.rb +9 -8
- data/lib/aspera/uri_reader.rb +11 -14
- data/lib/aspera/web_auth.rb +17 -15
- data.tar.gz.sig +0 -0
- metadata +117 -34
- metadata.gz.sig +2 -0
- data/bin/dascli +0 -13
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
[comment1]: # (Do not edit this README.md, edit docs/README.erb.md, for details, read docs/README.md)
|
4
4
|
|
5
|
-
Version : 4.
|
5
|
+
Version : 4.8.0
|
6
6
|
|
7
7
|
Laurent/2016-2022
|
8
8
|
|
@@ -19,6 +19,16 @@ Minimum required Ruby version: >= 2.4. Deprecation notice: the minimum will be 2
|
|
19
19
|
[Aspera APIs on IBM developer](https://developer.ibm.com/?size=30&q=aspera&DWContentType[0]=APIs)
|
20
20
|
[Link 2](https://developer.ibm.com/apis/catalog/?search=aspera)
|
21
21
|
|
22
|
+
Release notes: see [CHANGELOG.md](CHANGELOG.md)
|
23
|
+
|
24
|
+
[](https://bestpractices.coreinfrastructure.org/projects/5861)
|
25
|
+
|
26
|
+
## BUGS, FEATURES, CONTRIBUTION
|
27
|
+
|
28
|
+
Refer to [BUGS.md](BUGS.md) and [CONTRIBUTING.md](CONTRIBUTING.md).
|
29
|
+
|
30
|
+
One can also [create one's own plugin](#createownplugin).
|
31
|
+
|
22
32
|
## <a id="when_to_use"></a>When to use and when not to use
|
23
33
|
|
24
34
|
`ascli` is designed to be used as a command line tool to:
|
@@ -89,7 +99,7 @@ ascli --version
|
|
89
99
|
```
|
90
100
|
|
91
101
|
```bash
|
92
|
-
4.
|
102
|
+
4.8.0
|
93
103
|
```
|
94
104
|
|
95
105
|
### First use
|
@@ -196,11 +206,9 @@ An internet connection is required for the installation. If you don't have inter
|
|
196
206
|
|
197
207
|
### Docker container
|
198
208
|
|
199
|
-
|
200
|
-
|
201
|
-
This method installs a docker image that contains: Ruby, `ascli` and the FASP sdk.
|
209
|
+
This method installs a docker image that contains: Ruby, `ascli` and the FASP SDK.
|
202
210
|
|
203
|
-
The image is:
|
211
|
+
The image is: <https://hub.docker.com/r/martinlaurent/ascli>. It is built from this [Dockerfile](Dockerfile).
|
204
212
|
|
205
213
|
Ensure that you have Docker installed.
|
206
214
|
|
@@ -208,10 +216,16 @@ Ensure that you have Docker installed.
|
|
208
216
|
docker --version
|
209
217
|
```
|
210
218
|
|
211
|
-
|
219
|
+
An example of wrapping script is provided: `dascli`. If you have installed `ascli`, the script `dascli` can be found:
|
220
|
+
|
221
|
+
```bash
|
222
|
+
cp $(ascli conf gem path)/../examples/dascli ascli
|
223
|
+
```
|
224
|
+
|
225
|
+
Alternatively [download from the GIT repo](https://raw.githubusercontent.com/IBM/aspera-cli/main/examples/dascli) :
|
212
226
|
|
213
227
|
```bash
|
214
|
-
curl -o ascli https://raw.githubusercontent.com/IBM/aspera-cli/
|
228
|
+
curl -o ascli https://raw.githubusercontent.com/IBM/aspera-cli/main/examples/dascli
|
215
229
|
```
|
216
230
|
|
217
231
|
```bash
|
@@ -224,14 +238,13 @@ Install the container image:
|
|
224
238
|
./ascli install
|
225
239
|
```
|
226
240
|
|
227
|
-
|
241
|
+
Note that ascli is run in the container, so transfers are also executed in the container (not calling host, like for the regular ascli).
|
228
242
|
|
229
|
-
|
230
|
-
|
231
|
-
The wrapping script maps the container folder `/usr/src/app/config` to configuration folder `$HOME/.aspera/ascli` on host.
|
243
|
+
The wrapping script maps the folder `/usr/src/app/config` in the container to configuration folder `$HOME/.aspera/ascli` on host.
|
244
|
+
This allows having persistent configuration.
|
232
245
|
|
233
246
|
To transfer to/from the native host, you will need to map a volume in docker or use the config folder (already mapped).
|
234
|
-
To add local storage as a volume edit the script: `ascli` and add a `--volume` stanza.
|
247
|
+
To add local storage as a volume edit the script: `ascli` and add a `--volume` stanza near the existing one.
|
235
248
|
|
236
249
|
### <a id="ruby"></a>Ruby
|
237
250
|
|
@@ -312,11 +325,13 @@ rvm version
|
|
312
325
|
|
313
326
|
#### Windows: Installer
|
314
327
|
|
315
|
-
Install Latest stable Ruby
|
328
|
+
Install Latest stable Ruby:
|
316
329
|
|
317
|
-
*
|
318
|
-
*
|
319
|
-
*
|
330
|
+
* Navigate to [https://rubyinstaller.org/](https://rubyinstaller.org/) → **Downloads**.
|
331
|
+
* Download the latest Ruby installer **with devkit**. (Msys2 is needed to install some native extensions, such as `grpc`)
|
332
|
+
* Execute the installer which installs by default in: `RubyVV-x64` (VV is the version number)
|
333
|
+
* At the end of the installation procedure execute the Msys2 installer (ridk install) and select option 3 (msys and mingw)
|
334
|
+
* Install the "mime info" file as specified in [this section](#mimeinfo).
|
320
335
|
|
321
336
|
#### macOS: pre-installed or `brew`
|
322
337
|
|
@@ -336,20 +351,31 @@ brew install ruby
|
|
336
351
|
|
337
352
|
If your Linux distribution provides a standard ruby package, you can use it provided that the version is compatible (check at beginning of section).
|
338
353
|
|
339
|
-
Example:
|
354
|
+
Example: Centos 8 Stream
|
340
355
|
|
341
356
|
```bash
|
342
|
-
yum install
|
357
|
+
yum install make automake gcc gcc-c++ kernel-devel
|
358
|
+
yum install redhat-rpm-config
|
359
|
+
dnf module reset ruby
|
360
|
+
dnf module enable ruby:3.0
|
361
|
+
dnf module -y install ruby:3.0/common
|
362
|
+
gem install aspera-cli
|
343
363
|
```
|
344
364
|
|
345
|
-
|
365
|
+
Other examples:
|
346
366
|
|
347
367
|
```bash
|
348
|
-
|
368
|
+
yum install -y ruby ruby-devel rubygems ruby-json
|
369
|
+
```
|
370
|
+
|
371
|
+
```bash
|
372
|
+
apt install -y ruby ruby-dev rubygems ruby-json
|
349
373
|
```
|
350
374
|
|
375
|
+
One can cleanup the whole yum-installed ruby environment like this to uninstall:
|
376
|
+
|
351
377
|
```bash
|
352
|
-
|
378
|
+
gem uninstall $(ls $(gem env gemdir)/gems/|sed -e 's/-[^-]*$//'|sort -u)
|
353
379
|
```
|
354
380
|
|
355
381
|
#### Other Unixes (AIX)
|
@@ -531,10 +557,23 @@ Basic usage is displayed by executing:
|
|
531
557
|
ascli -h
|
532
558
|
```
|
533
559
|
|
534
|
-
Refer to sections: [Usage](#usage)
|
560
|
+
Refer to sections: [Usage](#usage).
|
535
561
|
|
536
562
|
Not all `ascli` features are fully documented here, the user may explore commands on the command line.
|
537
563
|
|
564
|
+
### `ascp` command line
|
565
|
+
|
566
|
+
If you want to use `ascp` directly as a command line, refer to IBM Aspera documentation of either [Desktop Client](https://www.ibm.com/docs/en/asdc), [Endpoint](https://www.ibm.com/docs/en/ahte) or [Transfer Server](https://www.ibm.com/docs/en/ahts) where [a section on `ascp` can be found](https://www.ibm.com/docs/en/ahts/4.4?topic=linux-ascp-transferring-from-command-line).
|
567
|
+
|
568
|
+
Using `ascli` with plugin `server` for command line gives advantages over ascp:
|
569
|
+
|
570
|
+
* automatic resume on error
|
571
|
+
* configuration file
|
572
|
+
* choice of transfer agents
|
573
|
+
* integrated support of multi-session
|
574
|
+
|
575
|
+
Moreover all `ascp` options are supported either through transfer spec parameters and with the possibility to provide `ascp` arguments directly when the `direct` agent is used (`EX_ascp_args`).
|
576
|
+
|
538
577
|
### Arguments : Commands and options
|
539
578
|
|
540
579
|
Arguments are the units of command line, as parsed by the shell, typically separated by spaces (and called "argv").
|
@@ -674,12 +713,12 @@ Output messages are categorized in 3 types:
|
|
674
713
|
|
675
714
|
The option `display` controls the level of output:
|
676
715
|
|
677
|
-
* `info` displays all messages
|
716
|
+
* `info` displays all messages: `info`, `data`, and `error`
|
678
717
|
* `data` display `data` and `error` messages
|
679
718
|
* `error` display only error messages.
|
680
719
|
|
681
|
-
By default, secrets are
|
682
|
-
To hide secrets from
|
720
|
+
By default, secrets are removed from output: option `show_secrets` defaults to `no`, unless `display` is `data`, to allows piping results.
|
721
|
+
To hide secrets from output, set option `show_secrets` to `no`.
|
683
722
|
|
684
723
|
#### Selection of output object properties
|
685
724
|
|
@@ -778,14 +817,14 @@ Note that `@incps:@json:'{"incps":["config"]}'` or `@incps:@ruby:'{"incps"=>["co
|
|
778
817
|
|
779
818
|
### <a id="native"></a>Structured Value
|
780
819
|
|
781
|
-
Some options and parameters expect a
|
820
|
+
Some options and parameters expect a [Extended Value](#extended), i.e. a value more complex than a simple string. This is usually a Hash table or an Array, which could also contain sub structures.
|
782
821
|
|
783
|
-
For instance, a [*transfer-spec*](#transferspec) is expected to be a
|
822
|
+
For instance, a [*transfer-spec*](#transferspec) is expected to be a [Extended Value](#extended).
|
784
823
|
|
785
824
|
Structured values shall be described using the [Extended Value Syntax](#extended).
|
786
|
-
A convenient way to specify a
|
825
|
+
A convenient way to specify a [Extended Value](#extended) is to use the `@json:` decoder, and describe the value in JSON format. The `@ruby:` decoder can also be used. For an array of hash tables, the `@csvt:` decoder can be used.
|
787
826
|
|
788
|
-
It is also possible to provide a
|
827
|
+
It is also possible to provide a [Extended Value](#extended) in a file using `@json:@file:<path>`
|
789
828
|
|
790
829
|
### <a id="conffolder"></a>Configuration and Persistency Folder
|
791
830
|
|
@@ -894,7 +933,6 @@ ascli config over
|
|
894
933
|
ascli config list
|
895
934
|
```
|
896
935
|
|
897
|
-
|
898
936
|
#### <a id="lprtconf"></a>Special Option preset: config
|
899
937
|
|
900
938
|
This preset name is reserved and contains a single key: `version`. This is the version of `ascli` which created the file.
|
@@ -929,6 +967,49 @@ When `ascli` starts, it looks for the `default` Option preset and if there is a
|
|
929
967
|
|
930
968
|
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`)
|
931
969
|
|
970
|
+
Sample commands
|
971
|
+
|
972
|
+
```bash
|
973
|
+
config ascp connect info 'Aspera Connect for Windows'
|
974
|
+
config ascp connect list
|
975
|
+
config ascp connect version 'Aspera Connect for Windows' download 'Windows Installer' --to-folder=.
|
976
|
+
config ascp connect version 'Aspera Connect for Windows' list
|
977
|
+
config ascp connect version 'Aspera Connect for Windows' open documentation
|
978
|
+
config ascp errors
|
979
|
+
config ascp info --sdk-folder=Tsdk_test_dir
|
980
|
+
config ascp install --sdk-folder=Tsdk_test_dir
|
981
|
+
config ascp products list
|
982
|
+
config ascp show
|
983
|
+
config ascp spec
|
984
|
+
config check_update
|
985
|
+
config detect --url=https://my_aoc_org.ibmaspera.com
|
986
|
+
config detect --url=my_faspex_url
|
987
|
+
config detect --url=my_node_url
|
988
|
+
config doc
|
989
|
+
config doc transfer-parameters
|
990
|
+
config echo 'hello'
|
991
|
+
config echo @base64:SGVsbG8gV29ybGQK
|
992
|
+
config echo @csvt:@stdin:
|
993
|
+
config echo @env:USER
|
994
|
+
config echo @lines:@stdin:
|
995
|
+
config echo @list:,1,2,3
|
996
|
+
config echo @uri:/etc/hosts
|
997
|
+
config echo @uri:file:/etc/hosts
|
998
|
+
config echo @uri:http://www.ibm.com
|
999
|
+
config echo @uri:https://www.ibm.com
|
1000
|
+
config echo @val:@file:yo
|
1001
|
+
config echo @zlib:@stdin:
|
1002
|
+
config email_test --notif-to=my_recipient_email
|
1003
|
+
config export
|
1004
|
+
config flush_tokens
|
1005
|
+
config genkey mykey
|
1006
|
+
config plugin create mycommand T
|
1007
|
+
config plugin list
|
1008
|
+
config proxy_check --fpac=@file:examples/proxy.pac https://eudemo.asperademo.com
|
1009
|
+
config wiz --url=https://my_aoc_org.ibmaspera.com --config-file=SAMPLE_CONFIG_FILE --pkeypath= --username=my_aoc_user_email --test-mode=yes
|
1010
|
+
config 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
|
1011
|
+
```
|
1012
|
+
|
932
1013
|
#### Format of file
|
933
1014
|
|
934
1015
|
The configuration file is a hash in a YAML file. Example:
|
@@ -1110,6 +1191,8 @@ Secrets must be uniquely identified by `url` and `username`. An optional descrip
|
|
1110
1191
|
|
1111
1192
|
#### Legacy config file format
|
1112
1193
|
|
1194
|
+
THIS FORMAT WILL BE DEPRECATED
|
1195
|
+
|
1113
1196
|
The value provided can be a Hash, where keys are usernames (or access key id), and values are the associated password or secrets in clear.
|
1114
1197
|
|
1115
1198
|
For example, choose a repository name, for example `my_secrets`, and populate it like this:
|
@@ -1141,39 +1224,56 @@ ascli conf vault get --username=access_key1
|
|
1141
1224
|
|
1142
1225
|
### <a id="private_key"></a>Private Key
|
1143
1226
|
|
1144
|
-
Some applications allow the user to be authenticated using a private key (Server, AoC, Faspex5...).
|
1145
|
-
It consists in
|
1227
|
+
Some applications allow the user to be authenticated using a private key (Server, AoC, Faspex5, ...).
|
1228
|
+
It consists in using a pair of keys: the private key and its associated public key.
|
1146
1229
|
The same key can be used for multiple applications.
|
1147
|
-
Technically, a private key contains the public key, which can be extracted.
|
1148
|
-
|
1149
|
-
|
1230
|
+
Technically, a private key contains the public key, which can be extracted from it.
|
1231
|
+
The private key can be protected by a passphrase or not.
|
1232
|
+
If the key is protected by a passphrase, then it will be prompted.
|
1233
|
+
(some plugins support option `passphrase`)
|
1150
1234
|
|
1151
1235
|
Several methods can be used to generate a key pair:
|
1152
1236
|
|
1237
|
+
The following commands use this variable:
|
1238
|
+
|
1239
|
+
```bash
|
1240
|
+
PRIVKEYFILE=~/.aspera/ascli/my_private_key
|
1241
|
+
```
|
1242
|
+
|
1153
1243
|
* `ascli`
|
1154
1244
|
|
1155
|
-
The generated key is of type RSA
|
1245
|
+
The generated key is of type RSA, by default: 4096 bit.
|
1246
|
+
For convenience, the public key is also extracted with extension `.pub`.
|
1247
|
+
The key is not passphrase protected.
|
1156
1248
|
|
1157
1249
|
```bash
|
1158
|
-
ascli config genkey
|
1250
|
+
ascli config genkey ${PRIVKEYFILE} 4096
|
1159
1251
|
```
|
1160
1252
|
|
1161
1253
|
* `ssh-keygen`
|
1162
1254
|
|
1255
|
+
Both private and public keys are generated, option `-N` is for passphrase.
|
1256
|
+
|
1163
1257
|
```bash
|
1164
|
-
ssh-keygen -t rsa -
|
1258
|
+
ssh-keygen -t rsa -b 4096 -N '' -f ${PRIVKEYFILE}
|
1165
1259
|
```
|
1166
1260
|
|
1167
1261
|
* `openssl`
|
1168
1262
|
|
1169
|
-
openssl is sometimes compiled to support option `-nodes` (no DES, i.e. no passphrase, e.g. on macOS).
|
1263
|
+
openssl is sometimes compiled to support option `-nodes` (no DES, i.e. no passphrase, e.g. on macOS).
|
1264
|
+
To generate a private key pair without passphrase the following can be used on any system:
|
1265
|
+
|
1266
|
+
```bash
|
1267
|
+
openssl genrsa -passout pass:dummypassword -out ${PRIVKEYFILE}.protected 4096
|
1268
|
+
openssl rsa -passin pass:dummypassword -in ${PRIVKEYFILE}.protected -out ${PRIVKEYFILE}
|
1269
|
+
openssl rsa -pubout -in ${PRIVKEYFILE} -out ${PRIVKEYFILE}.pub
|
1270
|
+
rm -f ${PRIVKEYFILE}.protected
|
1271
|
+
```
|
1272
|
+
|
1273
|
+
To change (or add) the passphrase for a key do:
|
1170
1274
|
|
1171
1275
|
```bash
|
1172
|
-
|
1173
|
-
openssl genrsa -passout pass:dummypassword -out ${APIKEY}.protected 2048
|
1174
|
-
openssl rsa -passin pass:dummypassword -in ${APIKEY}.protected -out ${APIKEY}
|
1175
|
-
openssl rsa -pubout -in ${APIKEY} -out ${APIKEY}.pub
|
1176
|
-
rm -f ${APIKEY}.protected
|
1276
|
+
openssl rsa -des3 -in old_file -out new_file
|
1177
1277
|
```
|
1178
1278
|
|
1179
1279
|
### <a id="certificates"></a>SSL CA certificate bundle
|
@@ -1250,14 +1350,37 @@ Aspera on Cloud relies on Oauth, refer to the [Aspera on Cloud](#aoc) section.
|
|
1250
1350
|
|
1251
1351
|
### Logging, Debugging
|
1252
1352
|
|
1253
|
-
The gem is equipped with traces
|
1254
|
-
|
1353
|
+
The gem is equipped with traces, mainly for debugging and learning APIs.
|
1354
|
+
By default logging level is `warn` and the output channel is `stderr`.
|
1355
|
+
To increase debug level, use parameter `log_level` (e.g. using command line `--log-level=xx`, env var `ASCLI_LOG_LEVEL`, or a parameter in the configuration file).
|
1255
1356
|
|
1256
|
-
It is also possible to activate traces before initialization using env var `
|
1357
|
+
It is also possible to activate traces before log facility initialization using env var `ASCLI_LOG_LEVEL`.
|
1257
1358
|
|
1258
1359
|
By default passwords and secrets are removed from logs.
|
1259
1360
|
Use option `log_secrets` set to `yes` to reveal secrets in logs.
|
1260
1361
|
|
1362
|
+
Available loggers: `stdout`, `stderr`, `syslog`.
|
1363
|
+
|
1364
|
+
Available levels: `debug`, `info`, `warn`, `error`.
|
1365
|
+
|
1366
|
+
Note that when using the `direct` agent (`ascp`), additional transfer logs can be activated using `ascp` option `EX_ascp_args`, see [`direct`](#agt_direct).
|
1367
|
+
|
1368
|
+
Examples:
|
1369
|
+
|
1370
|
+
* display debugging log on `stdout`:
|
1371
|
+
|
1372
|
+
```bash
|
1373
|
+
ascli conf over --log-level=debug --logger=stdout
|
1374
|
+
```
|
1375
|
+
|
1376
|
+
* log errors to `syslog`:
|
1377
|
+
|
1378
|
+
```bash
|
1379
|
+
ascli conf over --log-level=error --logger=syslog
|
1380
|
+
```
|
1381
|
+
|
1382
|
+
When `ascli` is used interactively in a shell, the shell itself will usually log executed commands in the history file.
|
1383
|
+
|
1261
1384
|
### Learning Aspera Product APIs (REST)
|
1262
1385
|
|
1263
1386
|
This CLI uses REST APIs.
|
@@ -1341,7 +1464,7 @@ The PAC file will be used for any HTTP/HTTPS/REST connection, but not other (e.g
|
|
1341
1464
|
|
1342
1465
|
The PAC file can be tested with command: `config proxy_check`. Example, using command line option:
|
1343
1466
|
|
1344
|
-
```
|
1467
|
+
```bash
|
1345
1468
|
ascli conf proxy_check --fpac='function FindProxyForURL(url, host) {return "PROXY proxy.example.com:1234;DIRECT";}' http://example.com
|
1346
1469
|
PROXY proxy.example.com:1234;DIRECT
|
1347
1470
|
```
|
@@ -1520,12 +1643,12 @@ will effectively push files to the related server from the agent node.
|
|
1520
1643
|
#### <a id="agt_direct"></a>Direct
|
1521
1644
|
|
1522
1645
|
The `direct` agent directly executes a local ascp.
|
1523
|
-
This is the default for `ascli`.
|
1524
|
-
This is equivalent to
|
1525
|
-
`ascli` will detect locally installed Aspera products, including SDK.
|
1646
|
+
This is the default agent for `ascli`.
|
1647
|
+
This is equivalent to option `--transfer=direct`.
|
1648
|
+
`ascli` will detect locally installed Aspera products, including SDK, and use `ascp` from that component.
|
1526
1649
|
Refer to section [FASP](#client).
|
1527
1650
|
|
1528
|
-
The `
|
1651
|
+
The `transfer_info` option accepts the following optional parameters to control multi-session, Web Socket Session and Resume policy:
|
1529
1652
|
|
1530
1653
|
<table>
|
1531
1654
|
<tr><th>Name</th><th>Type</th><th>Description</th></tr>
|
@@ -1540,7 +1663,7 @@ The `transfer-info` accepts the following optional parameters to control multi-s
|
|
1540
1663
|
<tr><td>resume.sleep_max</td><td>int</td><td>Resume<br/>Default: 60</td></tr>
|
1541
1664
|
</table>
|
1542
1665
|
|
1543
|
-
|
1666
|
+
In case of transfer interruption, the agent will **resume** a transfer up to `iter_max` time.
|
1544
1667
|
Sleep between iterations is:
|
1545
1668
|
|
1546
1669
|
```bash
|
@@ -1548,14 +1671,27 @@ max( sleep_max , sleep_initial * sleep_factor ^ (iter_index-1) )
|
|
1548
1671
|
```
|
1549
1672
|
|
1550
1673
|
Some transfer errors are considered "retryable" (e.g. timeout) and some other not (e.g. wrong password).
|
1674
|
+
The list of known protocol errors and retry level can be listed:
|
1675
|
+
|
1676
|
+
```bash
|
1677
|
+
ascli config ascp errors
|
1678
|
+
```
|
1551
1679
|
|
1552
1680
|
Examples:
|
1553
1681
|
|
1554
1682
|
```javascript
|
1555
|
-
ascli ... --transfer-info=@json:'{"wss":true,"resume":{"iter_max":
|
1683
|
+
ascli ... --transfer-info=@json:'{"wss":true,"resume":{"iter_max":20}}'
|
1556
1684
|
ascli ... --transfer-info=@json:'{"spawn_delay_sec":2.5,"multi_incr_udp":false}'
|
1557
1685
|
```
|
1558
1686
|
|
1687
|
+
Note that the `direct` agent supports additional `transfer_spec` parameters starting with `EX_` (extended).
|
1688
|
+
In particular the field, `EX_ascp_args` which is a list of additional command line options to `ascp`.
|
1689
|
+
|
1690
|
+
This can be useful to activate logging using option `-L` of ascp.
|
1691
|
+
For example the option `--ts=@json:'{"EX_ascp_args":["-DDL-"]}'` will activate debug level 2 for `ascp` (`DD`), and display those logs on the terminal (`-`).
|
1692
|
+
This is useful if the transfer fails.
|
1693
|
+
To store ascp logs in file `aspera-scp-transfer.log` in a folder, use `--ts=@json:'{"EX_ascp_args":["-L","/path/to/folder"]}'`.
|
1694
|
+
|
1559
1695
|
#### <a id="agt_connect"></a>IBM Aspera Connect Client GUI
|
1560
1696
|
|
1561
1697
|
By specifying option: `--transfer=connect`, `ascli` will start transfers using the locally installed Aspera Connect Client. There are no option for `transfer_info`.
|
@@ -1579,7 +1715,7 @@ Like any other option, `transfer_info` can get its value from a pre-configured [
|
|
1579
1715
|
|
1580
1716
|
If `transfer_info` is not specified and a default node has been configured (name in `node` for section `default`) then this node is used by default.
|
1581
1717
|
|
1582
|
-
If the `password` value begins with `Bearer
|
1718
|
+
If the `password` value begins with `Bearer` then the `username` is expected to be an access key and the parameter `root_id` is mandatory and specifies the root file id on the node. It can be either the access key's root file id, or any authorized file id underneath it.
|
1583
1719
|
|
1584
1720
|
#### <a id="agt_httpgw"></a>HTTP Gateway
|
1585
1721
|
|
@@ -1599,6 +1735,19 @@ Another possibility is to use the Transfer SDK daemon (asperatransferd).
|
|
1599
1735
|
|
1600
1736
|
By default it will listen on local port `55002` on `127.0.0.1`.
|
1601
1737
|
|
1738
|
+
The gem `grpc` was removed from dependencies, as it requires compilation of a native part. So, to use the Transfer SDK you should install this gem:
|
1739
|
+
|
1740
|
+
```bash
|
1741
|
+
gem install grpc
|
1742
|
+
```
|
1743
|
+
|
1744
|
+
On Windows the compilation may fail for various reasons (3.1.1):
|
1745
|
+
|
1746
|
+
* `cannot find -lx64-ucrt-ruby310`
|
1747
|
+
→ copy the file `[Ruby main dir]\lib\libx64-ucrt-ruby310.dll.a` to `[Ruby main dir]\lib\libx64-ucrt-ruby310.a` (remove the dll extension)
|
1748
|
+
* `conflicting types for 'gettimeofday'`
|
1749
|
+
→ edit the file `[Ruby main dir]/include/ruby-[version]/ruby/win32.h` and change the signature of `gettimeofday` to `gettimeofday(struct timeval *, void *)` ,i.e. change `struct timezone` to `void`
|
1750
|
+
|
1602
1751
|
### <a id="transferspec"></a>Transfer Specification
|
1603
1752
|
|
1604
1753
|
Some commands lead to file transfer (upload/download), all parameters necessary for this transfer
|
@@ -1651,7 +1800,89 @@ Columns:
|
|
1651
1800
|
|
1652
1801
|
Fields with EX_ prefix are extensions to transfer agent [`direct`](#agt_direct). (only in `ascli`).
|
1653
1802
|
|
1654
|
-
<table><tr><th>Field</th><th>Type</th><th>D</th><th>N</th><th>C</th><th>Description</th></tr><tr><td>cipher</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>In transit encryption type.<br/>Allowed values: none, aes-128, aes-192, aes-256, aes-128-cfb, aes-192-cfb, aes-256-cfb, aes-128-gcm, aes-192-gcm, aes-256-gcm<br/>(-c)</td></tr><tr><td>content_protection</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Enable client-side encryption at rest. (CSEAR, content protection)<br/>Allowed values: encrypt, decrypt<br/>(--file-crypt)</td></tr><tr><td>content_protection_password</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Specifies CSEAR password. (content protection)<br/>(env:ASPERA_SCP_FILEPASS)</td></tr><tr><td>cookie</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Metadata for transfer specified by application<br/>(env:ASPERA_SCP_COOKIE)</td></tr><tr><td>create_dir</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td>Specifies whether to create new directories.<br/>(-d)</td></tr><tr><td>delete_before_transfer</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td>Before transfer, delete files that exist at the destination but not at the source. The source and destination arguments must be directories that have matching names. Objects on the destination that have the same name but different type or size as objects on the source are not deleted.<br/>(--delete-before-transfer)</td></tr><tr><td>delete_source</td><td>bool</td><td>Y</td><td>Y</td><td> </td><td>Remove SRC files after transfer success<br/>(--remove-after-transfer)</td></tr><tr><td>destination_root</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Destination root directory.</td></tr><tr><td>direction</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Direction of transfer (on client side)<br/>Allowed values: send, receive<br/>(--mode)</td></tr><tr><td>exclude_newer_than</td><td>int</td><td>Y</td><td> </td><td> </td><td>skip src files with mtime > arg<br/>(--exclude-newer-than)</td></tr><tr><td>exclude_older_than</td><td>int</td><td>Y</td><td> </td><td> </td><td>skip src files with mtime < arg<br/>(--exclude-older-than)</td></tr><tr><td>fasp_port</td><td>int</td><td>Y</td><td>Y</td><td>Y</td><td>Specifies fasp (UDP) port.<br/>(-O)</td></tr><tr><td>file_checksum</td><td>string</td><td>Y</td><td>Y</td><td> </td><td>Enable checksum reporting for transferred files by specifying the hash to use.<br/>Allowed values: sha-512, sha-384, sha-256, sha1, md5, none</td></tr><tr><td>http_fallback</td><td>bool<br/>string</td><td>Y</td><td>Y</td><td>Y</td><td>When true(1), attempts to perform an HTTP transfer if a FASP transfer cannot be performed.<br/>(-y)</td></tr><tr><td>http_fallback_port</td><td>int</td><td>Y</td><td> </td><td> </td><td>Specifies http port when no cipher is used<br/>(-t)</td></tr><tr><td>https_fallback_port</td><td>int</td><td>Y</td><td>Y</td><td>Y</td><td>Specifies https port when cipher is used<br/>(-t)</td></tr><tr><td>move_after_transfer</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>(--move-after-transfer)</td></tr><tr><td>multi_session</td><td>int</td><td>Y</td><td>Y</td><td>Y</td><td>Use multi-session transfer. max 128.<br/> Each participant on one host needs an independent UDP (-O) port.<br/> Large files are split between sessions only when transferring with resume_policy=none.</td></tr><tr><td>multi_session_threshold</td><td>int</td><td>Y</td><td>Y</td><td> </td><td>Split files across multiple ascp sessions if their size in bytes is greater than or equal to the specified value. (0=no file is split)<br/>(--multi-session-threshold)</td></tr><tr><td>overwrite</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Overwrite destination files with the source files of the same name.<br/>Allowed values: never, always, diff, older, diff+older<br/>(--overwrite)</td></tr><tr><td>paths</td><td>array</td><td>Y</td><td>Y</td><td>Y</td><td>Array of path to the source (required) and a path to the destination (optional).</td></tr><tr><td>precalculate_job_size</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td>Specifies whether to precalculate the job size.<br/>(--precalculate-job-size)</td></tr><tr><td>preserve_access_time</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td>(--preserve-access-time)</td></tr><tr><td>preserve_creation_time</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td>(--preserve-creation-time)</td></tr><tr><td>preserve_modification_time</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td>(--preserve-modification-time)</td></tr><tr><td>preserve_times</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td>(--preserve-times)</td></tr><tr><td>rate_policy</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>The transfer rate policy to use when sharing bandwidth.<br/>Allowed values: low, fair, high, fixed<br/>(--policy)</td></tr><tr><td>remote_host</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>IP or fully qualified domain name of the remote server<br/>(--host)</td></tr><tr><td>remote_user</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Remote user. Default value is "xfer" on node or connect.<br/>(--user)</td></tr><tr><td>remote_password</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>SSH session password<br/>(env:ASPERA_SCP_PASS)</td></tr><tr><td>remove_after_transfer</td><td>bool</td><td>Y</td><td>Y</td><td> </td><td>Remove SRC files after transfer success<br/>(--remove-after-transfer)</td></tr><tr><td>remove_empty_directories</td><td>bool</td><td>Y</td><td>Y</td><td> </td><td>Specifies whether to remove empty directories.<br/>(--remove-empty-directories)</td></tr><tr><td>remove_skipped</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td>Must also have remove_after_transfer set to true, Defaults to false, if true, skipped files will be removed as well.<br/>(--remove-skipped)</td></tr><tr><td>proxy</td><td>string</td><td>Y</td><td> </td><td> </td><td>Specify the address of the Aspera high-speed proxy server.<br/> dnat(s)://[user[:password]@]server:port<br/> Default ports for DNAT and DNATS protocols are 9091 and 9092.<br/> Password, if specified here, overrides the value of environment variable ASPERA_PROXY_PASS.<br/>(--proxy)</td></tr><tr><td>resume_policy</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>If a transfer is interrupted or fails to finish, resume without re-transferring the whole files.<br/>Allowed values: none, attrs, sparse_csum, full_csum<br/>(-k)</td></tr><tr><td>retry_duration</td><td>string<br/>int</td><td> </td><td>Y</td><td>Y</td><td>Specifies how long to wait before retrying transfer. (e.g. "5min")</td></tr><tr><td>source_root_id</td><td>string</td><td> </td><td>Y</td><td> </td><td>The file ID of the source root directory. Required when using Bearer token auth for the source node.</td></tr><tr><td>ssh_port</td><td>int</td><td>Y</td><td>Y</td><td>Y</td><td>Specifies SSH (TCP) port. Default: local:22, other:33001<br/>(-P)</td></tr><tr><td>ssh_private_key</td><td>string</td><td>Y</td><td> </td><td> </td><td>Private key used for SSH authentication.<br/> Shall look like: -----BEGIN RSA PRIV4TE KEY-----\nMII...<br/> Note the JSON encoding: \n for newlines.<br/>(env:ASPERA_SCP_KEY)</td></tr><tr><td>ssh_private_key_passphrase</td><td>string</td><td>Y</td><td> </td><td> </td><td>The passphrase associated with the transfer user's SSH private key. Available as of 3.7.2.<br/>(env:ASPERA_SCP_PASS)</td></tr><tr><td>symlink_policy</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Handle source side symbolic links<br/>Allowed values: follow, copy, copy+force, skip<br/>(--symbolic-links)</td></tr><tr><td>tags</td><td>hash</td><td>Y</td><td>Y</td><td>Y</td><td>Metadata for transfer as JSON<br/>(--tags64)</td></tr><tr><td>target_rate_cap_kbps</td><td>int</td><td> </td><td> </td><td>Y</td><td>Returned by upload/download_setup node API.</td></tr><tr><td>target_rate_kbps</td><td>int</td><td>Y</td><td>Y</td><td>Y</td><td>Specifies desired speed for the transfer.<br/>(-l)</td></tr><tr><td>title</td><td>string</td><td> </td><td>Y</td><td>Y</td><td>Title of the transfer</td></tr><tr><td>token</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Authorization token: Bearer, Basic or ATM (Also arg -W)<br/>(env:ASPERA_SCP_TOKEN)</td></tr><tr><td>use_ascp4</td><td>bool</td><td>Y</td><td>Y</td><td> </td><td>specify version of protocol</td></tr><tr><td>source_root</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Path to be prepended to each source path.<br/> This is either a conventional path or it can be a URI but only if there is no root defined.<br/>(--source-prefix64)</td></tr><tr><td>min_rate_cap_kbps</td><td>int</td><td>Y</td><td>Y</td><td>Y</td><td> </td></tr><tr><td>lock_rate_policy</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td> </td></tr><tr><td>lock_target_rate_kbps</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td> </td></tr><tr><td>lock_min_rate_kbps</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td> </td></tr><tr><td>apply_local_docroot</td><td>bool</td><td>Y</td><td> </td><td> </td><td>(--apply-local-docroot)</td></tr><tr><td>preserve_acls</td><td>string</td><td>Y</td><td> </td><td> </td><td>Preserve access control lists.<br/>Allowed values: none, native, metafile<br/>(--preserve-acls)</td></tr><tr><td>preserve_remote_acls</td><td>string</td><td>Y</td><td> </td><td> </td><td>Preserve remote access control lists.<br/>Allowed values: none, native, metafile<br/>(--remote-preserve-acls)</td></tr><tr><td>preserve_file_owner_uid</td><td>bool</td><td>Y</td><td> </td><td> </td><td>Preserve the user ID for a file owner<br/>(--preserve-file-owner-uid)</td></tr><tr><td>preserve_file_owner_gid</td><td>bool</td><td>Y</td><td> </td><td> </td><td>Preserve the group ID for a file owner<br/>(--preserve-file-owner-gid)</td></tr><tr><td>preserve_source_access_time</td><td>bool</td><td>Y</td><td> </td><td> </td><td>Preserve the time logged for when the source file was accessed<br/>(--preserve-source-access-time)</td></tr><tr><td>remove_empty_source_directory</td><td>bool</td><td>Y</td><td> </td><td> </td><td>Remove empty source subdirectories and remove the source directory itself, if empty<br/>(--remove-empty-source-directory)</td></tr><tr><td>EX_at_rest_password</td><td>string</td><td>Y</td><td> </td><td> </td><td>Passphrase used for at rest encryption or decryption. Prefer to use standard: content_protection_password<br/>(env:ASPERA_SCP_FILEPASS)</td></tr><tr><td>EX_proxy_password</td><td>string</td><td>Y</td><td> </td><td> </td><td>Password used for Aspera proxy server authentication.<br/> May be overridden by password in URL EX_fasp_proxy_url.<br/>(env:ASPERA_PROXY_PASS)</td></tr><tr><td>EX_license_text</td><td>string</td><td>Y</td><td> </td><td> </td><td>License file text override.<br/>By default ascp looks for license file near executable.<br/>(env:ASPERA_SCP_LICENSE)</td></tr><tr><td>dgram_size</td><td>int</td><td>Y</td><td>Y</td><td>Y</td><td>UDP datagram size in bytes<br/>(-Z)</td></tr><tr><td>min_rate_kbps</td><td>int</td><td>Y</td><td>Y</td><td>Y</td><td>Set the minimum transfer rate in kilobits per second.<br/>(-m)</td></tr><tr><td>sshfp</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Check it against server SSH host key fingerprint<br/>(--check-sshfp)</td></tr><tr><td>EX_http_proxy_url</td><td>string</td><td>Y</td><td> </td><td> </td><td>Specify the proxy server address used by HTTP Fallback<br/>(-x)</td></tr><tr><td>EX_ssh_key_paths</td><td>array</td><td>Y</td><td> </td><td> </td><td>Use public key authentication for SSH and specify the private key file paths<br/>(-i)</td></tr><tr><td>EX_http_transfer_jpeg</td><td>int</td><td>Y</td><td> </td><td> </td><td>HTTP transfers as JPEG file<br/>(-j)</td></tr><tr><td>EX_no_read</td><td>bool</td><td>Y</td><td> </td><td> </td><td>no read source<br/>(--no-read)</td></tr><tr><td>EX_no_write</td><td>bool</td><td>Y</td><td> </td><td> </td><td>no write on destination<br/>(--no-write)</td></tr><tr><td>target_rate_percentage</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td> </td></tr><tr><td>rate_policy_allowed</td><td>string</td><td> </td><td> </td><td>Y</td><td>Specifies most aggressive rate policy that is allowed.<br/>Returned by node API.<br/>Allowed values: low, fair, high, fixed</td></tr><tr><td>lock_min_rate</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td> </td></tr><tr><td>lock_target_rate</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td> </td></tr><tr><td>authentication</td><td>string</td><td> </td><td> </td><td>Y</td><td>value=token for SSH bypass keys, else password asked if not provided.</td></tr><tr><td>cipher_allowed</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>returned by node API. Valid literals include "aes-128" and "none".</td></tr><tr><td>EX_file_list</td><td>string</td><td>Y</td><td> </td><td> </td><td>source file list</td></tr><tr><td>EX_file_pair_list</td><td>string</td><td>Y</td><td> </td><td> </td><td>source file pair list</td></tr><tr><td>EX_ascp_args</td><td>array</td><td>Y</td><td> </td><td> </td><td>Add native command line arguments to ascp</td></tr><tr><td>wss_enabled</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td> </td></tr><tr><td>wss_port</td><td>int</td><td>Y</td><td>Y</td><td>Y</td><td>TCP port used for websocket service feed.</td></tr></table>
|
1803
|
+
<table><tr><th>Field</th><th>Type</th><th>D</th><th>N</th><th>C</th><th>Description</th></tr>
|
1804
|
+
<tr><td>EX_ascp_args</td><td>array</td><td>Y</td><td> </td><td> </td><td>Add native command line arguments to ascp</td></tr>
|
1805
|
+
<tr><td>EX_at_rest_password</td><td>string</td><td>Y</td><td> </td><td> </td><td>Passphrase used for at rest encryption or decryption. Prefer to use standard: content_protection_password<br/>(env:ASPERA_SCP_FILEPASS)</td></tr>
|
1806
|
+
<tr><td>EX_file_list</td><td>string</td><td>Y</td><td> </td><td> </td><td>source file list</td></tr>
|
1807
|
+
<tr><td>EX_file_pair_list</td><td>string</td><td>Y</td><td> </td><td> </td><td>source file pair list</td></tr>
|
1808
|
+
<tr><td>EX_http_proxy_url</td><td>string</td><td>Y</td><td> </td><td> </td><td>Specify the proxy server address used by HTTP Fallback<br/>(-x)</td></tr>
|
1809
|
+
<tr><td>EX_http_transfer_jpeg</td><td>int</td><td>Y</td><td> </td><td> </td><td>HTTP transfers as JPEG file<br/>(-j)</td></tr>
|
1810
|
+
<tr><td>EX_license_text</td><td>string</td><td>Y</td><td> </td><td> </td><td>License file text override.<br/>By default ascp looks for license file near executable.<br/>(env:ASPERA_SCP_LICENSE)</td></tr>
|
1811
|
+
<tr><td>EX_no_read</td><td>bool</td><td>Y</td><td> </td><td> </td><td>no read source<br/>(--no-read)</td></tr>
|
1812
|
+
<tr><td>EX_no_write</td><td>bool</td><td>Y</td><td> </td><td> </td><td>no write on destination<br/>(--no-write)</td></tr>
|
1813
|
+
<tr><td>EX_proxy_password</td><td>string</td><td>Y</td><td> </td><td> </td><td>Password used for Aspera proxy server authentication.<br/> May be overridden by password in URL EX_fasp_proxy_url.<br/>(env:ASPERA_PROXY_PASS)</td></tr>
|
1814
|
+
<tr><td>EX_ssh_key_paths</td><td>array</td><td>Y</td><td> </td><td> </td><td>Use public key authentication for SSH and specify the private key file paths<br/>(-i)</td></tr>
|
1815
|
+
<tr><td>apply_local_docroot</td><td>bool</td><td>Y</td><td> </td><td> </td><td>(--apply-local-docroot)</td></tr>
|
1816
|
+
<tr><td>authentication</td><td>string</td><td> </td><td> </td><td>Y</td><td>value=token for SSH bypass keys, else password asked if not provided.</td></tr>
|
1817
|
+
<tr><td>cipher</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>In transit encryption type.<br/>Allowed values: none, aes-128, aes-192, aes-256, aes-128-cfb, aes-192-cfb, aes-256-cfb, aes-128-gcm, aes-192-gcm, aes-256-gcm<br/>(-c)</td></tr>
|
1818
|
+
<tr><td>cipher_allowed</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>returned by node API. Valid literals include "aes-128" and "none".</td></tr>
|
1819
|
+
<tr><td>content_protection</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Enable client-side encryption at rest. (CSEAR, content protection)<br/>Allowed values: encrypt, decrypt<br/>(--file-crypt)</td></tr>
|
1820
|
+
<tr><td>content_protection_password</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Specifies CSEAR password. (content protection)<br/>(env:ASPERA_SCP_FILEPASS)</td></tr>
|
1821
|
+
<tr><td>cookie</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Metadata for transfer specified by application<br/>(env:ASPERA_SCP_COOKIE)</td></tr>
|
1822
|
+
<tr><td>create_dir</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td>Specifies whether to create new directories.<br/>(-d)</td></tr>
|
1823
|
+
<tr><td>delete_before_transfer</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td>Before transfer, delete files that exist at the destination but not at the source. The source and destination arguments must be directories that have matching names. Objects on the destination that have the same name but different type or size as objects on the source are not deleted.<br/>(--delete-before-transfer)</td></tr>
|
1824
|
+
<tr><td>delete_source</td><td>bool</td><td>Y</td><td>Y</td><td> </td><td>Remove SRC files after transfer success<br/>(--remove-after-transfer)</td></tr>
|
1825
|
+
<tr><td>destination_root</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Destination root directory.</td></tr>
|
1826
|
+
<tr><td>dgram_size</td><td>int</td><td>Y</td><td>Y</td><td>Y</td><td>UDP datagram size in bytes<br/>(-Z)</td></tr>
|
1827
|
+
<tr><td>direction</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Direction of transfer (on client side)<br/>Allowed values: send, receive<br/>(--mode)</td></tr>
|
1828
|
+
<tr><td>exclude_newer_than</td><td>int</td><td>Y</td><td> </td><td> </td><td>skip src files with mtime > arg<br/>(--exclude-newer-than)</td></tr>
|
1829
|
+
<tr><td>exclude_older_than</td><td>int</td><td>Y</td><td> </td><td> </td><td>skip src files with mtime < arg<br/>(--exclude-older-than)</td></tr>
|
1830
|
+
<tr><td>fasp_port</td><td>int</td><td>Y</td><td>Y</td><td>Y</td><td>Specifies fasp (UDP) port.<br/>(-O)</td></tr>
|
1831
|
+
<tr><td>file_checksum</td><td>string</td><td>Y</td><td>Y</td><td> </td><td>Enable checksum reporting for transferred files by specifying the hash to use.<br/>Allowed values: sha-512, sha-384, sha-256, sha1, md5, none</td></tr>
|
1832
|
+
<tr><td>http_fallback</td><td>bool<br/>string</td><td>Y</td><td>Y</td><td>Y</td><td>When true(1), attempts to perform an HTTP transfer if a FASP transfer cannot be performed.<br/>(-y)</td></tr>
|
1833
|
+
<tr><td>http_fallback_port</td><td>int</td><td>Y</td><td> </td><td> </td><td>Specifies http port when no cipher is used<br/>(-t)</td></tr>
|
1834
|
+
<tr><td>https_fallback_port</td><td>int</td><td>Y</td><td>Y</td><td>Y</td><td>Specifies https port when cipher is used<br/>(-t)</td></tr>
|
1835
|
+
<tr><td>lock_min_rate</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td> </td></tr>
|
1836
|
+
<tr><td>lock_min_rate_kbps</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td> </td></tr>
|
1837
|
+
<tr><td>lock_rate_policy</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td> </td></tr>
|
1838
|
+
<tr><td>lock_target_rate</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td> </td></tr>
|
1839
|
+
<tr><td>lock_target_rate_kbps</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td> </td></tr>
|
1840
|
+
<tr><td>min_rate_cap_kbps</td><td>int</td><td>Y</td><td>Y</td><td>Y</td><td> </td></tr>
|
1841
|
+
<tr><td>min_rate_kbps</td><td>int</td><td>Y</td><td>Y</td><td>Y</td><td>Set the minimum transfer rate in kilobits per second.<br/>(-m)</td></tr>
|
1842
|
+
<tr><td>move_after_transfer</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>(--move-after-transfer)</td></tr>
|
1843
|
+
<tr><td>multi_session</td><td>int</td><td>Y</td><td>Y</td><td>Y</td><td>Use multi-session transfer. max 128.<br/> Each participant on one host needs an independent UDP (-O) port.<br/> Large files are split between sessions only when transferring with resume_policy=none.</td></tr>
|
1844
|
+
<tr><td>multi_session_threshold</td><td>int</td><td>Y</td><td>Y</td><td> </td><td>Split files across multiple ascp sessions if their size in bytes is greater than or equal to the specified value. (0=no file is split)<br/>(--multi-session-threshold)</td></tr>
|
1845
|
+
<tr><td>overwrite</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Overwrite destination files with the source files of the same name.<br/>Allowed values: never, always, diff, older, diff+older<br/>(--overwrite)</td></tr>
|
1846
|
+
<tr><td>paths</td><td>array</td><td>Y</td><td>Y</td><td>Y</td><td>Array of path to the source (required) and a path to the destination (optional).</td></tr>
|
1847
|
+
<tr><td>precalculate_job_size</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td>Specifies whether to precalculate the job size.<br/>(--precalculate-job-size)</td></tr>
|
1848
|
+
<tr><td>preserve_access_time</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td>(--preserve-access-time)</td></tr>
|
1849
|
+
<tr><td>preserve_acls</td><td>string</td><td>Y</td><td> </td><td> </td><td>Preserve access control lists.<br/>Allowed values: none, native, metafile<br/>(--preserve-acls)</td></tr>
|
1850
|
+
<tr><td>preserve_creation_time</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td>(--preserve-creation-time)</td></tr>
|
1851
|
+
<tr><td>preserve_file_owner_gid</td><td>bool</td><td>Y</td><td> </td><td> </td><td>Preserve the group ID for a file owner<br/>(--preserve-file-owner-gid)</td></tr>
|
1852
|
+
<tr><td>preserve_file_owner_uid</td><td>bool</td><td>Y</td><td> </td><td> </td><td>Preserve the user ID for a file owner<br/>(--preserve-file-owner-uid)</td></tr>
|
1853
|
+
<tr><td>preserve_modification_time</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td>(--preserve-modification-time)</td></tr>
|
1854
|
+
<tr><td>preserve_remote_acls</td><td>string</td><td>Y</td><td> </td><td> </td><td>Preserve remote access control lists.<br/>Allowed values: none, native, metafile<br/>(--remote-preserve-acls)</td></tr>
|
1855
|
+
<tr><td>preserve_source_access_time</td><td>bool</td><td>Y</td><td> </td><td> </td><td>Preserve the time logged for when the source file was accessed<br/>(--preserve-source-access-time)</td></tr>
|
1856
|
+
<tr><td>preserve_times</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td>(--preserve-times)</td></tr>
|
1857
|
+
<tr><td>proxy</td><td>string</td><td>Y</td><td> </td><td> </td><td>Specify the address of the Aspera high-speed proxy server.<br/> dnat(s)://[user[:password]@]server:port<br/> Default ports for DNAT and DNATS protocols are 9091 and 9092.<br/> Password, if specified here, overrides the value of environment variable ASPERA_PROXY_PASS.<br/>(--proxy)</td></tr>
|
1858
|
+
<tr><td>rate_policy</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>The transfer rate policy to use when sharing bandwidth.<br/>Allowed values: low, fair, high, fixed<br/>(--policy)</td></tr>
|
1859
|
+
<tr><td>rate_policy_allowed</td><td>string</td><td> </td><td> </td><td>Y</td><td>Specifies most aggressive rate policy that is allowed.<br/>Returned by node API.<br/>Allowed values: low, fair, high, fixed</td></tr>
|
1860
|
+
<tr><td>remote_host</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>IP or fully qualified domain name of the remote server<br/>(--host)</td></tr>
|
1861
|
+
<tr><td>remote_password</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>SSH session password<br/>(env:ASPERA_SCP_PASS)</td></tr>
|
1862
|
+
<tr><td>remote_user</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Remote user. Default value is "xfer" on node or connect.<br/>(--user)</td></tr>
|
1863
|
+
<tr><td>remove_after_transfer</td><td>bool</td><td>Y</td><td>Y</td><td> </td><td>Remove SRC files after transfer success<br/>(--remove-after-transfer)</td></tr>
|
1864
|
+
<tr><td>remove_empty_directories</td><td>bool</td><td>Y</td><td>Y</td><td> </td><td>Specifies whether to remove empty directories.<br/>(--remove-empty-directories)</td></tr>
|
1865
|
+
<tr><td>remove_empty_source_directory</td><td>bool</td><td>Y</td><td> </td><td> </td><td>Remove empty source subdirectories and remove the source directory itself, if empty<br/>(--remove-empty-source-directory)</td></tr>
|
1866
|
+
<tr><td>remove_skipped</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td>Must also have remove_after_transfer set to true, Defaults to false, if true, skipped files will be removed as well.<br/>(--remove-skipped)</td></tr>
|
1867
|
+
<tr><td>resume_policy</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>If a transfer is interrupted or fails to finish, resume without re-transferring the whole files.<br/>Allowed values: none, attrs, sparse_csum, full_csum<br/>(-k)</td></tr>
|
1868
|
+
<tr><td>retry_duration</td><td>string<br/>int</td><td> </td><td>Y</td><td>Y</td><td>Specifies how long to wait before retrying transfer. (e.g. "5min")</td></tr>
|
1869
|
+
<tr><td>source_root</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Path to be prepended to each source path.<br/> This is either a conventional path or it can be a URI but only if there is no root defined.<br/>(--source-prefix64)</td></tr>
|
1870
|
+
<tr><td>source_root_id</td><td>string</td><td> </td><td>Y</td><td> </td><td>The file ID of the source root directory. Required when using Bearer token auth for the source node.</td></tr>
|
1871
|
+
<tr><td>ssh_port</td><td>int</td><td>Y</td><td>Y</td><td>Y</td><td>Specifies SSH (TCP) port. Default: local:22, other:33001<br/>(-P)</td></tr>
|
1872
|
+
<tr><td>ssh_private_key</td><td>string</td><td>Y</td><td> </td><td> </td><td>Private key used for SSH authentication.<br/> Shall look like: -----BEGIN RSA PRIV4TE KEY-----\nMII...<br/> Note the JSON encoding: \n for newlines.<br/>(env:ASPERA_SCP_KEY)</td></tr>
|
1873
|
+
<tr><td>ssh_private_key_passphrase</td><td>string</td><td>Y</td><td> </td><td> </td><td>The passphrase associated with the transfer user's SSH private key. Available as of 3.7.2.<br/>(env:ASPERA_SCP_PASS)</td></tr>
|
1874
|
+
<tr><td>sshfp</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Check it against server SSH host key fingerprint<br/>(--check-sshfp)</td></tr>
|
1875
|
+
<tr><td>symlink_policy</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Handle source side symbolic links<br/>Allowed values: follow, copy, copy+force, skip<br/>(--symbolic-links)</td></tr>
|
1876
|
+
<tr><td>tags</td><td>hash</td><td>Y</td><td>Y</td><td>Y</td><td>Metadata for transfer as JSON<br/>(--tags64)</td></tr>
|
1877
|
+
<tr><td>target_rate_cap_kbps</td><td>int</td><td> </td><td> </td><td>Y</td><td>Returned by upload/download_setup node API.</td></tr>
|
1878
|
+
<tr><td>target_rate_kbps</td><td>int</td><td>Y</td><td>Y</td><td>Y</td><td>Specifies desired speed for the transfer.<br/>(-l)</td></tr>
|
1879
|
+
<tr><td>target_rate_percentage</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td> </td></tr>
|
1880
|
+
<tr><td>title</td><td>string</td><td> </td><td>Y</td><td>Y</td><td>Title of the transfer</td></tr>
|
1881
|
+
<tr><td>token</td><td>string</td><td>Y</td><td>Y</td><td>Y</td><td>Authorization token: Bearer, Basic or ATM (Also arg -W)<br/>(env:ASPERA_SCP_TOKEN)</td></tr>
|
1882
|
+
<tr><td>use_ascp4</td><td>bool</td><td>Y</td><td>Y</td><td> </td><td>specify version of protocol</td></tr>
|
1883
|
+
<tr><td>wss_enabled</td><td>bool</td><td>Y</td><td>Y</td><td>Y</td><td> </td></tr>
|
1884
|
+
<tr><td>wss_port</td><td>int</td><td>Y</td><td>Y</td><td>Y</td><td>TCP port used for websocket service feed.</td></tr>
|
1885
|
+
</table>
|
1655
1886
|
|
1656
1887
|
#### Destination folder for transfers
|
1657
1888
|
|
@@ -1721,7 +1952,9 @@ providing a file list directly to ascp:
|
|
1721
1952
|
--sources=@ts --ts=@json:'{"paths":[{"source":"dummy"}],"EX_ascp_args":["--file-list","myfilelist"]}'
|
1722
1953
|
```
|
1723
1954
|
|
1724
|
-
This method avoids creating a copy of the file list, but has drawbacks: it applies *only* to the [`direct`](#agt_direct) transfer agent (i.e.
|
1955
|
+
This method avoids creating a copy of the file list, but has drawbacks: it applies *only* to the [`direct`](#agt_direct) transfer agent (i.e. local `ascp`) and not for Aspera on Cloud.
|
1956
|
+
One must specify a dummy list in the [*transfer-spec*](#transferspec), which will be overridden by the `ascp` command line provided.
|
1957
|
+
(TODO) In next version, dummy source paths can be removed.
|
1725
1958
|
|
1726
1959
|
In case the file list is provided on the command line i.e. using `--sources=@args` or `--sources=<Array>` (but not `--sources=@ts`), then the list of files will be used either as a simple file list or a file pair list depending on the value of the option: `src_type`:
|
1727
1960
|
|
@@ -1978,306 +2211,39 @@ ascli server upload /tmp/sample --to-folder=faux://
|
|
1978
2211
|
ascli server upload "faux:///mydir?file=testfile&count=1m&size=0&inc=2&seq=sequential" --to-folder=/Upload
|
1979
2212
|
```
|
1980
2213
|
|
1981
|
-
### <a id="commands"></a>Sample Commands
|
1982
|
-
|
1983
|
-
A non complete list of commands used in unit tests:
|
1984
|
-
|
1985
|
-
```bash
|
1986
|
-
ascli
|
1987
|
-
ascli -h
|
1988
|
-
ascli aoc -N remind --username=my_aoc_user_email
|
1989
|
-
ascli aoc -N servers
|
1990
|
-
ascli aoc admin analytics transfers --query=@json:'{"status":"completed","direction":"receive"}' --notif-to=my_recipient_email --notif-template=@ruby:'%Q{From: <%=from_name%> <<%=from_email%>>\nTo: <<%=to%>>\nSubject: <%=ev["files_completed"]%> files received\n\n<%=ev.to_yaml%>}'
|
1991
|
-
ascli aoc admin ats access_key create --cloud=aws --region=my_aws_bucket_region --params=@json:'{"id":"ak_aws","name":"my test key AWS","storage":{"type":"aws_s3","bucket":"my_aws_bucket_name","credentials":{"access_key_id":"my_aws_bucket_key","secret_access_key":"my_aws_bucket_secret"},"path":"/"}}'
|
1992
|
-
ascli aoc admin ats access_key create --cloud=softlayer --region=my_icos_bucket_region --params=@json:'{"id":"akibmcloud","secret":"somesecret","name":"my test key","storage":{"type":"ibm-s3","bucket":"my_icos_bucket_name","credentials":{"access_key_id":"my_icos_bucket_key","secret_access_key":"my_icos_bucket_secret"},"path":"/"}}'
|
1993
|
-
ascli aoc admin ats access_key delete akibmcloud
|
1994
|
-
ascli aoc admin ats access_key list --fields=name,id
|
1995
|
-
ascli aoc admin ats access_key node akibmcloud --secret=somesecret browse /
|
1996
|
-
ascli aoc admin ats cluster clouds
|
1997
|
-
ascli aoc admin ats cluster list
|
1998
|
-
ascli aoc admin ats cluster show --cloud=aws --region=eu-west-1
|
1999
|
-
ascli aoc admin ats cluster show 1f412ae7-869a-445c-9c05-02ad16813be2
|
2000
|
-
ascli aoc admin res application list
|
2001
|
-
ascli aoc admin res client list
|
2002
|
-
ascli aoc admin res client_access_key list
|
2003
|
-
ascli aoc admin res client_registration_token create @json:'{"data":{"name":"test_client_reg1","client_subject_scopes":["alee","aejd"],"client_subject_enabled":true}}'
|
2004
|
-
ascli aoc admin res client_registration_token delete my_clt_reg_id
|
2005
|
-
ascli aoc admin res client_registration_token list
|
2006
|
-
ascli aoc admin res contact list
|
2007
|
-
ascli aoc admin res dropbox list
|
2008
|
-
ascli aoc admin res dropbox_membership list
|
2009
|
-
ascli aoc admin res group list
|
2010
|
-
ascli aoc admin res kms_profile list
|
2011
|
-
ascli aoc admin res node list
|
2012
|
-
ascli aoc admin res operation list
|
2013
|
-
ascli aoc admin res organization show
|
2014
|
-
ascli aoc admin res package list --http-options=@json:'{"read_timeout":120.0}'
|
2015
|
-
ascli aoc admin res saml_configuration list
|
2016
|
-
ascli aoc admin res self show
|
2017
|
-
ascli aoc admin res short_link list
|
2018
|
-
ascli aoc admin res user list
|
2019
|
-
ascli aoc admin res workspace_membership list
|
2020
|
-
ascli aoc admin resource node --name=my_aoc_node1_name --secret=my_aoc_node1_secret v3 access_key create --value=@json:'{"id":"testsub1","storage":{"path":"/folder1"}}'
|
2021
|
-
ascli aoc admin resource node --name=my_aoc_node1_name --secret=my_aoc_node1_secret v3 events
|
2022
|
-
ascli aoc admin resource node --name=my_aoc_node1_name --secret=my_aoc_node1_secret v4 browse /
|
2023
|
-
ascli aoc admin resource node --name=my_aoc_node1_name --secret=my_aoc_node1_secret v4 delete /folder1
|
2024
|
-
ascli aoc admin resource node --name=my_aoc_node1_name --secret=my_aoc_node1_secret v4 mkdir /folder1
|
2025
|
-
ascli aoc admin resource node v3 name my_aoc_node1_name --secret=my_aoc_node1_secret access_key delete testsub1
|
2026
|
-
ascli aoc admin resource workspace list
|
2027
|
-
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"}'
|
2028
|
-
ascli aoc automation workflow action my_wf_id create --value=@json:'{"name":"toto"}'
|
2029
|
-
ascli aoc automation workflow create --value=@json:'{"name":"test_workflow"}'
|
2030
|
-
ascli aoc automation workflow delete my_wf_id
|
2031
|
-
ascli aoc automation workflow list
|
2032
|
-
ascli aoc automation workflow list --select=@json:'{"name":"test_workflow"}' --fields=id --format=csv --display=data
|
2033
|
-
ascli aoc automation workflow list --value=@json:'{"show_org_workflows":"true"}' --scope=admin:all
|
2034
|
-
ascli aoc bearer_token --display=data --scope=user:all
|
2035
|
-
ascli aoc faspex
|
2036
|
-
ascli aoc files bearer /
|
2037
|
-
ascli aoc files bearer_token_node / --cache-tokens=no
|
2038
|
-
ascli aoc files browse /
|
2039
|
-
ascli aoc files browse / -N --link=my_aoc_publink_folder
|
2040
|
-
ascli aoc files delete /testsrc
|
2041
|
-
ascli aoc files download --transfer=connect /200KB.1
|
2042
|
-
ascli aoc files file show my_file_id
|
2043
|
-
ascli aoc files find / --value='\.partial$'
|
2044
|
-
ascli aoc files http_node_download --to-folder=. /200KB.1
|
2045
|
-
ascli aoc files mkdir /testsrc
|
2046
|
-
ascli aoc files rename /somefolder testdst
|
2047
|
-
ascli aoc files short_link create --to-folder=/testdst --value=private
|
2048
|
-
ascli aoc files short_link create --to-folder=/testdst --value=public
|
2049
|
-
ascli aoc files short_link list --value=@json:'{"purpose":"shared_folder_auth_link"}'
|
2050
|
-
ascli aoc files transfer --from-folder=/testsrc --to-folder=/testdst testfile.bin
|
2051
|
-
ascli aoc files upload --to-folder=/testsrc testfile.bin
|
2052
|
-
ascli aoc files upload -N --to-folder=/ testfile.bin --link=my_aoc_publink_folder
|
2053
|
-
ascli aoc files upload Test.pdf --transfer=node --transfer-info=@json:@stdin:
|
2054
|
-
ascli aoc files v3 info
|
2055
|
-
ascli aoc org -N --link=my_aoc_publink_recv_from_aocuser
|
2056
|
-
ascli aoc organization
|
2057
|
-
ascli aoc packages list
|
2058
|
-
ascli aoc packages list --query=@json:'{"dropbox_name":"my_aoc_shbx_name","sort":"-received_at","archived":false,"received":true,"has_content":true,"exclude_dropbox_packages":false}'
|
2059
|
-
ascli aoc packages recv "my_package_id" --to-folder=.
|
2060
|
-
ascli aoc packages recv ALL --to-folder=. --once-only=yes --lock-port=12345
|
2061
|
-
ascli aoc packages send --value=@json:'{"name":"Important files delivery","recipients":["my_email_external_user"]}' --new-user-option=@json:'{"package_contact":true}' testfile.bin
|
2062
|
-
ascli aoc packages send --value=@json:'{"name":"Important files delivery","recipients":["my_email_internal_user"],"note":"my note"}' testfile.bin
|
2063
|
-
ascli aoc packages send --workspace="my_aoc_shbx_ws" --value=@json:'{"name":"Important files delivery","recipients":["my_aoc_shbx_name"],"metadata":[{"input_type":"single-text","name":"Project Id","values":["123"]},{"input_type":"single-dropdown","name":"Type","values":["Opt2"]},{"input_type":"multiple-checkbox","name":"CheckThose","values":["Check1","Check2"]},{"input_type":"date","name":"Optional Date","values":["2021-01-13T15:02:00.000Z"]}]}' testfile.bin
|
2064
|
-
ascli aoc packages send --workspace="my_aoc_shbx_ws" --value=@json:'{"name":"Important files delivery","recipients":["my_aoc_shbx_name"],"metadata":{"Project Id":"456","Type":"Opt2","CheckThose":["Check1","Check2"],"Optional Date":"2021-01-13T15:02:00.000Z"}}' testfile.bin
|
2065
|
-
ascli aoc packages send --workspace="my_aoc_shbx_ws" --value=@json:'{"name":"Important files delivery","recipients":["my_aoc_shbx_name"]}' testfile.bin
|
2066
|
-
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
|
2067
|
-
ascli aoc packages send -N --value=@json:'{"name":"Important files delivery"}' testfile.bin --link=my_aoc_publink_send_shd_inbox
|
2068
|
-
ascli aoc packages shared_inboxes list
|
2069
|
-
ascli aoc user profile modify @json:'{"name":"dummy change"}'
|
2070
|
-
ascli aoc user profile show
|
2071
|
-
ascli aoc user workspaces current
|
2072
|
-
ascli aoc user workspaces list
|
2073
|
-
ascli ats access_key cluster akibmcloud --secret=somesecret
|
2074
|
-
ascli ats access_key create --cloud=aws --region=my_aws_bucket_region --params=@json:'{"id":"ak_aws","name":"my test key AWS","storage":{"type":"aws_s3","bucket":"my_aws_bucket_name","credentials":{"access_key_id":"my_aws_bucket_key","secret_access_key":"my_aws_bucket_secret"},"path":"/"}}'
|
2075
|
-
ascli ats access_key create --cloud=softlayer --region=my_icos_bucket_region --params=@json:'{"id":"akibmcloud","secret":"somesecret","name":"my test key","storage":{"type":"ibm-s3","bucket":"my_icos_bucket_name","credentials":{"access_key_id":"my_icos_bucket_key","secret_access_key":"my_icos_bucket_secret"},"path":"/"}}'
|
2076
|
-
ascli ats access_key delete ak_aws
|
2077
|
-
ascli ats access_key delete akibmcloud
|
2078
|
-
ascli ats access_key list --fields=name,id
|
2079
|
-
ascli ats access_key node akibmcloud browse / --secret=somesecret
|
2080
|
-
ascli ats api_key create
|
2081
|
-
ascli ats api_key instances
|
2082
|
-
ascli ats api_key list
|
2083
|
-
ascli ats cluster clouds
|
2084
|
-
ascli ats cluster list
|
2085
|
-
ascli ats cluster show --cloud=aws --region=eu-west-1
|
2086
|
-
ascli ats cluster show 1f412ae7-869a-445c-9c05-02ad16813be2
|
2087
|
-
ascli conf flush_tokens
|
2088
|
-
ascli conf wiz --url=https://my_aoc_org.ibmaspera.com --config-file=SAMPLE_CONFIG_FILE --pkeypath= --username=my_aoc_user_email --test-mode=yes
|
2089
|
-
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
|
2090
|
-
ascli config ascp connect info 'Aspera Connect for Windows'
|
2091
|
-
ascli config ascp connect list
|
2092
|
-
ascli config ascp connect version 'Aspera Connect for Windows' download 'Windows Installer' --to-folder=.
|
2093
|
-
ascli config ascp connect version 'Aspera Connect for Windows' list
|
2094
|
-
ascli config ascp connect version 'Aspera Connect for Windows' open documentation
|
2095
|
-
ascli config ascp errors
|
2096
|
-
ascli config ascp info
|
2097
|
-
ascli config ascp install
|
2098
|
-
ascli config ascp products list
|
2099
|
-
ascli config ascp show
|
2100
|
-
ascli config ascp spec
|
2101
|
-
ascli config check_update
|
2102
|
-
ascli config detect --url=https://my_aoc_org.ibmaspera.com
|
2103
|
-
ascli config detect --url=my_faspex_url
|
2104
|
-
ascli config doc
|
2105
|
-
ascli config doc transfer-parameters
|
2106
|
-
ascli config email_test --notif-to=my_recipient_email
|
2107
|
-
ascli config export
|
2108
|
-
ascli config genkey mykey
|
2109
|
-
ascli config plugin create mycommand T
|
2110
|
-
ascli config plugin list
|
2111
|
-
ascli config proxy_check --fpac=@file:examples/proxy.pac https://eudemo.asperademo.com
|
2112
|
-
ascli console transfer current list
|
2113
|
-
ascli console transfer smart list
|
2114
|
-
ascli console transfer smart sub my_job_id @json:'{"source":{"paths":["my_file_name"]},"source_type":"user_selected"}'
|
2115
|
-
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
|
2116
|
-
ascli cos -N --bucket=my_icos_bucket_name --region=my_icos_bucket_region --service-credentials=@json:@file:service_creds.json node info
|
2117
|
-
ascli cos node access_key show self
|
2118
|
-
ascli cos node download testfile.bin --to-folder=.
|
2119
|
-
ascli cos node info
|
2120
|
-
ascli cos node upload testfile.bin
|
2121
|
-
ascli faspex dropbox list --recipient="*my_faspex_dbx"
|
2122
|
-
ascli faspex dropbox list --recipient="*my_faspex_wkg"
|
2123
|
-
ascli faspex health
|
2124
|
-
ascli faspex package list
|
2125
|
-
ascli faspex package list --box=sent --fields=package_id --format=csv --display=data --query=@json:'{"max":1}'
|
2126
|
-
ascli faspex package list --fields=package_id --format=csv --display=data --query=@json:'{"max":1}'
|
2127
|
-
ascli faspex package list --recipient="*my_faspex_dbx" --format=csv --fields=package_id --query=@json:'{"max":1}'
|
2128
|
-
ascli faspex package list --recipient="*my_faspex_wkg" --format=csv --fields=package_id --query=@json:'{"max":1}'
|
2129
|
-
ascli faspex package recv "my_package_id" --to-folder=.
|
2130
|
-
ascli faspex package recv "my_package_id" --to-folder=. --box=sent
|
2131
|
-
ascli faspex package recv --to-folder=. --link="my_faspex_publink_recv_from_fxuser"
|
2132
|
-
ascli faspex package recv ALL --to-folder=. --once-only=yes
|
2133
|
-
ascli faspex package recv my_pkgid --recipient="*my_faspex_dbx" --to-folder=.
|
2134
|
-
ascli faspex package recv my_pkgid --recipient="*my_faspex_wkg" --to-folder=.
|
2135
|
-
ascli faspex package send --delivery-info=@json:'{"title":"Important files delivery","recipients":["*my_faspex_dbx"]}' testfile.bin
|
2136
|
-
ascli faspex package send --delivery-info=@json:'{"title":"Important files delivery","recipients":["*my_faspex_wkg"]}' testfile.bin
|
2137
|
-
ascli faspex package send --delivery-info=@json:'{"title":"Important files delivery","recipients":["my_email_internal_user","my_faspex_username"]}' testfile.bin
|
2138
|
-
ascli faspex package send --link="my_faspex_publink_send_to_dropbox" --delivery-info=@json:'{"title":"Important files delivery"}' testfile.bin
|
2139
|
-
ascli faspex package send --link="my_faspex_publink_send_to_fxuser" --delivery-info=@json:'{"title":"Important files delivery"}' testfile.bin
|
2140
|
-
ascli faspex source name "Server Files" node br /
|
2141
|
-
ascli faspex v4 dmembership list
|
2142
|
-
ascli faspex v4 dropbox list
|
2143
|
-
ascli faspex v4 metadata_profile list
|
2144
|
-
ascli faspex v4 user list
|
2145
|
-
ascli faspex v4 wmembership list
|
2146
|
-
ascli faspex v4 workgroup list
|
2147
|
-
ascli faspex5 admin res accounts list
|
2148
|
-
ascli faspex5 admin res contacts list
|
2149
|
-
ascli faspex5 admin res jobs list
|
2150
|
-
ascli faspex5 admin res node list --value=@json:'{"type":"received","subtype":"mypackages"}'
|
2151
|
-
ascli faspex5 admin res oauth_clients list
|
2152
|
-
ascli faspex5 admin res registrations list
|
2153
|
-
ascli faspex5 admin res saml_configs list
|
2154
|
-
ascli faspex5 admin res shared_inboxes list
|
2155
|
-
ascli faspex5 admin res workgroups list
|
2156
|
-
ascli faspex5 package list --value=@json:'{"mailbox":"inbox","state":["released"]}'
|
2157
|
-
ascli faspex5 package receive "my_package_id" --to-folder=.
|
2158
|
-
ascli faspex5 package send --value=@json:'{"title":"test title","recipients":[{"name":"my_f5_user"}]}' testfile.bin
|
2159
|
-
ascli mycommand --plugin-folder=T
|
2160
|
-
ascli node -N -Ptst_node_preview access_key create --value=@json:'{"id":"aoc_1","storage":{"type":"local","path":"/"}}'
|
2161
|
-
ascli node -N -Ptst_node_preview access_key delete aoc_1
|
2162
|
-
ascli node async bandwidth 1
|
2163
|
-
ascli node async counters 1
|
2164
|
-
ascli node async files 1
|
2165
|
-
ascli node async list
|
2166
|
-
ascli node async show 1
|
2167
|
-
ascli node async show ALL
|
2168
|
-
ascli node basic_token
|
2169
|
-
ascli node browse / -r
|
2170
|
-
ascli node delete folder_1/10MB.1
|
2171
|
-
ascli node delete testfile.bin
|
2172
|
-
ascli node download testfile.bin --to-folder=.
|
2173
|
-
ascli node download testfile.bin --to-folder=. --token-type=hybrid
|
2174
|
-
ascli node health
|
2175
|
-
ascli node info --fpac='function FindProxyForURL(url,host){return "DIRECT"}'
|
2176
|
-
ascli node search / --value=@json:'{"sort":"mtime"}'
|
2177
|
-
ascli node service create @json:'{"id":"service1","type":"WATCHD","run_as":{"user":"user1"}}'
|
2178
|
-
ascli node service delete service1
|
2179
|
-
ascli node service list
|
2180
|
-
ascli node transfer list --value=@json:'{"active_only":true}'
|
2181
|
-
ascli node upload --to-folder="folder_1" --sources=@ts --ts=@json:'{"paths":[{"source":"/aspera-test-dir-small/10MB.1"}],"precalculate_job_size":true}' --transfer=node --transfer-info=@json:'{"url":"my_node_url","username":"my_node_user","password":"my_node_pass"}'
|
2182
|
-
ascli node upload testfile.bin --to-folder=folder_1 --ts=@json:'{"target_rate_cap_kbps":10000}'
|
2183
|
-
ascli node upload testfile.bin --to-folder=folder_1 --ts=@json:'{"target_rate_cap_kbps":10000}' --token-type=hybrid
|
2184
|
-
ascli orchestrator info
|
2185
|
-
ascli orchestrator plugins
|
2186
|
-
ascli orchestrator processes
|
2187
|
-
ascli orchestrator workflow inputs my_orch_workflow_id
|
2188
|
-
ascli orchestrator workflow list
|
2189
|
-
ascli orchestrator workflow start my_orch_workflow_id --params=@json:'{"Param":"world !"}'
|
2190
|
-
ascli orchestrator workflow start my_orch_workflow_id --params=@json:'{"Param":"world !"}' --result=ResultStep:Complete_status_message
|
2191
|
-
ascli orchestrator workflow status ALL
|
2192
|
-
ascli orchestrator workflow status my_orch_workflow_id
|
2193
|
-
ascli preview check --skip-types=office
|
2194
|
-
ascli preview folder 1 --skip-types=office --log-level=info --file-access=remote --ts=@json:'{"target_rate_kbps":1000000}'
|
2195
|
-
ascli preview scan --skip-types=office --log-level=info
|
2196
|
-
ascli preview test --case=test mp4 my_file_mxf --video-conversion=blend --log-level=debug
|
2197
|
-
ascli preview test --case=test mp4 my_file_mxf --video-conversion=clips --log-level=debug
|
2198
|
-
ascli preview test --case=test mp4 my_file_mxf --video-conversion=reencode --log-level=debug
|
2199
|
-
ascli preview test --case=test png my_file_dcm --log-level=debug
|
2200
|
-
ascli preview test --case=test png my_file_docx --log-level=debug
|
2201
|
-
ascli preview test --case=test png my_file_mxf --video-png-conv=animated --log-level=debug
|
2202
|
-
ascli preview test --case=test png my_file_mxf --video-png-conv=fixed --log-level=debug
|
2203
|
-
ascli preview test --case=test png my_file_pdf --log-level=debug
|
2204
|
-
ascli preview trevents --once-only=yes --skip-types=office --log-level=info
|
2205
|
-
ascli server -N -Ptst_hstsfaspex_ssh -Plocal_user ctl all:status
|
2206
|
-
ascli server -N -Ptst_hstsfaspex_ssh -Plocal_user health app_services --format=nagios
|
2207
|
-
ascli server -N -Ptst_hstsfaspex_ssh -Plocal_user health asctlstatus --format=nagios --cmd-prefix='sudo '
|
2208
|
-
ascli server -N -Ptst_hstsfaspex_ssh -Plocal_user nodeadmin -- -l
|
2209
|
-
ascli server -N -Ptst_server_bykey -Plocal_user br /
|
2210
|
-
ascli server browse /
|
2211
|
-
ascli server browse folder_1/target_hot
|
2212
|
-
ascli server cp NEW_SERVER_FOLDER/testfile.bin folder_1/200KB.2
|
2213
|
-
ascli server delete NEW_SERVER_FOLDER
|
2214
|
-
ascli server delete folder_1/target_hot
|
2215
|
-
ascli server delete folder_1/to.delete
|
2216
|
-
ascli server df
|
2217
|
-
ascli server download NEW_SERVER_FOLDER/testfile.bin --to-folder=. --transfer-info=@json:'{"wss":false,"resume":{"iter_max":1}}'
|
2218
|
-
ascli server download NEW_SERVER_FOLDER/testfile.bin --to-folder=folder_1 --transfer=node
|
2219
|
-
ascli server du /
|
2220
|
-
ascli server health transfer --to-folder=folder_1 --format=nagios
|
2221
|
-
ascli server info
|
2222
|
-
ascli server md5sum NEW_SERVER_FOLDER/testfile.bin
|
2223
|
-
ascli server mkdir NEW_SERVER_FOLDER --logger=stdout
|
2224
|
-
ascli server mkdir folder_1/target_hot
|
2225
|
-
ascli server mv folder_1/200KB.2 folder_1/to.delete
|
2226
|
-
ascli server upload --sources=@ts --ts=@json:'{"paths":[{"source":"testfile.bin","destination":"NEW_SERVER_FOLDER/othername"}]}'
|
2227
|
-
ascli server upload --src-type=pair --sources=@json:'["testfile.bin","NEW_SERVER_FOLDER/othername"]'
|
2228
|
-
ascli server upload --src-type=pair testfile.bin NEW_SERVER_FOLDER/othername --notif-to=my_recipient_email
|
2229
|
-
ascli server upload --src-type=pair testfile.bin folder_1/with_options --ts=@json:'{"cipher":"aes-192-gcm","content_protection":"encrypt","content_protection_password":"_secret_here_","cookie":"biscuit","create_dir":true,"delete_before_transfer":false,"delete_source":false,"exclude_newer_than":1,"exclude_older_than":10000,"fasp_port":33001,"http_fallback":false,"multi_session":0,"overwrite":"diff+older","precalculate_job_size":true,"preserve_access_time":true,"preserve_creation_time":true,"rate_policy":"fair","resume_policy":"sparse_csum","symlink_policy":"follow"}'
|
2230
|
-
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
|
2231
|
-
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
|
2232
|
-
ascli shares admin share list
|
2233
|
-
ascli shares repository browse /
|
2234
|
-
ascli shares repository delete my_shares_upload/testfile.bin
|
2235
|
-
ascli shares repository download --to-folder=. my_shares_upload/testfile.bin
|
2236
|
-
ascli shares repository download --to-folder=. my_shares_upload/testfile.bin --transfer=httpgw --transfer-info=@json:'{"url":"https://my_http_gw_fqdn/aspera/http-gwy/v1"}'
|
2237
|
-
ascli shares repository upload --to-folder=my_shares_upload testfile.bin
|
2238
|
-
ascli shares repository upload --to-folder=my_shares_upload testfile.bin --transfer=httpgw --transfer-info=@json:'{"url":"https://my_http_gw_fqdn/aspera/http-gwy/v1"}'
|
2239
|
-
ascli shares2 appinfo
|
2240
|
-
ascli shares2 organization list
|
2241
|
-
ascli shares2 project list --organization=Sport
|
2242
|
-
ascli shares2 repository browse /
|
2243
|
-
ascli shares2 userinfo
|
2244
|
-
ascli sync start --parameters=@json:'{"sessions":[{"name":"test","reset":true,"remote_dir":"/sync_test","local_dir":"contents","host":"my_remote_host","tcp_port":33001,"user":"my_remote_user","private_key_path":"my_local_user_key"}]}'
|
2245
|
-
...and more
|
2246
|
-
```
|
2247
|
-
|
2248
2214
|
### <a id="usage"></a>Usage
|
2249
2215
|
|
2250
|
-
```
|
2216
|
+
```text
|
2251
2217
|
ascli -h
|
2252
2218
|
NAME
|
2253
|
-
|
2219
|
+
ascli -- a command line tool for Aspera Applications (v4.8.0)
|
2254
2220
|
|
2255
2221
|
SYNOPSIS
|
2256
|
-
|
2222
|
+
ascli COMMANDS [OPTIONS] [ARGS]
|
2257
2223
|
|
2258
2224
|
DESCRIPTION
|
2259
|
-
|
2260
|
-
|
2261
|
-
|
2262
|
-
|
2263
|
-
|
2225
|
+
Use Aspera application to perform operations on command line.
|
2226
|
+
Documentation and examples: https://rubygems.org/gems/aspera-cli
|
2227
|
+
execute: ascli conf doc
|
2228
|
+
or visit: https://www.rubydoc.info/gems/aspera-cli
|
2229
|
+
source repo: https://github.com/IBM/aspera-cli
|
2264
2230
|
|
2265
2231
|
ENVIRONMENT VARIABLES
|
2266
|
-
|
2267
|
-
|
2232
|
+
ASCLI_HOME config folder, default: $HOME/.aspera/ascli
|
2233
|
+
Any option can be set as an environment variable, refer to the manual
|
2268
2234
|
|
2269
2235
|
COMMANDS
|
2270
|
-
|
2271
|
-
|
2236
|
+
To list first level commands, execute: ascli
|
2237
|
+
Note that commands can be written shortened (provided it is unique).
|
2272
2238
|
|
2273
2239
|
OPTIONS
|
2274
|
-
|
2275
|
-
|
2276
|
-
|
2277
|
-
|
2240
|
+
Options begin with a '-' (minus), and value is provided on command line.
|
2241
|
+
Special values are supported beginning with special prefix @pfx:, where pfx is one of:
|
2242
|
+
base64, json, zlib, ruby, csvt, lines, list, incps, val, file, path, env, uri, stdin, preset
|
2243
|
+
Dates format is 'DD-MM-YY HH:MM:SS', or 'now' or '-<num>h'
|
2278
2244
|
|
2279
2245
|
ARGS
|
2280
|
-
|
2246
|
+
Some commands require mandatory arguments, e.g. a path.
|
2281
2247
|
|
2282
2248
|
OPTIONS: global
|
2283
2249
|
--interactive=ENUM use interactive input of missing params: yes, [no]
|
@@ -2289,7 +2255,7 @@ OPTIONS: global
|
|
2289
2255
|
--table-style=VALUE table display style
|
2290
2256
|
--flat-hash=ENUM display hash values as additional keys: [yes], no
|
2291
2257
|
--transpose-single=ENUM single object fields output vertically: [yes], no
|
2292
|
-
--show-secrets=ENUM show secrets on command output:
|
2258
|
+
--show-secrets=ENUM show secrets on command output: yes, [no]
|
2293
2259
|
-h, --help Show this message.
|
2294
2260
|
--bash-comp generate bash completion for command
|
2295
2261
|
--show-config Display parameters used for the provided action.
|
@@ -2344,7 +2310,7 @@ OPTIONS:
|
|
2344
2310
|
|
2345
2311
|
|
2346
2312
|
COMMAND: shares
|
2347
|
-
SUBCOMMANDS: repository admin
|
2313
|
+
SUBCOMMANDS: health repository admin
|
2348
2314
|
OPTIONS:
|
2349
2315
|
--url=VALUE URL of application, e.g. https://org.asperafiles.com
|
2350
2316
|
--username=VALUE username to log in
|
@@ -2364,7 +2330,7 @@ OPTIONS:
|
|
2364
2330
|
|
2365
2331
|
|
2366
2332
|
COMMAND: orchestrator
|
2367
|
-
SUBCOMMANDS: info workflow plugins processes
|
2333
|
+
SUBCOMMANDS: health info workflow plugins processes
|
2368
2334
|
OPTIONS:
|
2369
2335
|
--url=VALUE URL of application, e.g. https://org.asperafiles.com
|
2370
2336
|
--username=VALUE username to log in
|
@@ -2405,27 +2371,29 @@ OPTIONS:
|
|
2405
2371
|
|
2406
2372
|
|
2407
2373
|
COMMAND: faspex5
|
2408
|
-
SUBCOMMANDS: package admin
|
2374
|
+
SUBCOMMANDS: health package admin user
|
2409
2375
|
OPTIONS:
|
2410
2376
|
--url=VALUE URL of application, e.g. https://org.asperafiles.com
|
2411
2377
|
--username=VALUE username to log in
|
2412
2378
|
--password=VALUE user's password
|
2413
2379
|
--client-id=VALUE OAuth client identifier
|
2414
2380
|
--client-secret=VALUE OAuth client secret
|
2415
|
-
--redirect-uri=VALUE OAuth redirect URI
|
2381
|
+
--redirect-uri=VALUE OAuth redirect URI for web authentication
|
2416
2382
|
--auth=ENUM OAuth type of authentication: web, jwt, boot
|
2417
|
-
--private-key=VALUE
|
2383
|
+
--private-key=VALUE OAuth JWT RSA private key PEM value (prefix file path with @file:)
|
2384
|
+
--passphrase=VALUE RSA private key passphrase
|
2418
2385
|
|
2419
2386
|
|
2420
2387
|
COMMAND: cos
|
2421
2388
|
SUBCOMMANDS: node
|
2422
2389
|
OPTIONS:
|
2423
|
-
--bucket=VALUE
|
2424
|
-
--endpoint=VALUE
|
2425
|
-
--apikey=VALUE
|
2426
|
-
--crn=VALUE
|
2390
|
+
--bucket=VALUE Bucket name
|
2391
|
+
--endpoint=VALUE Storage endpoint url
|
2392
|
+
--apikey=VALUE Storage API key
|
2393
|
+
--crn=VALUE Ressource instance id
|
2427
2394
|
--service-credentials=VALUE IBM Cloud service credentials (Hash)
|
2428
|
-
--region=VALUE
|
2395
|
+
--region=VALUE Storage region
|
2396
|
+
--identity=VALUE Authentication url (https://iam.cloud.ibm.com/identity)
|
2429
2397
|
|
2430
2398
|
|
2431
2399
|
COMMAND: faspex
|
@@ -2462,9 +2430,9 @@ OPTIONS:
|
|
2462
2430
|
--file-access=ENUM how to read and write files in repository: [local], remote
|
2463
2431
|
--max-size=VALUE maximum size (in bytes) of preview file
|
2464
2432
|
--thumb-vid-scale=VALUE png: video: size (ffmpeg scale argument)
|
2465
|
-
--thumb-vid-fraction=VALUE png: video: position of snapshot
|
2433
|
+
--thumb-vid-fraction=VALUE png: video: time percent position of snapshot
|
2466
2434
|
--thumb-img-size=VALUE png: non-video: height (and width)
|
2467
|
-
--thumb-text-font=VALUE png: plaintext: font to render text with
|
2435
|
+
--thumb-text-font=VALUE png: plaintext: font to render text with imagemagick convert (identify -list font)
|
2468
2436
|
--video-conversion=ENUM mp4: method for preview generation: [reencode], blend, clips
|
2469
2437
|
--video-png-conv=ENUM mp4: method for thumbnail generation: [fixed], animated
|
2470
2438
|
--video-start-sec=VALUE mp4: start offset (seconds) of video preview
|
@@ -2495,7 +2463,8 @@ OPTIONS:
|
|
2495
2463
|
--client-id=VALUE OAuth API client identifier in application
|
2496
2464
|
--client-secret=VALUE OAuth API client passcode
|
2497
2465
|
--redirect-uri=VALUE OAuth API client redirect URI
|
2498
|
-
--private-key=VALUE OAuth JWT RSA private key PEM value (prefix file path with @
|
2466
|
+
--private-key=VALUE OAuth JWT RSA private key PEM value (prefix file path with @file:)
|
2467
|
+
--passphrase=VALUE RSA private key passphrase
|
2499
2468
|
--workspace=VALUE name of workspace
|
2500
2469
|
--name=VALUE resource name
|
2501
2470
|
--path=VALUE file or folder path
|
@@ -2505,6 +2474,7 @@ OPTIONS:
|
|
2505
2474
|
--scope=VALUE OAuth scope for AoC API calls
|
2506
2475
|
--bulk=ENUM bulk operation: yes, [no]
|
2507
2476
|
--default-ports=ENUM use standard FASP ports or get from node api: yes, [no]
|
2477
|
+
--validate-metadata=ENUM validate shared inbox metadata: yes, [no]
|
2508
2478
|
|
2509
2479
|
|
2510
2480
|
COMMAND: server
|
@@ -2542,7 +2512,7 @@ It is recommended to use the wizard to set it up, but manual configuration is al
|
|
2542
2512
|
|
2543
2513
|
`ascli` provides a configuration wizard. Here is a sample invocation :
|
2544
2514
|
|
2545
|
-
```
|
2515
|
+
```text
|
2546
2516
|
ascli config wizard
|
2547
2517
|
option: url> https://myorg.ibmaspera.com
|
2548
2518
|
Detected: Aspera on Cloud
|
@@ -2646,7 +2616,7 @@ Note: Default `auth` method is `web` and default `redirect_uri` is `http://local
|
|
2646
2616
|
For a Browser-less, Private Key-based authentication, use the following steps.
|
2647
2617
|
|
2648
2618
|
In order to use JWT for Aspera on Cloud API client authentication,
|
2649
|
-
a [private/public key pair](#private_key) must be used
|
2619
|
+
a [private/public key pair](#private_key) must be used.
|
2650
2620
|
|
2651
2621
|
##### API Client JWT activation
|
2652
2622
|
|
@@ -2654,7 +2624,7 @@ If you are not using the built-in client_id and secret, JWT needs to be authoriz
|
|
2654
2624
|
|
2655
2625
|
* Graphically
|
2656
2626
|
|
2657
|
-
* Open a web browser, log to your instance: https://myorg.ibmaspera.com
|
2627
|
+
* Open a web browser, log to your instance: `https://myorg.ibmaspera.com/`
|
2658
2628
|
* Go to Apps→Admin→Organization→Integrations
|
2659
2629
|
* Click on the previously created application
|
2660
2630
|
* select tab : "JSON Web Token Auth"
|
@@ -2691,7 +2661,7 @@ The public key must be assigned to your user. This can be done in two manners:
|
|
2691
2661
|
|
2692
2662
|
Open the previously generated public key located here: `$HOME/.aspera/ascli/my_private_key.pub`
|
2693
2663
|
|
2694
|
-
* Open a web browser, log to your instance: https://myorg.ibmaspera.com
|
2664
|
+
* Open a web browser, log to your instance: `https://myorg.ibmaspera.com/`
|
2695
2665
|
* Click on the user's icon (top right)
|
2696
2666
|
* Select "Account Settings"
|
2697
2667
|
* Paste the *Public Key* in the "Public Key" section
|
@@ -2753,6 +2723,27 @@ Current Workspace: Default Workspace (default)
|
|
2753
2723
|
empty
|
2754
2724
|
```
|
2755
2725
|
|
2726
|
+
### Calling AoC APIs from command line
|
2727
|
+
|
2728
|
+
The command `ascli aoc bearer` can be used to generate an OAuth token suitable to call any AoC API (use the `scope` option to change the scope, default is `user:all`).
|
2729
|
+
This can be useful when a command is not yet available.
|
2730
|
+
|
2731
|
+
Example:
|
2732
|
+
|
2733
|
+
```bash
|
2734
|
+
curl -s -H "Authorization: $(ascli aoc bearer_token)" 'https://api.ibmaspera.com/api/v1/group_memberships?embed[]=dropbox&embed[]=workspace'|jq -r '.[]|(.workspace.name + " -> " + .dropbox.name)'
|
2735
|
+
```
|
2736
|
+
|
2737
|
+
It is also possible to get the bearer token for node, as user or as admin using:
|
2738
|
+
|
2739
|
+
```bash
|
2740
|
+
ascli aoc files bearer_token_node /
|
2741
|
+
```
|
2742
|
+
|
2743
|
+
```bash
|
2744
|
+
ascli aoc admin res node v4 1234 --secret=_ak_secret_here_ bearer_token_node /
|
2745
|
+
```
|
2746
|
+
|
2756
2747
|
### Administration
|
2757
2748
|
|
2758
2749
|
The `admin` command allows several administrative tasks (and require admin privilege).
|
@@ -2825,6 +2816,50 @@ To execute an action on a specific resource, select it using one of those method
|
|
2825
2816
|
* provide option `id` : `aoc admin res node show --id=123`
|
2826
2817
|
* provide option `name` : `aoc admin res node show --name=abc`
|
2827
2818
|
|
2819
|
+
#### <a id="res_create"></a>Creating a resource
|
2820
|
+
|
2821
|
+
New resources (users, groups, workspaces, etc..) can be created using a command like:
|
2822
|
+
|
2823
|
+
```bash
|
2824
|
+
ascli aoc admin res create <resource type> @json:'{<...parameters...>}'
|
2825
|
+
```
|
2826
|
+
|
2827
|
+
Some of the API endpoints are described [here](https://developer.ibm.com/apis/catalog?search=%22aspera%20on%20cloud%20api%22). Sadly, not all.
|
2828
|
+
|
2829
|
+
Nevertheless, it is possible to guess the structure of the creation value by simply dumping an existing resource, and use the same parameters for the creation.
|
2830
|
+
|
2831
|
+
```bash
|
2832
|
+
ascli aoc admin res group show 12345 --format=json
|
2833
|
+
```
|
2834
|
+
|
2835
|
+
```json
|
2836
|
+
{"created_at":"2018-07-24T21:46:39.000Z","description":null,"id":"12345","manager":false,"name":"A8Demo WS1","owner":false,"queued_operation_count":0,"running_operation_count":0,"stopped_operation_count":0,"updated_at":"2018-07-24T21:46:39.000Z","saml_group":false,"saml_group_dn":null,"system_group":true,"system_group_type":"workspace_members"}
|
2837
|
+
```
|
2838
|
+
|
2839
|
+
Remove the parameters that are either obviously added by the system: `id`, `created_at`, `updated_at` or optional.
|
2840
|
+
|
2841
|
+
And then craft your command:
|
2842
|
+
|
2843
|
+
```bash
|
2844
|
+
ascli aoc admin res group create @json:'{"description":"test to delete","name":"test 1 to delete","saml_group":false}'
|
2845
|
+
```
|
2846
|
+
|
2847
|
+
If the command returns an error, example:
|
2848
|
+
|
2849
|
+
```output
|
2850
|
+
+----+-----------------------------------------------------------------------------------+
|
2851
|
+
| id | status |
|
2852
|
+
+----+-----------------------------------------------------------------------------------+
|
2853
|
+
| | found unpermitted parameters: :manager, :owner, :system_group, :system_group_type |
|
2854
|
+
| | code: unpermitted_parameters |
|
2855
|
+
| | request_id: b0f45d5b-c00a-4711-acef-72b633f8a6ea |
|
2856
|
+
| | api.ibmaspera.com 422 Unprocessable Entity |
|
2857
|
+
+----+-----------------------------------------------------------------------------------+```
|
2858
|
+
|
2859
|
+
Well, remove the offending parameters and try again.
|
2860
|
+
|
2861
|
+
Note that some properties that are shown in the web UI, such as membership, are not listed directly in the resource, but instead another resource is created to link a user and its group: `group_membership`
|
2862
|
+
|
2828
2863
|
#### Access Key secrets
|
2829
2864
|
|
2830
2865
|
In order to access some administrative actions on "nodes" (in fact, access keys), the associated secret is required.
|
@@ -3085,6 +3120,44 @@ ascli aoc admin res user list --fields=email --query=@json:'{"q":"last_login_at:
|
|
3085
3120
|
ascli aoc admin res user list --fields=email --select=@json:'{"member_of_any_workspace":false}'
|
3086
3121
|
```
|
3087
3122
|
|
3123
|
+
#### Example: create a group, add to workspace and add user to group
|
3124
|
+
|
3125
|
+
* Create the group and take note of `id`
|
3126
|
+
|
3127
|
+
```bash
|
3128
|
+
ascli aoc admin res group create @json:'{"name":"group 1","description":"my super group"}'
|
3129
|
+
```
|
3130
|
+
|
3131
|
+
Group: `11111`
|
3132
|
+
|
3133
|
+
* Get the workspace id
|
3134
|
+
|
3135
|
+
```bash
|
3136
|
+
ascli aoc admin res workspace list --query=@json:'{"q":"myworkspace"}' --fields=id --format=csv --display=data
|
3137
|
+
```
|
3138
|
+
|
3139
|
+
Workspace: 22222
|
3140
|
+
|
3141
|
+
* Add group to workspace
|
3142
|
+
|
3143
|
+
```bash
|
3144
|
+
ascli aoc admin res workspace_membership create @json:'{"workspace_id":22222,"member_type":"user","member_id":11111}'
|
3145
|
+
```
|
3146
|
+
|
3147
|
+
* Get a user's id
|
3148
|
+
|
3149
|
+
```bash
|
3150
|
+
ascli aoc admin res user list --query=@json:'{"q":"manu.macron@example.com"}' --fields=id --format=csv --display=data
|
3151
|
+
```
|
3152
|
+
|
3153
|
+
User: 33333
|
3154
|
+
|
3155
|
+
* Add user to group
|
3156
|
+
|
3157
|
+
```bash
|
3158
|
+
ascli aoc admin res group_membership create @json:'{"group_id":11111,"member_type":"user","member_id":33333}'
|
3159
|
+
```
|
3160
|
+
|
3088
3161
|
#### Example: Perform a multi Gbps transfer between two remote shared folders
|
3089
3162
|
|
3090
3163
|
In this example, a user has access to a workspace where two shared folders are located on different sites, e.g. different cloud regions.
|
@@ -3373,6 +3446,96 @@ cat my_file_list.txt|while read path;do echo ascli aoc admin res node --name='my
|
|
3373
3446
|
cat my_file_list.txt | ascli aoc admin res node --name='my node name' --secret='_secret_here_' v3 delete @lines:@stdin:
|
3374
3447
|
```
|
3375
3448
|
|
3449
|
+
### AoC sample commands
|
3450
|
+
|
3451
|
+
```bash
|
3452
|
+
aoc -N remind --username=my_aoc_user_email
|
3453
|
+
aoc -N servers
|
3454
|
+
aoc admin analytics transfers --query=@json:'{"status":"completed","direction":"receive"}' --notif-to=my_recipient_email --notif-template=@ruby:'%Q{From: <%=from_name%> <<%=from_email%>>\nTo: <<%=to%>>\nSubject: <%=ev["files_completed"]%> files received\n\n<%=ev.to_yaml%>}'
|
3455
|
+
aoc admin ats access_key create --cloud=aws --region=my_aws_bucket_region --params=@json:'{"id":"ak_aws","name":"my test key AWS","storage":{"type":"aws_s3","bucket":"my_aws_bucket_name","credentials":{"access_key_id":"my_aws_bucket_key","secret_access_key":"my_aws_bucket_secret"},"path":"/"}}'
|
3456
|
+
aoc admin ats access_key create --cloud=softlayer --region=my_icos_bucket_region --params=@json:'{"id":"akibmcloud","secret":"somesecret","name":"my test key","storage":{"type":"ibm-s3","bucket":"my_icos_bucket_name","credentials":{"access_key_id":"my_icos_bucket_key","secret_access_key":"my_icos_bucket_secret"},"path":"/"}}'
|
3457
|
+
aoc admin ats access_key delete akibmcloud
|
3458
|
+
aoc admin ats access_key list --fields=name,id
|
3459
|
+
aoc admin ats access_key node akibmcloud --secret=somesecret browse /
|
3460
|
+
aoc admin ats cluster clouds
|
3461
|
+
aoc admin ats cluster list
|
3462
|
+
aoc admin ats cluster show --cloud=aws --region=eu-west-1
|
3463
|
+
aoc admin ats cluster show 1f412ae7-869a-445c-9c05-02ad16813be2
|
3464
|
+
aoc admin res application list
|
3465
|
+
aoc admin res client list
|
3466
|
+
aoc admin res client_access_key list
|
3467
|
+
aoc admin res client_registration_token create @json:'{"data":{"name":"test_client_reg1","client_subject_scopes":["alee","aejd"],"client_subject_enabled":true}}'
|
3468
|
+
aoc admin res client_registration_token delete my_clt_reg_id
|
3469
|
+
aoc admin res client_registration_token list
|
3470
|
+
aoc admin res contact list
|
3471
|
+
aoc admin res dropbox list
|
3472
|
+
aoc admin res dropbox_membership list
|
3473
|
+
aoc admin res group list
|
3474
|
+
aoc admin res kms_profile list
|
3475
|
+
aoc admin res node list
|
3476
|
+
aoc admin res operation list
|
3477
|
+
aoc admin res organization show
|
3478
|
+
aoc admin res package list --http-options=@json:'{"read_timeout":120.0}'
|
3479
|
+
aoc admin res saml_configuration list
|
3480
|
+
aoc admin res self show
|
3481
|
+
aoc admin res short_link list
|
3482
|
+
aoc admin res user list
|
3483
|
+
aoc admin res workspace_membership list
|
3484
|
+
aoc admin resource node --name=my_aoc_ak_name --secret=my_aoc_ak_secret v3 access_key create --value=@json:'{"id":"testsub1","storage":{"path":"/folder1"}}'
|
3485
|
+
aoc admin resource node --name=my_aoc_ak_name --secret=my_aoc_ak_secret v3 events
|
3486
|
+
aoc admin resource node --name=my_aoc_ak_name --secret=my_aoc_ak_secret v4 browse /
|
3487
|
+
aoc admin resource node --name=my_aoc_ak_name --secret=my_aoc_ak_secret v4 delete /folder1
|
3488
|
+
aoc admin resource node --name=my_aoc_ak_name --secret=my_aoc_ak_secret v4 mkdir /folder1
|
3489
|
+
aoc admin resource node v3 name my_aoc_ak_name --secret=my_aoc_ak_secret access_key delete testsub1
|
3490
|
+
aoc admin resource workspace list
|
3491
|
+
aoc admin resource workspace_membership list --fields=ALL --query=@json:'{"page":1,"per_page":50,"embed":"member","inherited":false,"workspace_id":11363,"sort":"name"}'
|
3492
|
+
aoc automation workflow action my_wf_id create --value=@json:'{"name":"toto"}'
|
3493
|
+
aoc automation workflow create --value=@json:'{"name":"test_workflow"}'
|
3494
|
+
aoc automation workflow delete my_wf_id
|
3495
|
+
aoc automation workflow list
|
3496
|
+
aoc automation workflow list --select=@json:'{"name":"test_workflow"}' --fields=id --format=csv --display=data
|
3497
|
+
aoc automation workflow list --value=@json:'{"show_org_workflows":"true"}' --scope=admin:all
|
3498
|
+
aoc bearer_token --display=data --scope=user:all
|
3499
|
+
aoc faspex
|
3500
|
+
aoc files bearer /
|
3501
|
+
aoc files bearer_token_node / --cache-tokens=no
|
3502
|
+
aoc files browse /
|
3503
|
+
aoc files browse / -N --link=my_aoc_publink_folder
|
3504
|
+
aoc files delete /testsrc
|
3505
|
+
aoc files download --transfer=connect /200KB.1
|
3506
|
+
aoc files file show my_file_id
|
3507
|
+
aoc files find / --value='\.partial$'
|
3508
|
+
aoc files http_node_download --to-folder=. /200KB.1
|
3509
|
+
aoc files mkdir /testsrc
|
3510
|
+
aoc files rename /somefolder testdst
|
3511
|
+
aoc files short_link create --to-folder=/testdst --value=private
|
3512
|
+
aoc files short_link create --to-folder=/testdst --value=public
|
3513
|
+
aoc files short_link list --value=@json:'{"purpose":"shared_folder_auth_link"}'
|
3514
|
+
aoc files transfer --from-folder=/testsrc --to-folder=/testdst testfile.bin
|
3515
|
+
aoc files upload --to-folder=/testsrc testfile.bin
|
3516
|
+
aoc files upload -N --to-folder=/ testfile.bin --link=my_aoc_publink_folder
|
3517
|
+
aoc files upload Test.pdf --transfer=node --transfer-info=@json:@stdin:
|
3518
|
+
aoc files v3 info
|
3519
|
+
aoc org -N --link=my_aoc_publink_recv_from_aocuser
|
3520
|
+
aoc organization
|
3521
|
+
aoc packages list
|
3522
|
+
aoc packages list --query=@json:'{"dropbox_name":"my_aoc_shbx_name","sort":"-received_at","archived":false,"received":true,"has_content":true,"exclude_dropbox_packages":false}'
|
3523
|
+
aoc packages recv "my_package_id" --to-folder=.
|
3524
|
+
aoc packages recv ALL --to-folder=. --once-only=yes --lock-port=12345
|
3525
|
+
aoc packages send --value=@json:'{"name":"Important files delivery","recipients":["my_email_external_user"]}' --new-user-option=@json:'{"package_contact":true}' testfile.bin
|
3526
|
+
aoc packages send --value=@json:'{"name":"Important files delivery","recipients":["my_email_internal_user"],"note":"my note"}' testfile.bin
|
3527
|
+
aoc packages send --workspace="my_aoc_shbx_ws" --value=@json:'{"name":"Important files delivery","recipients":["my_aoc_shbx_name"],"metadata":[{"input_type":"single-text","name":"Project Id","values":["123"]},{"input_type":"single-dropdown","name":"Type","values":["Opt2"]},{"input_type":"multiple-checkbox","name":"CheckThose","values":["Check1","Check2"]},{"input_type":"date","name":"Optional Date","values":["2021-01-13T15:02:00.000Z"]}]}' testfile.bin
|
3528
|
+
aoc packages send --workspace="my_aoc_shbx_ws" --value=@json:'{"name":"Important files delivery","recipients":["my_aoc_shbx_name"],"metadata":{"Project Id":"456","Type":"Opt2","CheckThose":["Check1","Check2"],"Optional Date":"2021-01-13T15:02:00.000Z"}}' testfile.bin
|
3529
|
+
aoc packages send --workspace="my_aoc_shbx_ws" --value=@json:'{"name":"Important files delivery","recipients":["my_aoc_shbx_name"]}' testfile.bin
|
3530
|
+
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
|
3531
|
+
aoc packages send -N --value=@json:'{"name":"Important files delivery"}' testfile.bin --link=my_aoc_publink_send_shd_inbox
|
3532
|
+
aoc packages shared_inboxes list
|
3533
|
+
aoc user profile modify @json:'{"name":"dummy change"}'
|
3534
|
+
aoc user profile show
|
3535
|
+
aoc user workspaces current
|
3536
|
+
aoc user workspaces list
|
3537
|
+
```
|
3538
|
+
|
3376
3539
|
## <a id="ats"></a>Plugin: Aspera Transfer Service
|
3377
3540
|
|
3378
3541
|
ATS is usable either :
|
@@ -3487,26 +3650,80 @@ for k in $(ascli ats access_key list --field=id --format=csv);do ascli ats acces
|
|
3487
3650
|
|
3488
3651
|
The parameters provided to ATS for access key creation are the ones of [ATS API](https://developer.ibm.com/apis/catalog?search=%22aspera%20ats%22) for the `POST /access_keys` endpoint.
|
3489
3652
|
|
3653
|
+
### ATS sample commands
|
3654
|
+
|
3655
|
+
```bash
|
3656
|
+
ats access_key cluster akibmcloud --secret=somesecret
|
3657
|
+
ats access_key create --cloud=aws --region=my_aws_bucket_region --params=@json:'{"id":"ak_aws","name":"my test key AWS","storage":{"type":"aws_s3","bucket":"my_aws_bucket_name","credentials":{"access_key_id":"my_aws_bucket_key","secret_access_key":"my_aws_bucket_secret"},"path":"/"}}'
|
3658
|
+
ats access_key create --cloud=softlayer --region=my_icos_bucket_region --params=@json:'{"id":"akibmcloud","secret":"somesecret","name":"my test key","storage":{"type":"ibm-s3","bucket":"my_icos_bucket_name","credentials":{"access_key_id":"my_icos_bucket_key","secret_access_key":"my_icos_bucket_secret"},"path":"/"}}'
|
3659
|
+
ats access_key delete ak_aws
|
3660
|
+
ats access_key delete akibmcloud
|
3661
|
+
ats access_key list --fields=name,id
|
3662
|
+
ats access_key node akibmcloud browse / --secret=somesecret
|
3663
|
+
ats api_key create
|
3664
|
+
ats api_key instances
|
3665
|
+
ats api_key list
|
3666
|
+
ats cluster clouds
|
3667
|
+
ats cluster list
|
3668
|
+
ats cluster show --cloud=aws --region=eu-west-1
|
3669
|
+
ats cluster show 1f412ae7-869a-445c-9c05-02ad16813be2
|
3670
|
+
```
|
3671
|
+
|
3490
3672
|
## Plugin: IBM Aspera High Speed Transfer Server (transfer)
|
3491
3673
|
|
3492
3674
|
This plugin uses SSH as a session protocol (using commands `ascp` and `ascmd`) and does not use the node API.
|
3493
3675
|
It is the legacy way of accessing an Aspera Server, often used for server to server transfers.
|
3494
3676
|
Modern mode is to use the node API and transfer tokens.
|
3495
3677
|
|
3678
|
+
### Server sample commands
|
3679
|
+
|
3680
|
+
```bash
|
3681
|
+
server -N -Ptst_hstsfaspex_ssh -Plocal_user configurator get_node_data
|
3682
|
+
server -N -Ptst_hstsfaspex_ssh -Plocal_user ctl all:status
|
3683
|
+
server -N -Ptst_hstsfaspex_ssh -Plocal_user health app_services --format=nagios
|
3684
|
+
server -N -Ptst_hstsfaspex_ssh -Plocal_user health asctlstatus --format=nagios --cmd-prefix='sudo '
|
3685
|
+
server -N -Ptst_hstsfaspex_ssh -Plocal_user nodeadmin -- -l
|
3686
|
+
server -N -Ptst_server_bykey -Plocal_user br /
|
3687
|
+
server browse /
|
3688
|
+
server browse folder_1/target_hot
|
3689
|
+
server cp NEW_SERVER_FOLDER/testfile.bin folder_1/200KB.2
|
3690
|
+
server delete NEW_SERVER_FOLDER
|
3691
|
+
server delete folder_1/target_hot
|
3692
|
+
server delete folder_1/to.delete
|
3693
|
+
server df
|
3694
|
+
server download NEW_SERVER_FOLDER/testfile.bin --to-folder=. --transfer-info=@json:'{"wss":false,"resume":{"iter_max":1}}'
|
3695
|
+
server download NEW_SERVER_FOLDER/testfile.bin --to-folder=folder_1 --transfer=node
|
3696
|
+
server du /
|
3697
|
+
server health transfer --to-folder=folder_1 --format=nagios
|
3698
|
+
server info
|
3699
|
+
server md5sum NEW_SERVER_FOLDER/testfile.bin
|
3700
|
+
server mkdir NEW_SERVER_FOLDER --logger=stdout
|
3701
|
+
server mkdir folder_1/target_hot
|
3702
|
+
server mv folder_1/200KB.2 folder_1/to.delete
|
3703
|
+
server upload --sources=@ts --ts=@json:'{"paths":[{"source":"testfile.bin","destination":"NEW_SERVER_FOLDER/othername"}]}'
|
3704
|
+
server upload --src-type=pair --sources=@json:'["testfile.bin","NEW_SERVER_FOLDER/othername"]'
|
3705
|
+
server upload --src-type=pair testfile.bin NEW_SERVER_FOLDER/othername --notif-to=my_recipient_email
|
3706
|
+
server upload --src-type=pair testfile.bin folder_1/with_options --ts=@json:'{"cipher":"aes-192-gcm","content_protection":"encrypt","content_protection_password":"_secret_here_","cookie":"biscuit","create_dir":true,"delete_before_transfer":false,"delete_source":false,"exclude_newer_than":1,"exclude_older_than":10000,"fasp_port":33001,"http_fallback":false,"multi_session":0,"overwrite":"diff+older","precalculate_job_size":true,"preserve_access_time":true,"preserve_creation_time":true,"rate_policy":"fair","resume_policy":"sparse_csum","symlink_policy":"follow"}'
|
3707
|
+
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
|
3708
|
+
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
|
3709
|
+
```
|
3710
|
+
|
3496
3711
|
### Authentication
|
3497
3712
|
|
3498
|
-
|
3713
|
+
If SSH is the session control protocol (i.e. not WSS), then following session authentication methods are supported:
|
3714
|
+
|
3715
|
+
* SSH password
|
3716
|
+
* SSH keys (Multiple SSH key paths can be provided.)
|
3499
3717
|
|
3500
3718
|
If username is not provided, the default transfer user `xfer` is used.
|
3501
3719
|
|
3502
|
-
If no SSH password or key is provided
|
3720
|
+
If no SSH password or key is provided and a transfer token is provided in transfer spec (option `ts`), then standard SSH bypass keys are used. Example:
|
3503
3721
|
|
3504
3722
|
```javascript
|
3505
3723
|
ascli server --url=ssh://... --ts=@json:'{"token":"Basic abc123"}'
|
3506
3724
|
```
|
3507
3725
|
|
3508
|
-
|
3509
|
-
The value of the parameter `ssh_keys` can be a single value or an array.
|
3726
|
+
The value of the option `ssh_keys` can be a single value or an array.
|
3510
3727
|
Each value is a path to a private key and is expanded (`~` is replaced with the user's home folder).
|
3511
3728
|
|
3512
3729
|
Examples:
|
@@ -3652,7 +3869,7 @@ updated
|
|
3652
3869
|
|
3653
3870
|
Scenario: Access to a "Shares on Demand" (SHOD) server on AWS is provided by a partner.
|
3654
3871
|
We need to transfer files from this third party SHOD instance into our Azure BLOB storage.
|
3655
|
-
Simply create an "Aspera Transfer Service" instance
|
3872
|
+
Simply create an "Aspera Transfer Service" instance, which provides access to the node API.
|
3656
3873
|
Then create a configuration for the "SHOD" instance in the configuration file: in section "shares", a configuration named: awsshod.
|
3657
3874
|
Create another configuration for the Azure ATS instance: in section "node", named azureats.
|
3658
3875
|
Then execute the following command:
|
@@ -3669,6 +3886,47 @@ This will get transfer information from the SHOD instance and tell the Azure ATS
|
|
3669
3886
|
ascli node access_key create --value=@json:'{"id":"eudemo-sedemo","secret":"mystrongsecret","storage":{"type":"local","path":"/data/asperafiles"}}'
|
3670
3887
|
```
|
3671
3888
|
|
3889
|
+
### Node sample commands
|
3890
|
+
|
3891
|
+
```bash
|
3892
|
+
node -N -Ptst_node_preview access_key create --value=@json:'{"id":"aoc_1","storage":{"type":"local","path":"/"}}'
|
3893
|
+
node -N -Ptst_node_preview access_key delete aoc_1
|
3894
|
+
node access_key do my_aoc_ak_name br
|
3895
|
+
node access_key list
|
3896
|
+
node api_details
|
3897
|
+
node async bandwidth 1
|
3898
|
+
node async counters 1
|
3899
|
+
node async files 1
|
3900
|
+
node async list
|
3901
|
+
node async show 1
|
3902
|
+
node async show ALL
|
3903
|
+
node basic_token
|
3904
|
+
node browse / -r
|
3905
|
+
node delete /todelete
|
3906
|
+
node delete @list:,/todelete,/tdlink,/delfile
|
3907
|
+
node delete folder_1/10MB.1
|
3908
|
+
node delete testfile.bin
|
3909
|
+
node download testfile.bin --to-folder=.
|
3910
|
+
node download testfile.bin --to-folder=. --token-type=hybrid
|
3911
|
+
node health
|
3912
|
+
node info --fpac='function FindProxyForURL(url,host){return "DIRECT"}'
|
3913
|
+
node license
|
3914
|
+
node mkdir /todelete
|
3915
|
+
node mkfile /delfile1 "hello world"
|
3916
|
+
node mklink /todelete /tdlink
|
3917
|
+
node rename / delfile1 delfile
|
3918
|
+
node search / --value=@json:'{"sort":"mtime"}'
|
3919
|
+
node service create @json:'{"id":"service1","type":"WATCHD","run_as":{"user":"user1"}}'
|
3920
|
+
node service delete service1
|
3921
|
+
node service list
|
3922
|
+
node space /
|
3923
|
+
node transfer list --value=@json:'{"active_only":true}'
|
3924
|
+
node upload --to-folder="folder_1" --sources=@ts --ts=@json:'{"paths":[{"source":"/aspera-test-dir-small/10MB.1"}],"precalculate_job_size":true}' --transfer=node --transfer-info=@json:'{"url":"my_node_url","username":"my_node_user","password":"my_node_pass"}'
|
3925
|
+
node upload --username=my_aoc_ak_name --password=my_aoc_ak_secret testfile.bin --token-type=basic
|
3926
|
+
node upload testfile.bin --to-folder=folder_1 --ts=@json:'{"target_rate_cap_kbps":10000}'
|
3927
|
+
node upload testfile.bin --to-folder=folder_1 --ts=@json:'{"target_rate_cap_kbps":10000}' --token-type=hybrid
|
3928
|
+
```
|
3929
|
+
|
3672
3930
|
## Plugin: IBM Aspera Faspex5
|
3673
3931
|
|
3674
3932
|
This is currently in beta, limited operations are supported.
|
@@ -3689,47 +3947,47 @@ The API is listed in [Faspex 5 API Reference](https://developer.ibm.com/apis/cat
|
|
3689
3947
|
|
3690
3948
|
This is the preferred method to use.
|
3691
3949
|
|
3692
|
-
For
|
3950
|
+
For `jwt`, create an API client in Faspex with JWT support:
|
3693
3951
|
|
3694
|
-
*
|
3952
|
+
* Select a private key file: if you don't have any refer to section [Private Key](#private_key)
|
3695
3953
|
* Navigate to the web UI: Admin → Configurations → API Clients → Create
|
3696
3954
|
* Activate JWT
|
3697
3955
|
* Paste public key in the appropriate section
|
3698
3956
|
* Click on Create Button
|
3699
|
-
* Take note of Client Id and Secret
|
3957
|
+
* Take note of Client Id (and Client Secret, but not used in current version)
|
3700
3958
|
|
3701
|
-
Then use options:
|
3959
|
+
Then use these options:
|
3702
3960
|
|
3703
3961
|
```text
|
3704
3962
|
--auth=jwt
|
3705
3963
|
--client-id=xxx
|
3706
3964
|
--client-secret=xxx
|
3707
3965
|
--username=xxx
|
3708
|
-
--
|
3709
|
-
--private-key=@file:../path/to/key.pem
|
3966
|
+
--private-key=@file:.../path/to/key.pem
|
3710
3967
|
```
|
3711
3968
|
|
3712
3969
|
#### Faspex 5 using web browser
|
3713
3970
|
|
3714
|
-
For web method, create an API client in Faspex without JWT:
|
3971
|
+
For `web` method, create an API client in Faspex without JWT:
|
3715
3972
|
|
3716
3973
|
* Navigate to the web UI: Admin → Configurations → API Clients → Create
|
3717
3974
|
* Do not Activate JWT
|
3718
|
-
* enter https://127.0.0.1:8888 in the redirect URI
|
3975
|
+
* enter `https://127.0.0.1:8888` in the redirect URI
|
3719
3976
|
* Click on Create Button
|
3720
|
-
* Take note of Client Id
|
3977
|
+
* Take note of Client Id (and Client Secret, but not used in current version)
|
3721
3978
|
|
3722
3979
|
Then use options:
|
3723
3980
|
|
3724
3981
|
```text
|
3725
3982
|
--auth=web
|
3726
3983
|
--client-id=xxx
|
3984
|
+
--client-secret=xxx
|
3727
3985
|
--redirect-uri=https://127.0.0.1:8888
|
3728
3986
|
```
|
3729
3987
|
|
3730
3988
|
#### Faspex 5 using bootstrap
|
3731
3989
|
|
3732
|
-
For boot method: (will be removed in future)
|
3990
|
+
For `boot` method: (will be removed in future)
|
3733
3991
|
|
3734
3992
|
* open a browser
|
3735
3993
|
* start developer mode
|
@@ -3742,6 +4000,44 @@ Use it as password and use `--auth=boot`.
|
|
3742
4000
|
ascli conf id f5boot update --url=https://localhost/aspera/faspex --auth=boot --password=ABC.DEF.GHI...
|
3743
4001
|
```
|
3744
4002
|
|
4003
|
+
### Faspex 5 sample commands
|
4004
|
+
|
4005
|
+
```bash
|
4006
|
+
faspex5 admin res accounts list
|
4007
|
+
faspex5 admin res contacts list
|
4008
|
+
faspex5 admin res jobs list
|
4009
|
+
faspex5 admin res node list --value=@json:'{"type":"received","subtype":"mypackages"}'
|
4010
|
+
faspex5 admin res oauth_clients list
|
4011
|
+
faspex5 admin res registrations list
|
4012
|
+
faspex5 admin res saml_configs list
|
4013
|
+
faspex5 admin res shared_inboxes list
|
4014
|
+
faspex5 admin res workgroups list
|
4015
|
+
faspex5 health
|
4016
|
+
faspex5 package list --value=@json:'{"mailbox":"inbox","state":["released"]}'
|
4017
|
+
faspex5 package receive "my_package_id" --to-folder=. --ts=@json:'{"content_protection_password":"abc123_yo"}'
|
4018
|
+
faspex5 package send --value=@json:'{"title":"test title","recipients":[{"name":"my_f5_user"}]}' testfile.bin --ts=@json:'{"content_protection_password":"_content_prot_here_"}'
|
4019
|
+
```
|
4020
|
+
|
4021
|
+
### Faspex 5 other examples
|
4022
|
+
|
4023
|
+
* List all shared inboxes
|
4024
|
+
|
4025
|
+
```json
|
4026
|
+
ascli faspex5 admin res shared list --value=@json:'{"all":true}' --fields=id,name
|
4027
|
+
```
|
4028
|
+
|
4029
|
+
* Create Metadata profile
|
4030
|
+
|
4031
|
+
```json
|
4032
|
+
ascli faspex5 admin res metadata_profiles create --value=@json:'{"name":"the profile","default":false,"title":{"max_length":200,"illegal_chars":[]},"note":{"max_length":400,"illegal_chars":[],"enabled":false},"fields":[{"ordering":0,"name":"field1","type":"text_area","require":true,"illegal_chars":[],"max_length":100},{"ordering":1,"name":"fff2","type":"option_list","require":false,"choices":["opt1","opt2"]}]}'
|
4033
|
+
```
|
4034
|
+
|
4035
|
+
* Create a Shared inbox with specific metadata profile
|
4036
|
+
|
4037
|
+
```json
|
4038
|
+
ascli faspex5 admin res shared create --value=@json:'{"name":"the shared inbox","metadata_profile_id":1}'
|
4039
|
+
```
|
4040
|
+
|
3745
4041
|
## Plugin: IBM Aspera Faspex (4.x)
|
3746
4042
|
|
3747
4043
|
Notes:
|
@@ -3888,10 +4184,90 @@ cargo client, or drive. Refer to the [same section](#aoccargo) in the Aspera on
|
|
3888
4184
|
ascli faspex packages recv --id=ALL --once-only=yes --lock-port=12345
|
3889
4185
|
```
|
3890
4186
|
|
4187
|
+
### Faspex 4 sample commands
|
4188
|
+
|
4189
|
+
```bash
|
4190
|
+
faspex address_book
|
4191
|
+
faspex dropbox list --recipient="*my_faspex_dbx"
|
4192
|
+
faspex dropbox list --recipient="*my_faspex_wkg"
|
4193
|
+
faspex health
|
4194
|
+
faspex login_methods
|
4195
|
+
faspex me
|
4196
|
+
faspex package list
|
4197
|
+
faspex package list --box=sent --fields=package_id --format=csv --display=data --query=@json:'{"max":1}'
|
4198
|
+
faspex package list --fields=package_id --format=csv --display=data --query=@json:'{"max":1}'
|
4199
|
+
faspex package list --recipient="*my_faspex_dbx" --format=csv --fields=package_id --query=@json:'{"max":1}'
|
4200
|
+
faspex package list --recipient="*my_faspex_wkg" --format=csv --fields=package_id --query=@json:'{"max":1}'
|
4201
|
+
faspex package recv "my_package_id" --to-folder=.
|
4202
|
+
faspex package recv "my_package_id" --to-folder=. --box=sent
|
4203
|
+
faspex package recv --to-folder=. --link="my_faspex_publink_recv_from_fxuser"
|
4204
|
+
faspex package recv ALL --to-folder=. --once-only=yes
|
4205
|
+
faspex package recv my_pkgid --recipient="*my_faspex_dbx" --to-folder=.
|
4206
|
+
faspex package recv my_pkgid --recipient="*my_faspex_wkg" --to-folder=.
|
4207
|
+
faspex package send --delivery-info=@json:'{"title":"Important files delivery","recipients":["*my_faspex_dbx"]}' testfile.bin
|
4208
|
+
faspex package send --delivery-info=@json:'{"title":"Important files delivery","recipients":["*my_faspex_wkg"]}' testfile.bin
|
4209
|
+
faspex package send --delivery-info=@json:'{"title":"Important files delivery","recipients":["my_email_internal_user","my_faspex_username"]}' testfile.bin
|
4210
|
+
faspex package send --link="my_faspex_publink_send_to_dropbox" --delivery-info=@json:'{"title":"Important files delivery"}' testfile.bin
|
4211
|
+
faspex package send --link="my_faspex_publink_send_to_fxuser" --delivery-info=@json:'{"title":"Important files delivery"}' testfile.bin
|
4212
|
+
faspex source list
|
4213
|
+
faspex source name "my_source_name" info
|
4214
|
+
faspex source name "my_source_name" node br /
|
4215
|
+
faspex v4 dmembership list
|
4216
|
+
faspex v4 dropbox list
|
4217
|
+
faspex v4 metadata_profile list
|
4218
|
+
faspex v4 user list
|
4219
|
+
faspex v4 wmembership list
|
4220
|
+
faspex v4 workgroup list
|
4221
|
+
```
|
4222
|
+
|
3891
4223
|
## Plugin: IBM Aspera Shares
|
3892
4224
|
|
3893
4225
|
Aspera Shares supports the "node API" for the file transfer part. (Shares 1 and 2)
|
3894
4226
|
|
4227
|
+
### Shares 1 sample commands
|
4228
|
+
|
4229
|
+
```bash
|
4230
|
+
shares admin share list
|
4231
|
+
shares admin share user_permissions 9
|
4232
|
+
shares admin user app_authorizations 1
|
4233
|
+
shares admin user list
|
4234
|
+
shares admin user share_permissions 1
|
4235
|
+
shares repository browse /
|
4236
|
+
shares repository delete my_shares_upload/testfile.bin
|
4237
|
+
shares repository download --to-folder=. my_shares_upload/testfile.bin
|
4238
|
+
shares repository download --to-folder=. my_shares_upload/testfile.bin --transfer=httpgw --transfer-info=@json:'{"url":"https://my_http_gw_fqdn/aspera/http-gwy/v1"}'
|
4239
|
+
shares repository upload --to-folder=my_shares_upload testfile.bin
|
4240
|
+
shares repository upload --to-folder=my_shares_upload testfile.bin --transfer=httpgw --transfer-info=@json:'{"url":"https://my_http_gw_fqdn/aspera/http-gwy/v1"}'
|
4241
|
+
```
|
4242
|
+
|
4243
|
+
## Plugin: Console
|
4244
|
+
|
4245
|
+
### Console sample commands
|
4246
|
+
|
4247
|
+
```bash
|
4248
|
+
console transfer current list
|
4249
|
+
console transfer smart list
|
4250
|
+
console transfer smart sub my_job_id @json:'{"source":{"paths":["my_file_name"]},"source_type":"user_selected"}'
|
4251
|
+
```
|
4252
|
+
|
4253
|
+
## Plugin: Orchestrator
|
4254
|
+
|
4255
|
+
### Orchestrator sample commands
|
4256
|
+
|
4257
|
+
```bash
|
4258
|
+
orchestrator info
|
4259
|
+
orchestrator plugins
|
4260
|
+
orchestrator processes
|
4261
|
+
orchestrator workflow details my_orch_workflow_id
|
4262
|
+
orchestrator workflow export my_orch_workflow_id
|
4263
|
+
orchestrator workflow inputs my_orch_workflow_id
|
4264
|
+
orchestrator workflow list
|
4265
|
+
orchestrator workflow start my_orch_workflow_id --params=@json:'{"Param":"world !"}'
|
4266
|
+
orchestrator workflow start my_orch_workflow_id --params=@json:'{"Param":"world !"}' --result=ResultStep:Complete_status_message
|
4267
|
+
orchestrator workflow status ALL
|
4268
|
+
orchestrator workflow status my_orch_workflow_id
|
4269
|
+
```
|
4270
|
+
|
3895
4271
|
## Plugin: IBM Cloud Object Storage
|
3896
4272
|
|
3897
4273
|
The IBM Cloud Object Storage provides the possibility to execute transfers using FASP.
|
@@ -3905,7 +4281,7 @@ There are two possibilities to provide credentials. If you already have the endp
|
|
3905
4281
|
If you have those parameters already, then following options shall be provided:
|
3906
4282
|
|
3907
4283
|
* `bucket` bucket name
|
3908
|
-
* `endpoint` storage endpoint url, e.g. https://s3.hkg02.cloud-object-storage.appdomain.cloud
|
4284
|
+
* `endpoint` storage endpoint url, e.g. `https://s3.hkg02.cloud-object-storage.appdomain.cloud`
|
3909
4285
|
* `apikey` API Key
|
3910
4286
|
* `crn` resource instance id
|
3911
4287
|
|
@@ -3985,20 +4361,37 @@ ascli cos node upload 'faux:///sample1G?1g'
|
|
3985
4361
|
|
3986
4362
|
Note: we generate a dummy file `sample1G` of size 2GB using the `faux` PVCL (man ascp and section above), but you can of course send a real file by specifying a real file instead.
|
3987
4363
|
|
4364
|
+
### COS sample commands
|
4365
|
+
|
4366
|
+
```bash
|
4367
|
+
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
|
4368
|
+
cos -N --bucket=my_icos_bucket_name --region=my_icos_bucket_region --service-credentials=@json:@file:service_creds.json node info
|
4369
|
+
cos node access_key show self
|
4370
|
+
cos node download testfile.bin --to-folder=.
|
4371
|
+
cos node info
|
4372
|
+
cos node upload testfile.bin
|
4373
|
+
```
|
4374
|
+
|
3988
4375
|
## Plugin: IBM Aspera Sync
|
3989
4376
|
|
3990
4377
|
A basic plugin to start an "async" using `ascli`.
|
3991
4378
|
The main advantage is the possibility to start from ma configuration file, using `ascli` standard options.
|
3992
4379
|
|
4380
|
+
### Sync sample commands
|
4381
|
+
|
4382
|
+
```bash
|
4383
|
+
sync start --parameters=@json:'{"sessions":[{"name":"test","reset":true,"remote_dir":"/sync_test","local_dir":"contents","host":"my_remote_host","tcp_port":33001,"user":"my_remote_user","private_key_path":"my_local_user_key"}]}'
|
4384
|
+
```
|
4385
|
+
|
3993
4386
|
## Plugin: Preview
|
3994
4387
|
|
3995
|
-
The `preview` generates
|
3996
|
-
|
4388
|
+
The `preview` generates thumbnails (office, images, video) and video previews on storage for use primarily in the Aspera on Cloud application.
|
4389
|
+
It uses the **node API** of Aspera HSTS and requires use of Access Keys and it's **storage root**.
|
3997
4390
|
Several parameters can be used to tune several aspects:
|
3998
4391
|
|
3999
|
-
*
|
4000
|
-
*
|
4001
|
-
*
|
4392
|
+
* Methods for detection of new files needing generation
|
4393
|
+
* Methods for generation of video preview
|
4394
|
+
* Parameters for video handling
|
4002
4395
|
|
4003
4396
|
### Aspera Server configuration
|
4004
4397
|
|
@@ -4237,13 +4630,48 @@ The mp4 video preview file is only for category `video`
|
|
4237
4630
|
|
4238
4631
|
File type is primarily based on file extension detected by the node API and translated info a mime type returned by the node API.
|
4239
4632
|
|
4240
|
-
|
4633
|
+
### mimemagic
|
4634
|
+
|
4635
|
+
By default, the Mime type used for conversion is the one returned by the node API, based on file name extension.
|
4636
|
+
|
4637
|
+
It is also possible to detect the mime type using option `mimemagic`.
|
4638
|
+
To use it, set option `mimemagic` to `yes`: `--mimemagic=yes`.
|
4639
|
+
|
4640
|
+
This requires to manually install the mimemagic gem: `gem install mimemagic`.
|
4241
4641
|
|
4242
|
-
|
4642
|
+
In this case the `preview` command will first analyze the file content using mimemagic, and if no match, will try by extension.
|
4243
4643
|
|
4244
|
-
If
|
4644
|
+
If the `mimemagic` gem complains about missing mime info file:
|
4245
4645
|
|
4246
|
-
|
4646
|
+
* any OS:
|
4647
|
+
|
4648
|
+
* Examine the error message
|
4649
|
+
* Download the file: <https://gitlab.freedesktop.org/xdg/shared-mime-info/-/raw/master/data/freedesktop.org.xml.in>
|
4650
|
+
* move and rename this file to one of the locations expected by mimemagic as specified in the error message
|
4651
|
+
|
4652
|
+
* Windows:
|
4653
|
+
|
4654
|
+
* Download the file: <https://gitlab.freedesktop.org/xdg/shared-mime-info/-/raw/master/data/freedesktop.org.xml.in>
|
4655
|
+
* Place this file in the root of Ruby (or elsewhere): `C:\RubyVV-x64\freedesktop.org.xml.in`
|
4656
|
+
* Set a global variable using `SystemPropertiesAdvanced.exe` or using `cmd` (replace `VV` with version) to the exact path of this file:
|
4657
|
+
|
4658
|
+
```cmd
|
4659
|
+
SETX FREEDESKTOP_MIME_TYPES_PATH C:\RubyVV-x64\freedesktop.org.xml.in
|
4660
|
+
```
|
4661
|
+
|
4662
|
+
* Close the `cmd` and restart a new one if needed to get refreshed env vars
|
4663
|
+
|
4664
|
+
* Linux:
|
4665
|
+
|
4666
|
+
```bash
|
4667
|
+
yum install shared-mime-info
|
4668
|
+
```
|
4669
|
+
|
4670
|
+
* macOS:
|
4671
|
+
|
4672
|
+
```bash
|
4673
|
+
brew install shared-mime-info
|
4674
|
+
```
|
4247
4675
|
|
4248
4676
|
### Access to original files and preview creation
|
4249
4677
|
|
@@ -4256,6 +4684,23 @@ are directly written to the storage.
|
|
4256
4684
|
|
4257
4685
|
If the preview generator does not have access to files on the file system (it is remote, no mount, or is an object storage), then the original file is first downloaded, then the result is uploaded, use method `remote`.
|
4258
4686
|
|
4687
|
+
### Preview sample commands
|
4688
|
+
|
4689
|
+
```bash
|
4690
|
+
preview check --skip-types=office
|
4691
|
+
preview folder 1 --skip-types=office --log-level=info --file-access=remote --ts=@json:'{"target_rate_kbps":1000000}'
|
4692
|
+
preview scan --skip-types=office --log-level=info
|
4693
|
+
preview test --case=test mp4 my_file_mxf --video-conversion=blend --log-level=debug
|
4694
|
+
preview test --case=test mp4 my_file_mxf --video-conversion=clips --log-level=debug
|
4695
|
+
preview test --case=test mp4 my_file_mxf --video-conversion=reencode --log-level=debug
|
4696
|
+
preview test --case=test png my_file_dcm --log-level=debug
|
4697
|
+
preview test --case=test png my_file_docx --log-level=debug
|
4698
|
+
preview test --case=test png my_file_mxf --video-png-conv=animated --log-level=debug
|
4699
|
+
preview test --case=test png my_file_mxf --video-png-conv=fixed --log-level=debug
|
4700
|
+
preview test --case=test png my_file_pdf --log-level=debug
|
4701
|
+
preview trevents --once-only=yes --skip-types=office --log-level=info
|
4702
|
+
```
|
4703
|
+
|
4259
4704
|
## SMTP for email notifications
|
4260
4705
|
|
4261
4706
|
Aspera CLI can send email, for that setup SMTP configuration. This is done with option `smtp`.
|
@@ -4273,7 +4718,7 @@ The `smtp` option is a hash table (extended value) with the following fields:
|
|
4273
4718
|
<tr><td>`from_name`</td><td>same as email</td><td>John Wayne</td><td>display name of sender</td></tr>
|
4274
4719
|
</table>
|
4275
4720
|
|
4276
|
-
### Example of configuration
|
4721
|
+
### Example of configuration
|
4277
4722
|
|
4278
4723
|
```bash
|
4279
4724
|
ascli config preset set smtp_google server smtp.google.com
|
@@ -4487,7 +4932,7 @@ Note: parameters may be saved in a [option preset](#lprt) and used with `-P`.
|
|
4487
4932
|
|
4488
4933
|
#### Scheduling
|
4489
4934
|
|
4490
|
-
Once `ascli` parameters are defined, run the command using the OS native scheduler, e.g. every minutes, or 5 minutes, etc... Refer to section [
|
4935
|
+
Once `ascli` parameters are defined, run the command using the OS native scheduler, e.g. every minutes, or 5 minutes, etc... Refer to section [Scheduling](#scheduling).
|
4491
4936
|
|
4492
4937
|
### Example: upload folder
|
4493
4938
|
|
@@ -4570,6 +5015,10 @@ aoc.read('self')
|
|
4570
5015
|
|
4571
5016
|
<https://github.com/IBM/aspera-cli/blob/main/examples/aoc.rb>
|
4572
5017
|
|
5018
|
+
## Changes (Release notes)
|
5019
|
+
|
5020
|
+
See <CHANGELOG.md>
|
5021
|
+
|
4573
5022
|
## History
|
4574
5023
|
|
4575
5024
|
When I joined Aspera, there was only one CLI: `ascp`, which is the implementation of the FASP protocol, but there was no CLI to access the various existing products (Server, Faspex, Shares). Once, Serban (founder) provided a shell script able to create a Faspex Package using Faspex REST API. Since all products relate to file transfers using FASP (ascp), I thought it would be interesting to have a unified CLI for transfers using FASP. Also, because there was already the `ascp` tool, I thought of an extended tool : `eascp.pl` which was accepting all `ascp` options for transfer but was also able to transfer to Faspex and Shares (destination was a kind of URI for the applications).
|
@@ -4586,466 +5035,9 @@ So, it evolved into `ascli`:
|
|
4586
5035
|
* supports transfers with multiple [Transfer Agents](#agents), that's why transfer parameters moved from ascp command line to [*transfer-spec*](#transferspec) (more reliable , more standard)
|
4587
5036
|
* `ruby` is consistent with other Aspera products
|
4588
5037
|
|
4589
|
-
## Changes (Release notes)
|
4590
|
-
|
4591
|
-
* 4.7.0
|
4592
|
-
|
4593
|
-
* new: option to specify font used to generate image of text file in `preview`
|
4594
|
-
* new: #66 improvement for content protection (support standard transfer spec options for direct agent)
|
4595
|
-
* new: option `fpac` is now applicable to all ruby based HTTP connections, i.e. API calls
|
4596
|
-
* new: option `show_secrets` to reveal secrets in command output
|
4597
|
-
* new: added and updated commands for Faspex 5
|
4598
|
-
* new: option `cache_tokens`
|
4599
|
-
* new: Faspex4 dropbox packages can now be received by id
|
4600
|
-
* change: (break) command `conf gem path` replaces `conf gem_path`
|
4601
|
-
* change: (break) option `fpac` expects a value instead of URL
|
4602
|
-
* change: (break) option `cipher` in transfer spec must have hyphen
|
4603
|
-
* change: (break) renamed option `log_passwords` to `log_secrets`
|
4604
|
-
* change: (break) removed plugin `shares2` as products is now EOL
|
4605
|
-
* fix: After AoC version update, wizard did not detect AoC properly
|
4606
|
-
|
4607
|
-
* 4.6.0
|
4608
|
-
|
4609
|
-
* new: command `conf plugin create`
|
4610
|
-
* new: global option `plugin_folder`
|
4611
|
-
* new: global option `transpose_single`
|
4612
|
-
* new: simplified metadata passing for shared inbox package creation in AoC
|
4613
|
-
* change: (break) command `aoc packages shared_inboxes list` replaces `aoc user shared_inboxes`
|
4614
|
-
* change: (break) command `aoc user profile` replaces `aoc user info`
|
4615
|
-
* change: (break) command `aoc user workspaces list` replaces `aoc user workspaces`
|
4616
|
-
* change: (break) command `aoc user workspaces current` replaces `aoc workspace`
|
4617
|
-
* change: (break) command `conf plugin list` replaces `conf plugins`
|
4618
|
-
* change: (break) command `conf connect` simplified
|
4619
|
-
* fix: #60 ascli executable was not installed by default in 4.5.0
|
4620
|
-
* fix: add password hiding case in logs
|
4621
|
-
|
4622
|
-
* 4.5.0
|
4623
|
-
|
4624
|
-
* new: support transfer agent: [Transfer SDK](#agt_trsdk)
|
4625
|
-
* new: support [http socket options](#http_options)
|
4626
|
-
* new: logs hide passwords and secrets, option `log_passwords` to enable logging secrets
|
4627
|
-
* new: `config vault` supports encrypted passwords, also macos keychain
|
4628
|
-
* new: `config preset` command for consistency with id
|
4629
|
-
* new: identifier can be provided using either option `id` or directly after the command, e.g. `delete 123` is the same as `delete --id=123`
|
4630
|
-
* change: when using wss, use [ruby's CA certs](#certificates)
|
4631
|
-
* change: unexpected parameter makes exit code not zero
|
4632
|
-
* change: (break) options `id` and `name` cannot be specified at the same time anymore, use [positional identifer or name selection](#res_select)
|
4633
|
-
* change: (break) `aoc admin res node` does not take workspace main node as default node if no `id` specified.
|
4634
|
-
* change: (break): `orchestrator workflow status` requires id, and supports special id `ALL`
|
4635
|
-
* fix: various smaller fixes and renaming of some internal classes (transfer agents and few other)
|
4636
|
-
|
4637
|
-
* 4.4.0
|
4638
|
-
|
4639
|
-
* new: `aoc packages list` add possibility to add filter with option `query`
|
4640
|
-
* new: `aoc admin res xxx list` now get all items by default #50
|
4641
|
-
* new: `preset` option can specify name or hash value
|
4642
|
-
* new: `node` plugin accepts bearer token and access key as credential
|
4643
|
-
* new: `node` option `token_type` allows using basic token in addition to aspera type.
|
4644
|
-
* change: `server`: option `username` not mandatory anymore: xfer user is by default. If transfer spec token is provided, password or keys are optional, and bypass keys are used by default.
|
4645
|
-
* change: (break) resource `apps_new` of `aoc` replaced with `application` (more clear)
|
4646
|
-
|
4647
|
-
* 4.3.0
|
4648
|
-
|
4649
|
-
* new: parameter `multi_incr_udp` for option `transfer_info`: control if UDP port is incremented when multi-session is used on [`direct`](#agt_direct) transfer agent.
|
4650
|
-
* new: command `aoc files node_info` to get node information for a given folder in the Files application of AoC. Allows cross-org or cross-workspace transfers.
|
4651
|
-
|
4652
|
-
* 4.2.2
|
4653
|
-
|
4654
|
-
* new: `faspex package list` retrieves the whole list, not just first page
|
4655
|
-
* new: support web based auth to aoc and faspex 5 using HTTPS, new dependency on gem `webrick`
|
4656
|
-
* new: the error "Remote host is not who we expected" displays a special remediation message
|
4657
|
-
* new: `conf ascp spec` displays supported transfer spec
|
4658
|
-
* new: options `notif_to` and `notif_template` to send email notifications on transfer (and other events)
|
4659
|
-
* fix: space character in `faspe:` url are precent encoded if needed
|
4660
|
-
* fix: `preview scan`: if file_id is unknown, ignore and continue scan
|
4661
|
-
* change: for commands that potentially execute several transfers (`package recv --id=ALL`), if one transfer fails then `ascli` exits with code 1 (instead of zero=success)
|
4662
|
-
* change: (break) option `notify` or `aoc` replaced with `notif_to` and `notif_template`
|
4663
|
-
|
4664
|
-
* 4.2.1
|
4665
|
-
|
4666
|
-
* new: command `faspex package recv` supports link of type: `faspe:`
|
4667
|
-
* new: command `faspex package recv` supports option `recipient` to specify dropbox with leading `*`
|
4668
|
-
|
4669
|
-
* 4.2.0
|
4670
|
-
|
4671
|
-
* new: command `aoc remind` to receive organization membership by email
|
4672
|
-
* new: in `preview` option `value` to filter out on file name
|
4673
|
-
* new: `initdemo` to initialize for demo server
|
4674
|
-
* new: [`direct`](#agt_direct) transfer agent options: `spawn_timeout_sec` and `spawn_delay_sec`
|
4675
|
-
* fix: on Windows `conf ascp use` expects ascp.exe
|
4676
|
-
* fix: (break) multi_session_threshold is Integer, not String
|
4677
|
-
* fix: `conf ascp install` renames sdk folder if it already exists (leftover shared lib may make fail)
|
4678
|
-
* fix: removed replace_illegal_chars from default aspera.conf causing "Error creating illegal char conversion table"
|
4679
|
-
* change: (break) `aoc apiinfo` is removed, use `aoc servers` to provide the list of cloud systems
|
4680
|
-
* change: (break) parameters for resume in `transfer-info` for [`direct`](#agt_direct) are now in sub-key `"resume"`
|
4681
|
-
|
4682
|
-
* 4.1.0
|
4683
|
-
|
4684
|
-
* fix: remove keys from transfer spec and command line when not needed * fix: default to create_dir:true so that sending single file to a folder does not rename file if folder does not exist
|
4685
|
-
* new: update documentation with regard to offline and docker installation
|
4686
|
-
* new: renamed command `nagios_check` to `health`
|
4687
|
-
* new: agent `http_gw` now supports upload
|
4688
|
-
* new: added option `sdk_url` to install SDK from local file for offline install
|
4689
|
-
* new: check new gem version periodically
|
4690
|
-
* new: the --fields= option, support -_fieldname_ to remove a field from default fields
|
4691
|
-
* new: Oauth tokens are discarded automatically after 30 minutes (useful for COS delegated refresh tokens)
|
4692
|
-
* new: mimemagic is now optional, needs manual install for `preview`, compatible with version 0.4.x
|
4693
|
-
* new: AoC a password can be provided for a public link
|
4694
|
-
* new: `conf doc` take an optional parameter to go to a section
|
4695
|
-
* new: initial support for Faspex 5 Beta 1
|
4696
|
-
|
4697
|
-
* 4.0.0
|
4698
|
-
|
4699
|
-
* now available as open source at [https://github.com/IBM/aspera-cli](https://github.com/IBM/aspera-cli) with general cleanup
|
4700
|
-
* changed default tool name from `mlia` to `ascli`
|
4701
|
-
* changed `aspera` command to `aoc`
|
4702
|
-
* changed gem name from `asperalm` to `aspera-cli`
|
4703
|
-
* changed module name from `Asperalm` to `Aspera`
|
4704
|
-
* removed command `folder` in `preview`, merged to `scan`
|
4705
|
-
* persistency files go to sub folder instead of main folder
|
4706
|
-
* added possibility to install SDK: `config ascp install`
|
4707
|
-
|
4708
|
-
* 0.11.8
|
4709
|
-
|
4710
|
-
* Simplified to use `unoconv` instead of bare `libreoffice` for office conversion, as `unoconv` does not require a X server (previously using Xvfb
|
4711
|
-
|
4712
|
-
* 0.11.7
|
4713
|
-
|
4714
|
-
* rework on rest call error handling
|
4715
|
-
* use option `display` with value `data` to remove out of extraneous information
|
4716
|
-
* fixed option `lock_port` not working
|
4717
|
-
* generate special icon if preview failed
|
4718
|
-
* possibility to choose transfer progress bar type with option `progress`
|
4719
|
-
* AoC package creation now output package id
|
4720
|
-
|
4721
|
-
* 0.11.6
|
4722
|
-
|
4723
|
-
* orchestrator : added more choice in auth type
|
4724
|
-
* preview: cleanup in generator (removed and renamed parameters)
|
4725
|
-
* preview: better documentation
|
4726
|
-
* preview: animated thumbnails for video (option: `video_png_conv=animated`)
|
4727
|
-
* preview: new event trigger: `trevents` (`events` seems broken)
|
4728
|
-
* preview: unique tmp folder to avoid clash of multiple instances
|
4729
|
-
* repo: added template for secrets used for testing
|
4730
|
-
|
4731
|
-
* 0.11.5
|
4732
|
-
|
4733
|
-
* added option `default_ports` for AoC (see manual)
|
4734
|
-
* allow bulk delete in `aspera files` with option `bulk=yes`
|
4735
|
-
* fix getting connect versions
|
4736
|
-
* added section for Aix
|
4737
|
-
* support all ciphers for [`direct`](#agt_direct) agent (including gcm, etc..)
|
4738
|
-
* added transfer spec param `apply_local_docroot` for [`direct`](#agt_direct)
|
4739
|
-
|
4740
|
-
* 0.11.4
|
4741
|
-
|
4742
|
-
* possibility to give shared inbox name when sending a package (else use id and type)
|
4743
|
-
|
4744
|
-
* 0.11.3
|
4745
|
-
|
4746
|
-
* minor fixes on multi-session: avoid exception on progress bar
|
4747
|
-
|
4748
|
-
* 0.11.2
|
4749
|
-
|
4750
|
-
* fixes on multi-session: progress bat and transfer spec param for "direct"
|
4751
|
-
|
4752
|
-
* 0.11.1
|
4753
|
-
|
4754
|
-
* enhanced short_link creation commands (see examples)
|
4755
|
-
|
4756
|
-
* 0.11
|
4757
|
-
|
4758
|
-
* add transfer spec option (agent `direct` only) to provide file list directly to ascp: `EX_file_list`.
|
4759
|
-
|
4760
|
-
* 0.10.18
|
4761
|
-
|
4762
|
-
* new option in. `server` : `ssh_options`
|
4763
|
-
|
4764
|
-
* 0.10.17
|
4765
|
-
|
4766
|
-
* fixed problem on `server` for option `ssh_keys`, now accepts both single value and list.
|
4767
|
-
* new modifier: `@list:<separator>val1<separator>...`
|
4768
|
-
|
4769
|
-
* 0.10.16
|
4770
|
-
|
4771
|
-
* added list of shared inboxes in workspace (or global), use `--query=@json:'{}'`
|
4772
|
-
|
4773
|
-
* 0.10.15
|
4774
|
-
|
4775
|
-
* in case of command line error, display the error cause first, and non-parsed argument second
|
4776
|
-
* AoC : Activity / Analytics
|
4777
|
-
|
4778
|
-
* 0.10.14
|
4779
|
-
|
4780
|
-
* added missing bss plugin
|
4781
|
-
|
4782
|
-
* 0.10.13
|
4783
|
-
|
4784
|
-
* added Faspex5 (use option `value` to give API arguments)
|
4785
|
-
|
4786
|
-
* 0.10.12
|
4787
|
-
|
4788
|
-
* added support for AoC node registration keys
|
4789
|
-
* replaced option : `local_resume` with `transfer_info` for agent [`direct`](#agt_direct)
|
4790
|
-
* Transfer agent is no more a Singleton instance, but only one is used in CLI
|
4791
|
-
* `@incps` : new extended value modifier
|
4792
|
-
* ATS: no more provides access keys secrets: now user must provide it
|
4793
|
-
* begin work on "aoc" transfer agent
|
4794
|
-
|
4795
|
-
* 0.10.11
|
4796
|
-
|
4797
|
-
* minor refactor and fixes
|
4798
|
-
|
4799
|
-
* 0.10.10
|
4800
|
-
|
4801
|
-
* fix on documentation
|
4802
|
-
|
4803
|
-
* 0.10.9.1
|
4804
|
-
|
4805
|
-
* add total number of items for AoC resource list
|
4806
|
-
* better gem version dependency (and fixes to support Ruby 2.0.0)
|
4807
|
-
* removed aoc search_nodes
|
4808
|
-
|
4809
|
-
* 0.10.8
|
4810
|
-
|
4811
|
-
* removed option: `fasp_proxy`, use pseudo transfer spec parameter: `EX_fasp_proxy_url`
|
4812
|
-
* removed option: `http_proxy`, use pseudo transfer spec parameter: `EX_http_proxy_url`
|
4813
|
-
* several other changes..
|
4814
|
-
|
4815
|
-
* 0.10.7
|
4816
|
-
|
4817
|
-
* fix: ascli fails when username cannot be computed on Linux.
|
4818
|
-
|
4819
|
-
* 0.10.6
|
4820
|
-
|
4821
|
-
* FaspManager: transfer spec `authentication` no more needed for local transfer to use Aspera public keys. public keys will be used if there is a token and no key or password is provided.
|
4822
|
-
* gem version requirements made more open
|
4823
|
-
|
4824
|
-
* 0.10.5
|
4825
|
-
|
4826
|
-
* fix faspex package receive command not working
|
4827
|
-
|
4828
|
-
* 0.10.4
|
4829
|
-
|
4830
|
-
* new options for AoC : `secrets`
|
4831
|
-
* ACLI-533 temp file list folder to use file lists is set by default, and used by asession
|
4832
|
-
|
4833
|
-
* 0.10.3
|
4834
|
-
|
4835
|
-
* included user name in oauth bearer token cache for AoC when JWT is used.
|
4836
|
-
|
4837
|
-
* 0.10.2
|
4838
|
-
|
4839
|
-
* updated `search_nodes` to be more generic, so it can search not only on access key, but also other queries.
|
4840
|
-
* added doc for "cargo" like actions
|
4841
|
-
* added doc for multi-session
|
4842
|
-
|
4843
|
-
* 0.10.1
|
4844
|
-
|
4845
|
-
* AoC and node v4 "browse" works now on non-folder items: file, link
|
4846
|
-
* initial support for AoC automation (do not use yet)
|
4847
|
-
|
4848
|
-
* 0.10
|
4849
|
-
|
4850
|
-
* support for transfer using IBM Cloud Object Storage
|
4851
|
-
* improved `find` action using arbitrary expressions
|
4852
|
-
|
4853
|
-
* 0.9.36
|
4854
|
-
|
4855
|
-
* added option to specify file pair lists
|
4856
|
-
|
4857
|
-
* 0.9.35
|
4858
|
-
|
4859
|
-
* updated plugin `preview` , changed parameter names, added documentation
|
4860
|
-
* fix in `ats` plugin : instance id needed in request header
|
4861
|
-
|
4862
|
-
* 0.9.34
|
4863
|
-
|
4864
|
-
* parser "@preset" can be used again in option "transfer_info"
|
4865
|
-
* some documentation re-organizing
|
4866
|
-
|
4867
|
-
* 0.9.33
|
4868
|
-
|
4869
|
-
* new command to display basic token of node
|
4870
|
-
* new command to display bearer token of node in AoC
|
4871
|
-
* the --fields= option, support +_fieldname_ to add a field to default fields
|
4872
|
-
* many small changes
|
4873
|
-
|
4874
|
-
* 0.9.32
|
4875
|
-
|
4876
|
-
* all Faspex public links are now supported
|
4877
|
-
* removed faspex operation recv_publink
|
4878
|
-
* replaced with option `link` (consistent with AoC)
|
4879
|
-
|
4880
|
-
* 0.9.31
|
4881
|
-
|
4882
|
-
* added more support for public link: receive and send package, to user or dropbox and files view.
|
4883
|
-
* delete expired file lists
|
4884
|
-
* changed text table gem from text-table to terminal-table because it supports multiline values
|
4885
|
-
|
4886
|
-
* 0.9.27
|
4887
|
-
|
4888
|
-
* basic email support with SMTP
|
4889
|
-
* basic proxy auto config support
|
4890
|
-
|
4891
|
-
* 0.9.26
|
4892
|
-
|
4893
|
-
* table display with --fields=ALL now includes all column names from all lines, not only first one
|
4894
|
-
* unprocessed argument shows error even if there is an error beforehand
|
4895
|
-
|
4896
|
-
* 0.9.25
|
4897
|
-
|
4898
|
-
* the option `value` of command `find`, to filter on name, is not optional
|
4899
|
-
* `find` now also reports all types (file, folder, link)
|
4900
|
-
* `find` now is able to report all fields (type, size, etc...)
|
4901
|
-
|
4902
|
-
* 0.9.24
|
4903
|
-
|
4904
|
-
* fix bug where AoC node to node transfer did not work
|
4905
|
-
* fix bug on error if ED25519 private key is defined in .ssh
|
4906
|
-
|
4907
|
-
* 0.9.23
|
4908
|
-
|
4909
|
-
* defined REST error handlers, more error conditions detected
|
4910
|
-
* commands to select specific ascp location
|
4911
|
-
|
4912
|
-
* 0.9.21
|
4913
|
-
|
4914
|
-
* supports simplified wizard using global client
|
4915
|
-
* only ascp binary is required, other SDK (keys) files are now generated
|
4916
|
-
|
4917
|
-
* 0.9.20
|
4918
|
-
|
4919
|
-
* improved wizard (prepare for AoC global client id)
|
4920
|
-
* preview generator: addedoption : --skip-format=<png,mp4>
|
4921
|
-
* removed outdated pictures from this doc
|
4922
|
-
|
4923
|
-
* 0.9.19
|
4924
|
-
|
4925
|
-
* added command aspera bearer --scope=xx
|
4926
|
-
|
4927
|
-
* 0.9.18
|
4928
|
-
|
4929
|
-
* enhanced aspera admin events to support query
|
4930
|
-
|
4931
|
-
* 0.9.16
|
4932
|
-
|
4933
|
-
* AoC transfers are now reported in activity app
|
4934
|
-
* new interface for Rest class authentication (keep backward compatibility)
|
4935
|
-
|
4936
|
-
* 0.9.15
|
4937
|
-
|
4938
|
-
* new feature: "find" command in aspera files
|
4939
|
-
* sample code for transfer API
|
4940
|
-
|
4941
|
-
* 0.9.12
|
4942
|
-
|
4943
|
-
* add nagios commands
|
4944
|
-
* support of ATS for IBM Cloud, removed old version based on aspera id
|
4945
|
-
|
4946
|
-
* 0.9.11
|
4947
|
-
|
4948
|
-
* Breaking change: @stdin is now @stdin:
|
4949
|
-
* support of ATS for IBM Cloud, removed old version based on aspera id
|
4950
|
-
|
4951
|
-
|
4952
|
-
* 0.9.10
|
4953
|
-
|
4954
|
-
* Breaking change: parameter transfer-node becomes more generic: transfer-info
|
4955
|
-
* Display SaaS storage usage with command: aspera admin res node --id=nn info
|
4956
|
-
* cleaner way of specifying source file list for transfers
|
4957
|
-
* Breaking change: replaced download_mode option with http_download action
|
4958
|
-
|
4959
|
-
* 0.9.9
|
4960
|
-
|
4961
|
-
* Breaking change: "aspera package send" parameter deprecated, use the --value option instead with "recipients" value. See example.
|
4962
|
-
* Now supports "cargo" for Aspera on Cloud (automatic package download)
|
4963
|
-
|
4964
|
-
* 0.9.8
|
4965
|
-
|
4966
|
-
* Faspex: use option once_only set to yes to enable cargo like function. id=NEW deprecated.
|
4967
|
-
* AoC: share to share transfer with command "transfer"
|
4968
|
-
|
4969
|
-
* 0.9.7
|
4970
|
-
|
4971
|
-
* homogeneous [*transfer-spec*](#transferspec) for `node` and [`direct`](#agt_direct) transfer agents
|
4972
|
-
* preview persistency goes to unique file by default
|
4973
|
-
* catch mxf extension in preview as video
|
4974
|
-
* Faspex: possibility to download all packages by specifying id=ALL
|
4975
|
-
* Faspex: to come: cargo-like function to download only new packages with id=NEW
|
4976
|
-
|
4977
|
-
* 0.9.6
|
4978
|
-
|
4979
|
-
* Breaking change: `@param:`is now `@preset:` and is generic
|
4980
|
-
* AoC: added command to display current workspace information
|
4981
|
-
|
4982
|
-
* 0.9.5
|
4983
|
-
|
4984
|
-
* new parameter: new_user_option used to choose between public_link and invite of external users.
|
4985
|
-
* fixed bug in wizard, and wizard uses now product detection
|
4986
|
-
|
4987
|
-
* 0.9.4
|
4988
|
-
|
4989
|
-
* Breaking change: onCloud file list follow --source convention as well (plus specific case for download when first path is source folder, and other are source file names).
|
4990
|
-
* AoC Package send supports external users
|
4991
|
-
* new command to export AoC config to Aspera CLI config
|
4992
|
-
|
4993
|
-
* 0.9.3
|
4994
|
-
|
4995
|
-
* REST error message show host and code
|
4996
|
-
* option for quiet display
|
4997
|
-
* modified transfer interface and allow token re-generation on error
|
4998
|
-
* async add admin command
|
4999
|
-
* async add db parameters
|
5000
|
-
* Breaking change: new option "sources" to specify files to transfer
|
5001
|
-
|
5002
|
-
* 0.9.2
|
5003
|
-
|
5004
|
-
* Breaking change: changed AoC package creation to match API, see AoC section
|
5005
|
-
|
5006
|
-
* 0.9.1
|
5007
|
-
|
5008
|
-
* Breaking change: changed faspex package creation to match API, see Faspex section
|
5009
|
-
|
5010
|
-
* 0.9
|
5011
|
-
|
5012
|
-
* Renamed the CLI from aslmcli to `ascli`
|
5013
|
-
* Automatic rename and conversion of former config folder from aslmcli to `ascli`
|
5014
|
-
|
5015
|
-
* 0.7.6
|
5016
|
-
|
5017
|
-
* add "sync" plugin
|
5018
|
-
|
5019
|
-
* 0.7
|
5020
|
-
|
5021
|
-
* Breaking change: AoC package recv take option if for package instead of argument.
|
5022
|
-
* Breaking change: Rest class and Oauth class changed init parameters
|
5023
|
-
* AoC: receive package from public link
|
5024
|
-
* select by col value on output
|
5025
|
-
* added rename (AoC, node)
|
5026
|
-
|
5027
|
-
* 0.6.19
|
5028
|
-
|
5029
|
-
* change: (break) ats server list provisioned → ats cluster list
|
5030
|
-
* change: (break) ats server list clouds → ats cluster clouds
|
5031
|
-
* change: (break) ats server list instance --cloud=x --region=y → ats cluster show --cloud=x --region=y
|
5032
|
-
* change: (break) ats server id xxx → ats cluster show --id=xxx
|
5033
|
-
* change: (break) ats subscriptions → ats credential subscriptions
|
5034
|
-
* change: (break) ats api_key repository list → ats credential cache list
|
5035
|
-
* change: (break) ats api_key list → ats credential list
|
5036
|
-
* change: (break) ats access_key id xxx → ats access_key --id=xxx
|
5037
|
-
|
5038
|
-
* 0.6.18
|
5039
|
-
|
5040
|
-
* some commands take now --id option instead of id command.
|
5041
|
-
|
5042
|
-
* 0.6.15
|
5043
|
-
|
5044
|
-
* 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".
|
5045
|
-
|
5046
5038
|
## Common problems
|
5047
5039
|
|
5048
|
-
### Error "Remote host is not who we expected"
|
5040
|
+
### Error: "Remote host is not who we expected"
|
5049
5041
|
|
5050
5042
|
Cause: `ascp` >= 4.x checks fingerprint of highest server host key, including ECDSA. `ascp` < 4.0 (3.9.6 and earlier) support only to RSA level (and ignore ECDSA presented by server). `aspera.conf` supports a single fingerprint.
|
5051
5043
|
|
@@ -5059,6 +5051,13 @@ Workaround on server side: Either remove the fingerprint from `aspera.conf`, or
|
|
5059
5051
|
|
5060
5052
|
References: 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).
|
5061
5053
|
|
5054
|
+
### Error "can't find header files for ruby"
|
5055
|
+
|
5056
|
+
Some Ruby gems dependencies require compilation of native parts (C).
|
5057
|
+
This also requires Ruby header files.
|
5058
|
+
If Ruby was installed as a Linux Packages, then also install ruby dev elopment package:
|
5059
|
+
`ruby-dev` ir `ruby-devel`, depending on distribution.
|
5060
|
+
|
5062
5061
|
### ED255519 key not supported
|
5063
5062
|
|
5064
5063
|
ED25519 keys are deactivated since version 0.9.24 so this type of key will just be ignored.
|
@@ -5071,19 +5070,3 @@ OpenSSH keys only supported if ED25519 is available
|
|
5071
5070
|
|
5072
5071
|
Which meant that you do not have ruby support for ED25519 SSH keys.
|
5073
5072
|
You may either install the suggested Gems, or remove your ed25519 key from your `.ssh` folder to solve the issue.
|
5074
|
-
|
5075
|
-
## BUGS, FEATURES, CONTRIBUTION
|
5076
|
-
|
5077
|
-
For issues reports or feature requests use the Github repository and issues.
|
5078
|
-
|
5079
|
-
You can also contribute to this open source project.
|
5080
|
-
|
5081
|
-
One can also [create one's own plugin](#createownplugin).
|
5082
|
-
|
5083
|
-
## Miscellaneous
|
5084
|
-
|
5085
|
-
* replace rest and oauth classes with ruby standard gems:
|
5086
|
-
* <https://github.com/rest-client/rest-client>
|
5087
|
-
* <https://github.com/oauth-xx/oauth2>
|
5088
|
-
* use gem Thor <http://whatisthor.com/> (or other standard Ruby CLI manager)
|
5089
|
-
* Package with <https://github.com/pmq20/ruby-packer> (rubyc)
|