aspera-cli 4.20.0 → 4.21.1
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 +0 -0
- data/CHANGELOG.md +29 -3
- data/CONTRIBUTING.md +2 -0
- data/README.md +571 -375
- data/bin/asession +2 -2
- data/examples/get_proto_file.rb +1 -1
- data/lib/aspera/agent/alpha.rb +10 -16
- data/lib/aspera/agent/connect.rb +20 -2
- data/lib/aspera/agent/direct.rb +21 -30
- data/lib/aspera/agent/node.rb +1 -11
- data/lib/aspera/agent/{trsdk.rb → transferd.rb} +13 -34
- data/lib/aspera/api/aoc.rb +13 -8
- data/lib/aspera/api/node.rb +45 -28
- data/lib/aspera/ascp/installation.rb +87 -48
- data/lib/aspera/ascp/management.rb +27 -6
- data/lib/aspera/cli/formatter.rb +148 -154
- data/lib/aspera/cli/info.rb +1 -1
- data/lib/aspera/cli/main.rb +12 -0
- data/lib/aspera/cli/manager.rb +2 -2
- data/lib/aspera/cli/plugin.rb +2 -2
- data/lib/aspera/cli/plugins/aoc.rb +28 -18
- data/lib/aspera/cli/plugins/config.rb +106 -54
- data/lib/aspera/cli/plugins/cos.rb +1 -0
- data/lib/aspera/cli/plugins/faspex.rb +4 -2
- data/lib/aspera/cli/plugins/faspex5.rb +21 -9
- data/lib/aspera/cli/plugins/node.rb +45 -38
- data/lib/aspera/cli/transfer_progress.rb +2 -0
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/command_line_builder.rb +1 -1
- data/lib/aspera/environment.rb +48 -14
- data/lib/aspera/node_simulator.rb +230 -112
- data/lib/aspera/oauth/base.rb +34 -47
- data/lib/aspera/oauth/factory.rb +41 -2
- data/lib/aspera/oauth/jwt.rb +4 -1
- data/lib/aspera/persistency_action_once.rb +1 -1
- data/lib/aspera/persistency_folder.rb +20 -2
- data/lib/aspera/preview/generator.rb +1 -1
- data/lib/aspera/preview/utils.rb +8 -3
- data/lib/aspera/products/alpha.rb +30 -0
- data/lib/aspera/products/connect.rb +48 -0
- data/lib/aspera/products/other.rb +82 -0
- data/lib/aspera/products/transferd.rb +54 -0
- data/lib/aspera/rest.rb +18 -13
- data/lib/aspera/secret_hider.rb +2 -2
- data/lib/aspera/ssh.rb +31 -24
- data/lib/aspera/transfer/parameters.rb +2 -1
- data/lib/aspera/transfer/spec.yaml +22 -20
- data/lib/aspera/transfer/sync.rb +1 -5
- data/lib/aspera/transfer/uri.rb +2 -2
- data/lib/transferd_pb.rb +86 -0
- data/lib/transferd_services_pb.rb +84 -0
- data.tar.gz.sig +0 -0
- metadata +38 -21
- metadata.gz.sig +0 -0
- data/lib/aspera/ascp/products.rb +0 -168
- data/lib/transfer_pb.rb +0 -84
- data/lib/transfer_services_pb.rb +0 -82
data/README.md
CHANGED
@@ -5,7 +5,7 @@ Do not edit this README.md, edit docs/README.erb.md, for details, read docs/READ
|
|
5
5
|
markdownlint-disable MD033 MD003 MD053
|
6
6
|
cspell:ignore Serban Antipolis
|
7
7
|
PANDOC_META_BEGIN
|
8
|
-
subtitle: "ascli 4.
|
8
|
+
subtitle: "ascli 4.21.1"
|
9
9
|
PANDOC_META_END
|
10
10
|
-->
|
11
11
|
|
@@ -15,7 +15,7 @@ PANDOC_META_END
|
|
15
15
|
|
16
16
|
## Introduction
|
17
17
|
|
18
|
-
Version : 4.
|
18
|
+
Version : 4.21.1
|
19
19
|
|
20
20
|
Laurent/2016-2025
|
21
21
|
|
@@ -27,9 +27,9 @@ Ruby Gem: [https://rubygems.org/gems/aspera-cli](https://rubygems.org/gems/asper
|
|
27
27
|
|
28
28
|
Ruby Doc: [https://www.rubydoc.info/gems/aspera-cli](https://www.rubydoc.info/gems/aspera-cli)
|
29
29
|
|
30
|
-
Minimum required Ruby version: >=
|
30
|
+
Minimum required Ruby version: >= 3.1.
|
31
31
|
|
32
|
-
> **Deprecation notice**: the minimum Ruby version will be 3.
|
32
|
+
> **Deprecation notice**: the minimum Ruby version will be 3.2 in a future version.
|
33
33
|
|
34
34
|
[Aspera APIs on IBM developer](https://developer.ibm.com/?size=30&q=aspera&DWContentType[0]=APIs&sort=title_asc)
|
35
35
|
[Link 2](https://developer.ibm.com/apis/catalog/?search=aspera)
|
@@ -112,7 +112,7 @@ Once the gem is installed, `ascli` shall be accessible:
|
|
112
112
|
|
113
113
|
```console
|
114
114
|
$ ascli --version
|
115
|
-
4.
|
115
|
+
4.21.1
|
116
116
|
```
|
117
117
|
|
118
118
|
### First use
|
@@ -211,26 +211,31 @@ The direct installation is recommended and consists in installing:
|
|
211
211
|
- [aspera-cli](#ruby-gem-aspera-cli) <!-- markdownlint-disable-line -->
|
212
212
|
- [Aspera SDK (`ascp`)](#fasp-protocol-ascp)
|
213
213
|
|
214
|
-
Ruby version: >=
|
214
|
+
Ruby version: >= 3.1.
|
215
215
|
|
216
|
-
> **Deprecation notice**: the minimum Ruby version will be 3.
|
216
|
+
> **Deprecation notice**: the minimum Ruby version will be 3.2 in a future version.
|
217
217
|
|
218
218
|
The following sections provide information on the various installation methods.
|
219
219
|
|
220
220
|
An internet connection is required for the installation.
|
221
221
|
If you don't have internet for the installation, refer to section [Installation without internet access](#installation-in-air-gapped-environment).
|
222
222
|
|
223
|
-
A package with pre-installed Ruby, gem and ascp may also be provided.
|
223
|
+
A package with pre-installed Ruby, gem and `ascp` may also be provided.
|
224
224
|
|
225
|
-
###
|
225
|
+
### `ascli` executable
|
226
|
+
|
227
|
+
**Note:** This is an Alpha feature. The binary depends on certain GLIBC version for Linux.
|
226
228
|
|
227
|
-
|
229
|
+
It is planned to provide `ascli` as a single platform-dependent executable.
|
230
|
+
[Alpha releases can be found here](https://ibm.biz/aspera-cli-exe).
|
231
|
+
|
232
|
+
### Ruby
|
228
233
|
|
229
234
|
A Ruby interpreter is required to run `ascli`.
|
230
235
|
|
231
|
-
Required Ruby version: >=
|
236
|
+
Required Ruby version: >= 3.1.
|
232
237
|
|
233
|
-
> **Deprecation notice**: the minimum Ruby version will be 3.
|
238
|
+
> **Deprecation notice**: the minimum Ruby version will be 3.2 in a future version.
|
234
239
|
|
235
240
|
**Ruby can be installed using any method** : rpm, yum, dnf, rvm, brew, Windows installer, ... .
|
236
241
|
|
@@ -241,64 +246,8 @@ Required Ruby version: >= 2.6.
|
|
241
246
|
|
242
247
|
For convenience, you may refer to the following sections for a proposed method for specific operating systems.
|
243
248
|
|
244
|
-
|
245
|
-
|
246
|
-
Install `rvm`.
|
247
|
-
Follow [https://rvm.io/](https://rvm.io/).
|
248
|
-
|
249
|
-
Execute the shell/curl command.
|
250
|
-
As regular user, it installs in the user's home: `~/.rvm` .
|
251
|
-
|
252
|
-
```bash
|
253
|
-
\curl -sSL https://get.rvm.io | bash -s stable
|
254
|
-
```
|
255
|
-
|
256
|
-
Follow on-screen instructions to install keys, and then re-execute the command.
|
257
|
-
|
258
|
-
Upon RVM installation, open a new terminal or initialize with:
|
259
|
-
|
260
|
-
```bash
|
261
|
-
source ~/.rvm/scripts/rvm
|
262
|
-
```
|
263
|
-
|
264
|
-
It is advised to get one of the pre-compiled Ruby version, you can list with:
|
265
|
-
|
266
|
-
```bash
|
267
|
-
rvm list --remote
|
268
|
-
```
|
269
|
-
|
270
|
-
Install the chosen pre-compiled Ruby version:
|
271
|
-
|
272
|
-
```bash
|
273
|
-
rvm install 3.2.2
|
274
|
-
```
|
275
|
-
|
276
|
-
Ruby is now installed for the user, go to [Gem installation](#ruby-gem-aspera-cli). <!-- markdownlint-disable-line -->
|
277
|
-
|
278
|
-
Alternatively RVM can be installed system-wide, for this execute as `root`.
|
279
|
-
It then installs by default in `/usr/local/rvm` for all users and creates `/etc/profile.d/rvm.sh`.
|
280
|
-
One can install in another location with:
|
281
|
-
|
282
|
-
```bash
|
283
|
-
curl -sSL https://get.rvm.io | bash -s -- --path /usr/local
|
284
|
-
```
|
285
|
-
|
286
|
-
As root, make sure this will not collide with other application using Ruby (e.g. Faspex).
|
287
|
-
If so, one can rename the environment script so that it is not loaded by default:
|
288
|
-
|
289
|
-
```bash
|
290
|
-
mv /etc/profile.d/rvm.sh /etc/profile.d/rvm.sh.ok
|
291
|
-
```
|
292
|
-
|
293
|
-
To activate Ruby (and ascli) later, source it:
|
294
|
-
|
295
|
-
```bash
|
296
|
-
source /etc/profile.d/rvm.sh.ok
|
297
|
-
```
|
298
|
-
|
299
|
-
```bash
|
300
|
-
rvm version
|
301
|
-
```
|
249
|
+
Latest version of `ascli` requires a ruby version [at least under maintenance support](https://www.ruby-lang.org/en/downloads/branches/).
|
250
|
+
If an older Ruby version is needed, then use an older version of `ascli` that supports it.
|
302
251
|
|
303
252
|
#### Windows: Installer
|
304
253
|
|
@@ -322,15 +271,24 @@ rubyinstaller-devkit-3.2.2-1-x64.exe /silent /currentuser /noicons /dir=C:\asper
|
|
322
271
|
|
323
272
|
#### macOS: `brew`
|
324
273
|
|
325
|
-
**macOS**
|
326
|
-
|
274
|
+
**macOS** comes with Ruby 2.6.
|
275
|
+
It is an old unsupported version and [Apple has deprecated it](https://developer.apple.com/documentation/macos-release-notes/macos-catalina-10_15-release-notes), and it will be removed in the future.
|
276
|
+
Do not use it.
|
327
277
|
|
328
|
-
The recommended way is to either
|
278
|
+
The recommended way is to either use [Homebrew](https://brew.sh/) or [RVM](https://rvm.io/).
|
329
279
|
|
330
280
|
```bash
|
331
281
|
brew install ruby
|
332
282
|
```
|
333
283
|
|
284
|
+
This installs a recent ruby suitable for `ascli`.
|
285
|
+
|
286
|
+
If using `rvm`, one way to force use of openssl 3.0 is:
|
287
|
+
|
288
|
+
```bash
|
289
|
+
RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@3.0)" rvm install 3.4.0
|
290
|
+
```
|
291
|
+
|
334
292
|
#### Linux: Package
|
335
293
|
|
336
294
|
If your Linux distribution provides a standard Ruby package, you can use it provided that the version supported.
|
@@ -384,7 +342,66 @@ One can remove all installed gems, for example to start fresh:
|
|
384
342
|
gem uninstall -axI $(ls $(gem env gemdir)/gems/|sed -e 's/-[^-]*$//'|sort -u)
|
385
343
|
```
|
386
344
|
|
387
|
-
####
|
345
|
+
#### Unix-like: RVM: Single user installation (not root)
|
346
|
+
|
347
|
+
Install `rvm`.
|
348
|
+
Follow [https://rvm.io/](https://rvm.io/).
|
349
|
+
|
350
|
+
Execute the shell/curl command.
|
351
|
+
As regular user, it installs in the user's home: `~/.rvm` .
|
352
|
+
|
353
|
+
```bash
|
354
|
+
\curl -sSL https://get.rvm.io | bash -s stable
|
355
|
+
```
|
356
|
+
|
357
|
+
Follow on-screen instructions to install keys, and then re-execute the command.
|
358
|
+
|
359
|
+
Upon RVM installation, open a new terminal or initialize with:
|
360
|
+
|
361
|
+
```bash
|
362
|
+
source ~/.rvm/scripts/rvm
|
363
|
+
```
|
364
|
+
|
365
|
+
It is advised to get one of the pre-compiled Ruby version, you can list with:
|
366
|
+
|
367
|
+
```bash
|
368
|
+
rvm list --remote
|
369
|
+
```
|
370
|
+
|
371
|
+
Install the chosen pre-compiled Ruby version:
|
372
|
+
|
373
|
+
```bash
|
374
|
+
rvm install 3.2.2
|
375
|
+
```
|
376
|
+
|
377
|
+
Ruby is now installed for the user, go to [Gem installation](#ruby-gem-aspera-cli). <!-- markdownlint-disable-line -->
|
378
|
+
|
379
|
+
Alternatively RVM can be installed system-wide, for this execute as `root`.
|
380
|
+
It then installs by default in `/usr/local/rvm` for all users and creates `/etc/profile.d/rvm.sh`.
|
381
|
+
One can install in another location with:
|
382
|
+
|
383
|
+
```bash
|
384
|
+
curl -sSL https://get.rvm.io | bash -s -- --path /usr/local
|
385
|
+
```
|
386
|
+
|
387
|
+
As root, make sure this will not collide with other application using Ruby (e.g. Faspex).
|
388
|
+
If so, one can rename the environment script so that it is not loaded by default:
|
389
|
+
|
390
|
+
```bash
|
391
|
+
mv /etc/profile.d/rvm.sh /etc/profile.d/rvm.sh.ok
|
392
|
+
```
|
393
|
+
|
394
|
+
To activate Ruby (and ascli) later, source it:
|
395
|
+
|
396
|
+
```bash
|
397
|
+
source /etc/profile.d/rvm.sh.ok
|
398
|
+
```
|
399
|
+
|
400
|
+
```bash
|
401
|
+
rvm version
|
402
|
+
```
|
403
|
+
|
404
|
+
#### Linux as non-root
|
388
405
|
|
389
406
|
If you don't have root access, you can install Ruby in your home directory using `rbenv` see [rbenv-installer](https://github.com/rbenv/rbenv-installer#rbenv-installer):
|
390
407
|
|
@@ -392,7 +409,7 @@ If you don't have root access, you can install Ruby in your home directory using
|
|
392
409
|
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash
|
393
410
|
```
|
394
411
|
|
395
|
-
Then open a new terminal, or
|
412
|
+
Then open a new terminal, or `source` the shell initialization script:
|
396
413
|
|
397
414
|
```bash
|
398
415
|
source ~/.bashrc
|
@@ -411,8 +428,7 @@ For example for AIX, one can look at:
|
|
411
428
|
|
412
429
|
<https://www.ibm.com/support/pages/aix-toolbox-open-source-software-downloads-alpha#R>
|
413
430
|
|
414
|
-
If your Unix does not provide a pre-built Ruby, you can get it using one of those
|
415
|
-
[methods](https://www.ruby-lang.org/en/documentation/installation/).
|
431
|
+
If your Unix does not provide a pre-built Ruby, you can get it using one of those [methods](https://www.ruby-lang.org/en/documentation/installation/).
|
416
432
|
|
417
433
|
For instance to build from source and install in `/opt/ruby` :
|
418
434
|
|
@@ -465,16 +481,24 @@ JRUBY_OPTS=--dev ascli -v
|
|
465
481
|
|
466
482
|
#### Optional gems
|
467
483
|
|
468
|
-
Some additional gems
|
484
|
+
Some additional gems are required for some specific features, see [Gemfile.optional](Gemfile.optional):
|
469
485
|
|
470
|
-
|
471
|
-
|
472
|
-
|
486
|
+
| name | version | comment |
|
487
|
+
| ---- | ------- | ------- |
|
488
|
+
| grpc | ~> 1.65 | for transferSDK |
|
489
|
+
| mimemagic | ~> 0.4 | for preview |
|
490
|
+
| rmagick | ~> 5.5 | for terminal view |
|
491
|
+
| symmetric-encryption | ~> 4.6 | for file vault |
|
492
|
+
| bigdecimal | ~> 3.1.9 | if RUBY_VERSION >= '3.4' for symmetric-encryption ? |
|
473
493
|
|
474
494
|
Install like this:
|
475
495
|
|
476
496
|
```bash
|
477
|
-
gem install
|
497
|
+
gem install grpc -v '~> 1.65'
|
498
|
+
gem install mimemagic -v '~> 0.4'
|
499
|
+
gem install rmagick -v '~> 5.5'
|
500
|
+
gem install symmetric-encryption -v '~> 4.6'
|
501
|
+
gem install bigdecimal -v '~> 3.1.9'
|
478
502
|
```
|
479
503
|
|
480
504
|
> **Note:** Those are not installed as part of dependencies because they involve compilation of native code.
|
@@ -529,36 +553,59 @@ Only two additional files are required to perform an Aspera Transfer, which are
|
|
529
553
|
- `ascp`
|
530
554
|
- `aspera-license` (in same folder, or ../etc)
|
531
555
|
|
532
|
-
This can be installed either be installing an Aspera transfer software
|
556
|
+
This can be installed either be installing an Aspera transfer software or using an `ascli` command.
|
557
|
+
|
558
|
+
#### Installation of `ascp` through `transferd`
|
559
|
+
|
560
|
+
The easiest option to install `ascp` is through the use of the IBM Aspera Transfer Daemon.
|
561
|
+
|
562
|
+
Supported platforms are listed in the [Release Notes](https://developer.ibm.com/apis/catalog/aspera--aspera-transfer-sdk/Release+notes) and archives can be downloaded from [Downloads](https://developer.ibm.com/apis/catalog/aspera--aspera-transfer-sdk/downloads/downloads.json).
|
563
|
+
|
564
|
+
Install with:
|
533
565
|
|
534
566
|
```bash
|
535
567
|
ascli config ascp install
|
536
568
|
```
|
537
569
|
|
570
|
+
or
|
571
|
+
|
572
|
+
```bash
|
573
|
+
ascli config transferd install
|
574
|
+
```
|
575
|
+
|
538
576
|
This command will retrieve the list of current archives for all platforms from: <https://ibm.biz/sdk_location> and then select the latest version for the current platform.
|
539
577
|
In this case, the default value for option `sdk_url` is `DEF`.
|
540
578
|
|
541
|
-
|
579
|
+
Available Transfer Daemon versions can be listed with: `ascli config transferd list`
|
542
580
|
|
543
|
-
|
581
|
+
To install a specific version, e.g. 1.1.3:
|
544
582
|
|
545
|
-
|
546
|
-
|
583
|
+
```bash
|
584
|
+
ascli config ascp install 1.1.3
|
585
|
+
```
|
547
586
|
|
548
|
-
|
587
|
+
To get the download URL for a specific platform and version:
|
549
588
|
|
550
|
-
|
551
|
-
|
552
|
-
|
589
|
+
```bash
|
590
|
+
ascli config transferd list --select=@json:'{"platform":"osx-arm64","version":"1.1.3"}' --fields=url
|
591
|
+
```
|
553
592
|
|
554
|
-
|
593
|
+
To download it, pipe to `config download`:
|
555
594
|
|
556
|
-
|
557
|
-
|
558
|
-
|
595
|
+
```bash
|
596
|
+
ascli config transferd list --select=@json:'{"platform":"osx-arm64","version":"1.1.3"}' --fields=url | ascli config download @stdin:
|
597
|
+
```
|
598
|
+
|
599
|
+
If installation from a local file preferred instead of fetching from internet: one can specify the location of the SDK file with option `sdk_url`:
|
600
|
+
|
601
|
+
```bash
|
602
|
+
ascli config ascp install --sdk-url=file:///macos-arm64-1.1.3-c6c7a2a.zip
|
603
|
+
```
|
559
604
|
|
560
605
|
The format is: `file:///<path>`, where `<path>` can be either a relative path (not starting with `/`), or an absolute path.
|
561
606
|
|
607
|
+
#### Installation of `ascp` through other component
|
608
|
+
|
562
609
|
If the embedded method is not used, the following packages are also suitable:
|
563
610
|
|
564
611
|
- IBM Aspera Connect Client (Free)
|
@@ -738,7 +785,7 @@ ascli -v
|
|
738
785
|
```
|
739
786
|
|
740
787
|
```text
|
741
|
-
4.
|
788
|
+
4.21.1
|
742
789
|
```
|
743
790
|
|
744
791
|
In order to keep persistency of configuration on the host, you should specify your user's configuration folder as a volume for the container.
|
@@ -1501,16 +1548,33 @@ To redirect results to a file, use option `output`.
|
|
1501
1548
|
|
1502
1549
|
Depending on action, the output will contain:
|
1503
1550
|
|
1504
|
-
|
1505
|
-
|
1506
|
-
|
1507
|
-
|
1508
|
-
|
1509
|
-
|
1551
|
+
| Result Type | Description |
|
1552
|
+
|-----------------|-------------------|
|
1553
|
+
| `single_object` | displayed as a 2 dimensional table: one line per field, first column is field name, and second is field value. Nested hashes are collapsed. |
|
1554
|
+
| `object_list` | displayed as a 2 dimensional table: one line per item, one column per field. |
|
1555
|
+
| `value_list` | a table with one column. |
|
1556
|
+
| `empty` | nothing |
|
1557
|
+
| `status` | a message |
|
1558
|
+
| `other_struct` | a complex structure that cannot be displayed as an array |
|
1559
|
+
|
1560
|
+
#### Option: `format`
|
1561
|
+
|
1562
|
+
The style of output can be set using the `format` option:
|
1510
1563
|
|
1511
|
-
|
1564
|
+
| `format` | Output formatting |
|
1565
|
+
|----------|-------------------|
|
1566
|
+
| `table` | Text table (default) |
|
1567
|
+
| `text` | Value as `String` |
|
1568
|
+
| `ruby` | Ruby code |
|
1569
|
+
| `json` | JSON code |
|
1570
|
+
| `jsonpp` | JSON pretty printed |
|
1571
|
+
| `yaml` | YAML |
|
1572
|
+
| `csv` | Comma Separated Values |
|
1573
|
+
| `image` | Image URL or Image data |
|
1512
1574
|
|
1513
|
-
By default, result of type single_object and object_list are displayed using format `table`.
|
1575
|
+
By default, result of type `single_object` and `object_list` are displayed using format `table`.
|
1576
|
+
|
1577
|
+
#### Option: `table_style`
|
1514
1578
|
|
1515
1579
|
The table style can be customized with option: `table_style` which expects a `Hash`, options are the ones described in gem [`terminal-table`](https://github.com/tj/terminal-table).
|
1516
1580
|
|
@@ -1522,28 +1586,64 @@ ascli config preset over --table-style=@ruby:'{border: :unicode_thick_edge}'
|
|
1522
1586
|
|
1523
1587
|
> **Note:** Other border styles exist, not limited to: `:unicode`, `:unicode_round`.
|
1524
1588
|
|
1525
|
-
|
1526
|
-
|
1527
|
-
|
1528
|
-
|
1589
|
+
#### Option: `flat_hash`: `.`-join keys
|
1590
|
+
|
1591
|
+
This optin controls how object fields are displayed for complex objects.
|
1592
|
+
|
1593
|
+
Effective only when `format` is `table` to display `single_object` or `object_list`.
|
1594
|
+
|
1595
|
+
If value is `no`, then object's `field` names are only the first level keys of the `Hash` result and values that are `Hash` are displayed as such in Ruby syntax.
|
1529
1596
|
|
1530
|
-
|
1531
|
-
|
1532
|
-
If transposition of single object is not desired, use option: `transpose_single` set to `no`.
|
1533
|
-
If option `multi_table` is `yes`, then elements of a table are displayed individually in a table.
|
1597
|
+
If value is `yes` (default), then object are flattened, i.e. deep `Hash` are transformed into 1-level Hash, where keys are `.`-junction of deep keys.
|
1598
|
+
In this case, it is possible to filter fields using the option `fields` using the compound field name using `.` (dot) as separator.
|
1534
1599
|
|
1535
|
-
|
1600
|
+
Example: Result of command is a list of objects with a single object:
|
1536
1601
|
|
1537
|
-
|
1538
|
-
|
1539
|
-
|
1540
|
-
|
1541
|
-
|
1542
|
-
|
1543
|
-
|
1544
|
-
|
1602
|
+
```console
|
1603
|
+
$ ascli config echo @json:'[{"user":{"id":1,"name":"toto"},"project":"blah"}]'
|
1604
|
+
╭─────────┬───────────┬─────────╮
|
1605
|
+
│ user.id │ user.name │ project │
|
1606
|
+
╞═════════╪═══════════╪═════════╡
|
1607
|
+
│ 1 │ toto │ blah │
|
1608
|
+
╰─────────┴───────────┴─────────╯
|
1609
|
+
|
1610
|
+
$ ascli config echo @json:'[{"user":{"id":1,"name":"toto"},"project":"blah"}]' --flat-hash=no
|
1611
|
+
╭───────────────────────────┬─────────╮
|
1612
|
+
│ user │ project │
|
1613
|
+
╞═══════════════════════════╪═════════╡
|
1614
|
+
│ {"id"=>1, "name"=>"toto"} │ blah │
|
1615
|
+
╰───────────────────────────┴─────────╯
|
1616
|
+
```
|
1545
1617
|
|
1546
|
-
####
|
1618
|
+
#### Option: `multi_single`
|
1619
|
+
|
1620
|
+
This option controls if object fields are displayed as columns or lines.
|
1621
|
+
|
1622
|
+
If value is `no` (default), `object_list` are displayed with one object per line, with fields as columns (see above).
|
1623
|
+
`single_object` are displayed with one field per line (and columns are: `field`, `value`).
|
1624
|
+
|
1625
|
+
If an `object_list` has a single element, it is possible to have `ascli` display the object as a single object (one field per line instead of columns) with option: `multi_single` set to `single`.
|
1626
|
+
|
1627
|
+
This parameter can be set as a global default with:
|
1628
|
+
|
1629
|
+
```bash
|
1630
|
+
ascli config preset set GLOBAL multi_single single
|
1631
|
+
```
|
1632
|
+
|
1633
|
+
In case multiple objects are returned, it is possible to display one table per object with option `multi_single` set to `yes`.
|
1634
|
+
|
1635
|
+
```console
|
1636
|
+
$ ascli config echo @json:'[{"user":{"id":1,"name":"toto"},"project":"blash"}]' --multi-single=yes
|
1637
|
+
╭───────────┬───────╮
|
1638
|
+
│ field │ value │
|
1639
|
+
╞═══════════╪═══════╡
|
1640
|
+
│ user.id │ 1 │
|
1641
|
+
│ user.name │ toto │
|
1642
|
+
│ project │ blash │
|
1643
|
+
╰───────────┴───────╯
|
1644
|
+
```
|
1645
|
+
|
1646
|
+
#### Option: `display`: Verbosity of output
|
1547
1647
|
|
1548
1648
|
Output messages are categorized in 3 types:
|
1549
1649
|
|
@@ -1557,13 +1657,17 @@ The option `display` controls the level of output:
|
|
1557
1657
|
- `data` display `data` and `error` messages
|
1558
1658
|
- `error` display only error messages.
|
1559
1659
|
|
1560
|
-
|
1561
|
-
|
1660
|
+
#### Option: `show_secrets`: Hide or show secrets in results
|
1661
|
+
|
1662
|
+
If value is `no` (default), then secrets are redacted from command results.
|
1663
|
+
|
1664
|
+
If value is `yes`, then secrets shown in clear in results.
|
1562
1665
|
|
1563
|
-
|
1666
|
+
If `display` is `data`, secrets are included to allows piping results.
|
1564
1667
|
|
1565
|
-
|
1566
|
-
|
1668
|
+
#### Option: `fields`: Selection of output object fields
|
1669
|
+
|
1670
|
+
Depending on the command, results may include by default all fields, or only some selected fields.
|
1567
1671
|
It is possible to define specific columns to be displayed, by setting the `fields` option.
|
1568
1672
|
|
1569
1673
|
The `fields` option is a list that can be either a comma separated list or an extended value `Array`.
|
@@ -1572,8 +1676,8 @@ Individual elements of the list can be:
|
|
1572
1676
|
|
1573
1677
|
- **property** : add property to the current list
|
1574
1678
|
- `-`**property** : remove property from the current list
|
1575
|
-
- `DEF` : default list of
|
1576
|
-
- `ALL` : all
|
1679
|
+
- `DEF` : default list of fields (that's the default, when not set)
|
1680
|
+
- `ALL` : all fields
|
1577
1681
|
- A Ruby `RegEx` : using `@ruby:'/.../'`, or `@re:...` add those matching to the list
|
1578
1682
|
|
1579
1683
|
Examples:
|
@@ -1581,13 +1685,13 @@ Examples:
|
|
1581
1685
|
- `a,b,c` : the list of attributes specified as a comma separated list (overrides the all default)
|
1582
1686
|
- `@json:'["a","b","c"]'` : `Array` extended value: same as above
|
1583
1687
|
- `b,DEF,-a` : default property list, remove `a` and add `b` in first position
|
1584
|
-
- `@ruby:'/^server/'` : Display all
|
1688
|
+
- `@ruby:'/^server/'` : Display all fields whose name begin with `server`
|
1585
1689
|
|
1586
1690
|
#### Option: `select`
|
1587
1691
|
|
1588
1692
|
Table output (`object_list`) can be filtered using option `select`.
|
1589
1693
|
This option is either a `Hash` or `Proc`.
|
1590
|
-
The `Proc` takes as argument a line (`Hash`) in the table and is a Ruby lambda expression that returns `true` or `false
|
1694
|
+
The `Proc` takes as argument a line (`Hash`) in the table and is a Ruby lambda expression that shall returns `true` to select or `false` to remove an entry.
|
1591
1695
|
|
1592
1696
|
Example:
|
1593
1697
|
|
@@ -1616,19 +1720,26 @@ In above example, the same result is obtained with option:
|
|
1616
1720
|
|
1617
1721
|
The percent selector allows identification of an entity by another unique identifier other than the native identifier.
|
1618
1722
|
|
1619
|
-
|
1620
|
-
e.g. `ascli aoc admin user show 1234` where `1234` is the user's identifier.
|
1723
|
+
Syntax: `%<field>:<value>`
|
1621
1724
|
|
1622
|
-
|
1623
|
-
|
1725
|
+
When a command is executed on a single entity, the entity is identified by a unique identifier that follows the command.
|
1726
|
+
For example, in the following command, `1234` is the user's identifier:
|
1624
1727
|
|
1625
|
-
|
1728
|
+
```bash
|
1729
|
+
ascli aoc admin user show 1234
|
1730
|
+
```
|
1626
1731
|
|
1627
|
-
|
1732
|
+
Some commands provide the following capability:
|
1733
|
+
If the entity can also be uniquely identified by a name, then the name can be used instead of the identifier, using the **percent selector**.
|
1734
|
+
For example, if the name of the user is `john` and a field for this entity named `name` has a value `john`:
|
1735
|
+
|
1736
|
+
```bash
|
1737
|
+
ascli aoc admin user show %name:john
|
1738
|
+
```
|
1628
1739
|
|
1629
1740
|
### Extended Value Syntax
|
1630
1741
|
|
1631
|
-
Most options and arguments are specified by a simple string (e.g. username or url).
|
1742
|
+
Most options and arguments are specified by a simple string (e.g. `username` or `url`).
|
1632
1743
|
Sometime it is convenient to read a value from a file: for example read the PEM value of a private key, or a list of files.
|
1633
1744
|
Some options expect a more complex value such as `Hash` or `Array`.
|
1634
1745
|
|
@@ -1644,31 +1755,31 @@ Decoders act like a function with its parameter on right hand side and are recog
|
|
1644
1755
|
|
1645
1756
|
The following decoders are supported:
|
1646
1757
|
|
1647
|
-
| Decoder | Parameter| Returns
|
1648
|
-
|
1649
|
-
| `base64` | String
|
1650
|
-
| `csvt` | String
|
1651
|
-
| `env` | String
|
1652
|
-
| `file` | String
|
1653
|
-
| `json` | String
|
1654
|
-
| `lines` | String
|
1655
|
-
| `list` | String
|
1656
|
-
| `none` | None | Nil
|
1657
|
-
| `path` | String
|
1658
|
-
| `preset` | String
|
1659
|
-
| `extend` | String
|
1660
|
-
| `re` | String
|
1661
|
-
| `ruby` | String
|
1662
|
-
| `secret` | None | String
|
1663
|
-
| `stdin` | None | String
|
1664
|
-
| `stdbin` | None | String
|
1665
|
-
| `uri` | String
|
1666
|
-
| `val` | String
|
1667
|
-
| `yaml` | String
|
1668
|
-
| `zlib` | String
|
1758
|
+
| Decoder | Parameter| Returns | Description |
|
1759
|
+
|----------|----------|----------|-------------|
|
1760
|
+
| `base64` | `String` | `String` | Decode a base64 encoded string |
|
1761
|
+
| `csvt` | `String` | `Array` | Decode a titled CSV value |
|
1762
|
+
| `env` | `String` | `String` | Read from a named env var name, e.g. `--password=@env:MYPASSVAR` |
|
1763
|
+
| `file` | `String` | `String` | Read value from specified file (prefix `~/` is replaced with the users home folder), e.g. `--key=@file:~/.ssh/mykey` |
|
1764
|
+
| `json` | `String` | Any | Decode JSON values (convenient to provide complex structures) |
|
1765
|
+
| `lines` | `String` | `Array` | Split a string in multiple lines and return an array |
|
1766
|
+
| `list` | `String` | `Array` | Split a string in multiple items taking first character as separator and return an array |
|
1767
|
+
| `none` | None | Nil | A null value |
|
1768
|
+
| `path` | `String` | `String` | Performs path expansion on specified path (prefix `~/` is replaced with the users home folder), e.g. `--config-file=@path:~/sample_config.yml` |
|
1769
|
+
| `preset` | `String` | `Hash` | Get whole option preset value by name. Sub-values can also be used using `.` as separator. e.g. `foo.bar` is `conf[foo][bar]` |
|
1770
|
+
| `extend` | `String` | `String` | Evaluates embedded extended value syntax in string |
|
1771
|
+
| `re` | `String` | `Regexp` | Ruby Regular Expression (short for `@ruby:/.../`) |
|
1772
|
+
| `ruby` | `String` | Any | Execute specified Ruby code |
|
1773
|
+
| `secret` | None | `String` | Ask password interactively (hides input) |
|
1774
|
+
| `stdin` | None | `String` | Read from stdin in text mode (no value on right) |
|
1775
|
+
| `stdbin` | None | `String` | Read from stdin in binary mode (no value on right) |
|
1776
|
+
| `uri` | `String` | `String` | Read value from specified URL, e.g. `--fpac=@uri:http://serv/f.pac` |
|
1777
|
+
| `val` | `String` | `String` | Prevent decoders on the right to be decoded. e.g. `--key=@val:@file:foo` sets the option `key` to value `@file:foo`. |
|
1778
|
+
| `yaml` | `String` | Any | Decode YAML |
|
1779
|
+
| `zlib` | `String` | `String` | Un-compress zlib data |
|
1669
1780
|
|
1670
1781
|
> **Note:** A few commands support a value of type `Proc` (lambda expression).
|
1671
|
-
For example, the **Extended Value** `@ruby:'->(i){i["attr"]}'` is a lambda expression that returns the value
|
1782
|
+
For example, the **Extended Value** `@ruby:'->(i){i["attr"]}'` is a lambda expression that returns the value for key `attr` of the `Hash` `i`.
|
1672
1783
|
|
1673
1784
|
To display the result of an extended value, use the `config echo` command.
|
1674
1785
|
|
@@ -1726,14 +1837,14 @@ ascli config echo @json:@extend:'{"hello":true,"version":"@preset:config.version
|
|
1726
1837
|
|
1727
1838
|
```output
|
1728
1839
|
+---------+-----------+
|
1729
|
-
|
|
1840
|
+
| field | value |
|
1730
1841
|
+---------+-----------+
|
1731
1842
|
| hello | true |
|
1732
1843
|
| version | 4.14.0 |
|
1733
1844
|
+---------+-----------+
|
1734
1845
|
```
|
1735
1846
|
|
1736
|
-
Example: Create a `Hash` from YAML provided as **heredoc**:
|
1847
|
+
Example: Create a `Hash` from YAML provided as shell **heredoc**:
|
1737
1848
|
|
1738
1849
|
```bash
|
1739
1850
|
ascli config echo @yaml:@stdin: --format=json<<EOF
|
@@ -1753,7 +1864,7 @@ EOF
|
|
1753
1864
|
|
1754
1865
|
### Configuration and Persistency Folder
|
1755
1866
|
|
1756
|
-
`ascli` configuration and
|
1867
|
+
`ascli` configuration and persistency files (token cache, file lists, persistency files) are stored by default in `[User's home folder]/.aspera/ascli`.
|
1757
1868
|
|
1758
1869
|
> **Note:** `[User's home folder]` is found using Ruby's `Dir.home` (`rb_w32_home_dir`).
|
1759
1870
|
It uses the `HOME` env var primarily, and on MS Windows it also looks at `%HOMEDRIVE%%HOMEPATH%` and `%USERPROFILE%`.
|
@@ -1782,9 +1893,9 @@ ascli config folder
|
|
1782
1893
|
C:\Users\Kenji\.aspera\ascli
|
1783
1894
|
```
|
1784
1895
|
|
1785
|
-
When OAuth is used (AoC,
|
1896
|
+
When OAuth is used (AoC, Faspex5) `ascli` keeps a cache of generated bearer tokens in folder `persist_store` in configuration folder by default.
|
1786
1897
|
Option `cache_tokens` (**yes**/no) allows to control if Oauth tokens are cached on file system, or generated for each request.
|
1787
|
-
The command `config
|
1898
|
+
The command `config tokens flush` clears that cache.
|
1788
1899
|
Tokens are kept on disk for a maximum of 30 minutes (`TOKEN_CACHE_EXPIRY_SEC`) and garbage collected after that.
|
1789
1900
|
When a token has expired, then a new token is generated, either using a refresh_token if it is available, or by the default method.
|
1790
1901
|
|
@@ -1954,11 +2065,11 @@ ascp errors
|
|
1954
2065
|
ascp info --sdk-folder=sdk_test_dir
|
1955
2066
|
ascp install
|
1956
2067
|
ascp install --sdk-folder=sdk_test_dir
|
2068
|
+
ascp install 1.1.3
|
1957
2069
|
ascp products list
|
1958
2070
|
ascp products use 'IBM Aspera Connect'
|
1959
2071
|
ascp show
|
1960
2072
|
ascp spec
|
1961
|
-
ascp use /usr/bin/ascp
|
1962
2073
|
check_update
|
1963
2074
|
coffee
|
1964
2075
|
coffee --ui=text
|
@@ -1977,6 +2088,8 @@ echo -- --special-string
|
|
1977
2088
|
echo @base64:SGVsbG8gV29ybGQK
|
1978
2089
|
echo @csvt:@stdin:
|
1979
2090
|
echo @env:USER
|
2091
|
+
echo @json:'[{"user":{"id":1,"name":"foo"},"project":"bar"}]' --multi-single=single
|
2092
|
+
echo @json:'[{"user":{"id":1,"name":"foo"},"project":"bar"}]' --multi-single=yes
|
1980
2093
|
echo @lines:@stdin:
|
1981
2094
|
echo @list:,1,2,3
|
1982
2095
|
echo @secret:
|
@@ -1990,7 +2103,6 @@ echo hello
|
|
1990
2103
|
email_test --notify-to=my_email_external
|
1991
2104
|
file
|
1992
2105
|
file --logger=syslog --log-level=debug
|
1993
|
-
flush_tokens
|
1994
2106
|
folder
|
1995
2107
|
gem name
|
1996
2108
|
gem path
|
@@ -2006,6 +2118,7 @@ preset delete conf_name
|
|
2006
2118
|
preset initialize conf_name @json:'{"p1":"v1","p2":"v2"}'
|
2007
2119
|
preset list
|
2008
2120
|
preset overview
|
2121
|
+
preset set GLOBAL version_check_days 0
|
2009
2122
|
preset set conf_name param value
|
2010
2123
|
preset set default shares conf_name
|
2011
2124
|
preset show conf_name
|
@@ -2017,6 +2130,9 @@ remote_certificate chain https://node.example.com/path
|
|
2017
2130
|
remote_certificate name https://node.example.com/path
|
2018
2131
|
remote_certificate only https://node.example.com/path
|
2019
2132
|
smtp_settings
|
2133
|
+
tokens flush
|
2134
|
+
transferd install
|
2135
|
+
transferd list
|
2020
2136
|
vault create my_label @json:'{"password":"my_password_here","description":"my secret"}'
|
2021
2137
|
vault delete my_label
|
2022
2138
|
vault info
|
@@ -2145,7 +2261,7 @@ ascli config wizard
|
|
2145
2261
|
#### Example of configuration for a plugin
|
2146
2262
|
|
2147
2263
|
For Faspex, Shares, Node (including ATS, Aspera Transfer Service), Console,
|
2148
|
-
only username/password and
|
2264
|
+
only username/password and URL are required (either on command line, or from configuration file).
|
2149
2265
|
Those can usually be provided on the command line:
|
2150
2266
|
|
2151
2267
|
```bash
|
@@ -2391,16 +2507,16 @@ This is available:
|
|
2391
2507
|
- in the `thumbnail` command of `node` when using **gen4/access key** API.
|
2392
2508
|
- when using the `show` command of `preview` plugin.
|
2393
2509
|
- `coffee` and `image` commands of `config` plugin.
|
2394
|
-
- any displayed value which is
|
2510
|
+
- any displayed value which is a URL to image can be displayed with option `format` set to `image`
|
2395
2511
|
|
2396
2512
|
The following options can be specified in the option `image`:
|
2397
2513
|
|
2398
2514
|
| Option | Type | Description |
|
2399
2515
|
|------------|---------|-------------|
|
2400
|
-
| reserve | Integer | Lines reserved to display a status |
|
2401
|
-
| text | Bool | Display text instead of image|
|
2402
|
-
| double | Bool | Display double text resolution (half characters) |
|
2403
|
-
| font_ratio | Float | Font height/width ratio in terminal |
|
2516
|
+
| reserve | `Integer` | Lines reserved to display a status |
|
2517
|
+
| text | `Bool` | Display text instead of image|
|
2518
|
+
| double | `Bool` | Display double text resolution (half characters) |
|
2519
|
+
| font_ratio | `Float` | Font height/width ratio in terminal |
|
2404
2520
|
|
2405
2521
|
```bash
|
2406
2522
|
ascli config image https://eudemo.asperademo.com/wallpaper.jpg --ui=text --image=@json:'{"text":true}'
|
@@ -2433,12 +2549,12 @@ The gem is equipped with traces, mainly for debugging and learning APIs.
|
|
2433
2549
|
By default logging level is `warn` and the output channel is `stderr`.
|
2434
2550
|
To increase debug level, use option `log_level` (e.g. using command line `--log-level=xx`, env var `ASCLI_LOG_LEVEL`, or an [Option Preset](#option-preset)).
|
2435
2551
|
|
2436
|
-
By default passwords and secrets are
|
2437
|
-
|
2552
|
+
By default passwords and secrets are redacted from logs.
|
2553
|
+
Set option `log_secrets` to `yes` to include secrets in logs.
|
2438
2554
|
|
2439
|
-
|
2555
|
+
Option `logger`: `stdout`, `stderr`, `syslog`.
|
2440
2556
|
|
2441
|
-
|
2557
|
+
Option `log_level`: `debug`, `info`, `warn`, `error`.
|
2442
2558
|
|
2443
2559
|
> **Note:** When using the `direct` agent (`ascp`), additional transfer logs can be activated using `ascp` options and `ascp_args`, see [`direct`](#agent-direct).
|
2444
2560
|
|
@@ -2491,7 +2607,7 @@ HTTP connection parameters (not `ascp` wss) can be adjusted using option `http_o
|
|
2491
2607
|
| `retry_on_error` | 0 | `ascli` |
|
2492
2608
|
| `retry_sleep` | nil | `ascli` |
|
2493
2609
|
|
2494
|
-
Time values are in set **seconds** and can be of type either
|
2610
|
+
Time values are in set **seconds** and can be of type either `Integer` or `Float`.
|
2495
2611
|
Default values are the ones of Ruby:
|
2496
2612
|
For a full list, refer to the Ruby library: [`Net::HTTP`](https://ruby-doc.org/stdlib/libdoc/net/http/rdoc/Net/HTTP.html).
|
2497
2613
|
|
@@ -2645,7 +2761,7 @@ ascli config ascp info
|
|
2645
2761
|
|
2646
2762
|
```output
|
2647
2763
|
+--------------------+-----------------------------------------------------------+
|
2648
|
-
|
|
2764
|
+
| field | value |
|
2649
2765
|
+--------------------+-----------------------------------------------------------+
|
2650
2766
|
| ascp | /Users/laurent/.aspera/ascli/sdk/ascp |
|
2651
2767
|
...
|
@@ -2762,51 +2878,53 @@ Downloaded: IBMAsperaConnectInstaller-3.11.2.63.dmg
|
|
2762
2878
|
### Transfer Clients: Agents
|
2763
2879
|
|
2764
2880
|
Some of the actions on Aspera Applications lead to file transfers (upload and download) using the FASP protocol (`ascp`).
|
2765
|
-
|
2766
|
-
When a transfer needs to be started, a [**transfer-spec**](#transfer-specification) has been internally prepared.
|
2767
|
-
This [**transfer-spec**](#transfer-specification) will be executed by a transfer client, here called **Transfer Agent**.
|
2881
|
+
Transfers will be executed by a transfer client, here called **Transfer Agent**.
|
2768
2882
|
|
2769
2883
|
The following agents are supported and selected with option `transfer`:
|
2770
2884
|
|
2771
|
-
|
2772
|
-
|
2773
|
-
|
2774
|
-
|
2775
|
-
|
2776
|
-
|
2885
|
+
| `transfer` | location | Description of agent |
|
2886
|
+
|------------------------------------|----------|-------------------------------|
|
2887
|
+
| [`direct`](#agent-direct) | local | direct execution of `ascp` |
|
2888
|
+
| [`transferd`](#agent-transfer-sdk) | local | Aspera Transfer Daemon |
|
2889
|
+
| [`connect`](#agent-connect-client) | local | Aspera Connect Client |
|
2890
|
+
| [`alpha`](#agent-desktop-client) | local | Aspera for Desktop |
|
2891
|
+
| [`node`](#agent-node-api) | remote | Aspera Transfer Node |
|
2892
|
+
| [`httpgw`](#agent-http-gateway) | remote | Aspera HTTP Gateway |
|
2777
2893
|
|
2778
2894
|
> **Note:** All transfer operations are seen from the point of view of the agent.
|
2779
|
-
For example,
|
2780
|
-
|
2895
|
+
For example, an agent executing an **upload**, or **package send** operation will effectively push files to the related server from the system where the agent runs.
|
2896
|
+
|
2897
|
+
All of above agents (including `direct`) receive transfer parameters as a [**transfer-spec**](#transfer-specification).
|
2898
|
+
Parameters in transfer-spec can be modified with option `ts`.
|
2781
2899
|
|
2782
|
-
|
2900
|
+
**Specific** options for agents are provided with option `transfer_info`.
|
2783
2901
|
|
2784
|
-
|
2902
|
+
> **Note:** Parameters in `transfer_info` are specific for each agent type and are described in the agents respective sections.
|
2785
2903
|
|
2786
2904
|
#### Agent: Direct
|
2787
2905
|
|
2788
|
-
The `direct` agent directly executes a local `ascp`.
|
2906
|
+
The `direct` agent directly executes a local `ascp` in `ascli`.
|
2789
2907
|
This is the default agent for `ascli` (option `--transfer=direct`).
|
2790
|
-
`ascli` will search
|
2908
|
+
`ascli` will locally search installed Aspera products, including SDK, and use `ascp` from that component.
|
2791
2909
|
Refer to section [FASP](#fasp-configuration).
|
2792
2910
|
|
2793
2911
|
The `transfer_info` option accepts the following optional parameters to control multi-session, Web Socket Session, Resume policy and add any argument to `ascp`:
|
2794
2912
|
|
2795
2913
|
| Name | Type | Description |
|
2796
2914
|
|------------------------|---------|-------------|
|
2797
|
-
| `wss` | Bool | Web Socket Session<br/>Enable use of web socket session in case it is available<br/>Default: true |
|
2798
|
-
| `quiet` | Bool | If `true`, then `ascp` progress bar is not shown.<br/>Default: `false` |
|
2799
|
-
| `trusted_certs` | Array | List of repositories for trusted certificates. |
|
2800
|
-
| `client_ssh_key` | String
|
2801
|
-
| `ascp_args` | Array | Array of strings with native `ascp` arguments.<br/>Default: `[]` |
|
2802
|
-
| `spawn_timeout_sec` | Float | Multi session<br/>Verification time that `ascp` is running<br/>Default: `3` |
|
2803
|
-
| `spawn_delay_sec` | Float | Multi session<br/>Delay between startup of sessions<br/>Default: `2` |
|
2804
|
-
| `multi_incr_udp` | Bool | Multi Session<br/>Increment UDP port on multi-session<br/>If `true`, each session will have a different UDP port starting at `fasp_port` (or default 33001)<br/>Else, each session will use `fasp_port` (or `ascp` default)<br/>Default: `true` on Windows, else `false` |
|
2805
|
-
| `resume` | Hash | Resume parameters. See below |
|
2806
|
-
| `resume.iter_max` | Integer | Max number of retry on error<br/>Default: `7` |
|
2807
|
-
| `resume.sleep_initial` | Integer | First Sleep before retry<br/>Default: `2` |
|
2808
|
-
| `resume.sleep_factor` | Integer | Multiplier of sleep period between attempts<br/>Default: `2` |
|
2809
|
-
| `resume.sleep_max` | Integer | Default: `60` |
|
2915
|
+
| `wss` | `Bool` | Web Socket Session<br/>Enable use of web socket session in case it is available<br/>Default: true |
|
2916
|
+
| `quiet` | `Bool` | If `true`, then `ascp` progress bar is not shown.<br/>Default: `false` |
|
2917
|
+
| `trusted_certs` | `Array` | List of repositories for trusted certificates. |
|
2918
|
+
| `client_ssh_key` | `String` | SSH Keys to use for token-based transfers. One of: `dsa_rsa`, `rsa`, `per_client`. Default: `rsa` |
|
2919
|
+
| `ascp_args` | `Array` | Array of strings with native `ascp` arguments.<br/>Default: `[]` |
|
2920
|
+
| `spawn_timeout_sec` | `Float` | Multi session<br/>Verification time that `ascp` is running<br/>Default: `3` |
|
2921
|
+
| `spawn_delay_sec` | `Float` | Multi session<br/>Delay between startup of sessions<br/>Default: `2` |
|
2922
|
+
| `multi_incr_udp` | `Bool` | Multi Session<br/>Increment UDP port on multi-session<br/>If `true`, each session will have a different UDP port starting at `fasp_port` (or default 33001)<br/>Else, each session will use `fasp_port` (or `ascp` default)<br/>Default: `true` on Windows, else `false` |
|
2923
|
+
| `resume` | `Hash` | Resume parameters. See below |
|
2924
|
+
| `resume.iter_max` | `Integer` | Max number of retry on error<br/>Default: `7` |
|
2925
|
+
| `resume.sleep_initial` | `Integer` | First Sleep before retry<br/>Default: `2` |
|
2926
|
+
| `resume.sleep_factor` | `Integer` | Multiplier of sleep period between attempts<br/>Default: `2` |
|
2927
|
+
| `resume.sleep_max` | `Integer` | Default: `60` |
|
2810
2928
|
|
2811
2929
|
In case of transfer interruption, the agent will **resume** a transfer up to `iter_max` time.
|
2812
2930
|
Sleep between iterations is given by the following formula where `iter_index` is the current iteration index, starting at 0:
|
@@ -2938,12 +3056,12 @@ This is especially useful for direct node-to-node transfers.
|
|
2938
3056
|
|
2939
3057
|
Parameters provided in option `transfer_info` are:
|
2940
3058
|
|
2941
|
-
|
|
2942
|
-
|
2943
|
-
| url |
|
2944
|
-
| username |
|
2945
|
-
| password |
|
2946
|
-
| root_id |
|
3059
|
+
| Nam e | Type | Description |
|
3060
|
+
|------------|--------|--------------------------------------------------|
|
3061
|
+
| `url` | `String` | URL of the node API</br>Mandatory |
|
3062
|
+
| `username` | `String` | Node api user or access key</br>Mandatory |
|
3063
|
+
| `password` | `String` | Password, secret or bearer token</br>Mandatory |
|
3064
|
+
| `root_id` | `String` | Root file id</br>Mandatory only for bearer token |
|
2947
3065
|
|
2948
3066
|
Like any other option, `transfer_info` can get its value from a pre-configured [Option Preset](#option-preset) :
|
2949
3067
|
|
@@ -2972,10 +3090,10 @@ Parameters provided in option `transfer_info` are:
|
|
2972
3090
|
|
2973
3091
|
| Name | Type | Description |
|
2974
3092
|
|------------------------|--------|---------------------------------------|
|
2975
|
-
| url |
|
2976
|
-
| upload_chunk_size |
|
2977
|
-
| api_version |
|
2978
|
-
| synchronous |
|
3093
|
+
| url | `String` | URL of the HTTP GW</br>Mandatory |
|
3094
|
+
| upload_chunk_size | `Integer` | Size in bytes of chunks for upload<br/>Default: `64000` |
|
3095
|
+
| api_version | `String` | Force use of version (`v1`, `v2`)<br/>Default: `v2` |
|
3096
|
+
| synchronous | `Bool` | Wait for each message acknowledgment<br/>Default: `false` |
|
2979
3097
|
|
2980
3098
|
Example:
|
2981
3099
|
|
@@ -2990,15 +3108,15 @@ If the application, e.g. AoC or Faspex 5, is configured to use the HTTP Gateway,
|
|
2990
3108
|
#### Agent: Transfer SDK
|
2991
3109
|
|
2992
3110
|
Another possibility is to use the Transfer SDK daemon (`asperatransferd`).
|
2993
|
-
Set option `transfer` to `
|
3111
|
+
Set option `transfer` to `transferd`.
|
2994
3112
|
|
2995
3113
|
Options for `transfer_info` are:
|
2996
3114
|
|
2997
3115
|
| Name | Type | Description |
|
2998
3116
|
|----------|--------|-------------|
|
2999
|
-
| `url` |
|
3000
|
-
| `external` |
|
3001
|
-
| `keep` |
|
3117
|
+
| `url` | `String` | IP address and port listened by the daemon</br>Mandatory<br/>Default: `:0` |
|
3118
|
+
| `external` | `Bool` | Use external daemon, do not start one.<br/>Default: `false` |
|
3119
|
+
| `keep` | `Bool` | Keep the daemon running after exiting `ascli`<br/>Default: `false` |
|
3002
3120
|
|
3003
3121
|
> **Note:** If port zero is specified in the URL, then the daemon will listen on a random available port. If no address is specified, then `127.0.0.1` is used.
|
3004
3122
|
|
@@ -3081,91 +3199,92 @@ Columns:
|
|
3081
3199
|
|
3082
3200
|
`ascp` argument or environment variable is provided in description.
|
3083
3201
|
|
3084
|
-
| Field | Type |
|
3085
|
-
| ----- | ---- | - | - | - | - | - | ----------- |
|
3086
|
-
| apply_local_docroot | bool | Y | | | | | Apply local docroot to source paths.<br/>(--apply-local-docroot) |
|
3087
|
-
| authentication | string | | |
|
3088
|
-
| cipher | string | Y | Y | Y | Y | Y | 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 (conversion){enum}) |
|
3089
|
-
| cipher_allowed | string | Y | Y | Y | Y | Y | returned by node API. Valid literals include "aes-128" and "none".<br/>(<ignored>) |
|
3090
|
-
| compression | int | | | | | | ascp4 only, 0 / 1?<br/>(<ignored>) |
|
3091
|
-
| content_protection | string | Y | Y | Y | Y | Y | Enable client-side encryption at rest. (CSEAR, content protection)<br/>Allowed values: encrypt, decrypt<br/>(--file-crypt {enum}) |
|
3092
|
-
| content_protection_password | string | Y | Y | Y | Y | Y | Specifies CSEAR password. (content protection)<br/>(env:ASPERA_SCP_FILEPASS) |
|
3093
|
-
| cookie | string | Y | Y | Y | Y | Y | Metadata for transfer specified by application<br/>(env:ASPERA_SCP_COOKIE) |
|
3094
|
-
| create_dir | bool | Y | Y | Y | Y | Y | Specifies whether to create new directories.<br/>(-d) |
|
3095
|
-
| delete_before_transfer | bool | Y | Y | Y | Y | Y | Before transfer, delete files that exist at the destination but not at the source.<br/>The source and destination arguments must be directories that have matching names.<br/>Objects on the destination that have the same name but different type or size as objects<br/>on the source are not deleted.<br/>(--delete-before-transfer) |
|
3096
|
-
| delete_source | bool | Y | Y | | | | Remove SRC files after transfer success<br/>(--remove-after-transfer) |
|
3097
|
-
| destination_root | string | Y | Y | Y | Y | Y | Destination root directory.<br/>(<special>) |
|
3098
|
-
| destination_root_id | string | | | | | | The file ID of the destination root directory.<br/>Required when using Bearer token auth for the destination node.<br/>(<ignored>) |
|
3099
|
-
| dgram_size | int | Y | Y | Y | Y | Y | UDP datagram size in bytes<br/>(-Z {int}) |
|
3100
|
-
| direction | string | Y | Y | Y | Y | Y | Direction of transfer (on client side)<br/>Allowed values: send, receive<br/>(--mode (conversion){enum}) |
|
3101
|
-
| exclude_newer_than |
|
3102
|
-
| exclude_older_than |
|
3103
|
-
| fasp_port | int | Y | Y | Y | Y | Y | Specifies fasp (UDP) port.<br/>(-O {int}) |
|
3104
|
-
| fasp_url | string | | | | | | Only used in Faspex.<br/>(<ignored>) |
|
3105
|
-
| file_checksum | string | Y | Y | | | | Enable checksum reporting for transferred files by specifying the hash to use.<br/>Allowed values: sha-512, sha-384, sha-256, sha1, md5, none<br/>(<ignored>) |
|
3106
|
-
| http_fallback | bool<br/>string | Y | Y | Y | Y | Y | When true(1), attempts to perform an HTTP transfer if a FASP transfer cannot be performed.<br/>(-y (conversion){bool}\|{string}) |
|
3107
|
-
| http_fallback_port | int | Y | | | | | Specifies http port when no cipher is used<br/>(-t {int}) |
|
3108
|
-
| https_fallback_port | int | Y | Y | Y | Y | Y | Specifies https port when cipher is used<br/>(-t {int}) |
|
3109
|
-
| keepalive | bool | Y | | | | | The session is running in persistent session mode.<br/>(--keepalive) |
|
3110
|
-
| lock_min_rate | bool | Y | Y | Y | Y | Y | TODO: remove ?<br/>(<ignored>) |
|
3111
|
-
| lock_min_rate_kbps | bool | | |
|
3112
|
-
| lock_rate_policy | bool | | |
|
3113
|
-
| lock_target_rate | bool | Y | Y | Y | Y | Y | TODO: remove ?<br/>(<ignored>) |
|
3114
|
-
| lock_target_rate_kbps | bool | Y | Y | Y | Y | Y | If true, lock the target transfer rate to the default value set for target_rate_kbps.<br/>If false, users can adjust the transfer rate up to the value set for target_rate_cap_kbps.<br/>(<ignored>) |
|
3115
|
-
| min_rate_cap_kbps | int | Y | Y | Y | Y | Y | The highest minimum rate that an incoming transfer can request, in kilobits per second.<br/>Client minimum rate requests that exceed the minimum rate cap are ignored.<br/>The default value of unlimited applies no cap to the minimum rate. (Default: 0)<br/>(<ignored>) |
|
3116
|
-
| min_rate_kbps | int | Y | Y | Y | Y | Y | Set the minimum transfer rate in kilobits per second.<br/>(-m {int}) |
|
3117
|
-
| move_after_transfer | string | Y | Y | | | | The relative path to which the files will be moved after the transfer at the source side. Available as of 3.8.0.<br/>(--move-after-transfer {string}) |
|
3118
|
-
| multi_session | int | Y | Y | Y | Y | Y | 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.<br/><br/>(<special>) |
|
3119
|
-
| multi_session_threshold | int | Y | Y | | | | Split files across multiple ascp sessions if their size in bytes is greater than or equal to the specified value.<br/>(0=no file is split)<br/>(--multi-session-threshold {int}) |
|
3120
|
-
| obfuscate_file_names | bool | | | | | Y | HTTP Gateway obfuscates file names when set to true.<br/>(<ignored>) |
|
3121
|
-
| overwrite | string | Y | Y | Y | Y | Y | Overwrite destination files with the source files of the same name.<br/>Allowed values: never, always, diff, older, diff+older<br/>(--overwrite {enum}) |
|
3122
|
-
| password | string | |
|
3123
|
-
| paths | array | Y | Y | Y | Y | Y | Array of path to the source (required) and a path to the destination (optional).<br/>(<special>) |
|
3124
|
-
| precalculate_job_size | bool | Y | Y | Y | Y | Y | Specifies whether to precalculate the job size.<br/>(--precalculate-job-size) |
|
3125
|
-
| preserve_access_time | bool | Y | Y | Y | Y | Y | Preserve the source-file access timestamps at the destination.<br/>Because source access times are updated by the transfer operation,<br/>the timestamp that is preserved is the one just before to the transfer.<br/>(--preserve-access-time) |
|
3126
|
-
| preserve_acls | string | Y | | | | | Preserve access control lists.<br/>Allowed values: none, native, metafile<br/>(--preserve-acls {enum}) |
|
3127
|
-
| preserve_creation_time | bool | Y | Y | Y | Y | Y | (Windows only) Preserve source-file creation timestamps at the destination.<br/>Only Windows systems retain information about creation time.<br/>If the destination is not a Windows computer, this option is ignored.<br/>(--preserve-creation-time) |
|
3128
|
-
| preserve_extended_attrs | string | | | | | | Preserve the extended attributes.<br/>Allowed values: none, native, metafile<br/>(--preserve-xattrs {enum}) |
|
3129
|
-
| preserve_file_owner_gid | bool | Y | | | | | Preserve the group ID for a file owner<br/>(--preserve-file-owner-gid) |
|
3130
|
-
| preserve_file_owner_uid | bool | Y | | | | | Preserve the user ID for a file owner<br/>(--preserve-file-owner-uid) |
|
3131
|
-
| preserve_modification_time | bool | Y | Y | Y | Y | Y | Set the modification time, the last time a file or directory was modified (written), of a transferred file<br/>to the modification of the source file or directory.<br/>Preserve source-file modification timestamps at the destination.<br/>(--preserve-modification-time) |
|
3132
|
-
| preserve_remote_acls | string | Y | | | | | Preserve remote access control lists.<br/>Allowed values: none, native, metafile<br/>(--remote-preserve-acls {enum}) |
|
3133
|
-
| preserve_source_access_time | bool | Y | | | | | Preserve the time logged for when the source file was accessed<br/>(--preserve-source-access-time) |
|
3134
|
-
| preserve_times | bool | |
|
3135
|
-
| proxy | string | Y | | | | | 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 {string}) |
|
3136
|
-
| rate_policy | string | Y | Y | Y | Y | Y | The transfer rate policy to use when sharing bandwidth.<br/>Allowed values: low, fair, high, fixed<br/>(--policy {enum}) |
|
3137
|
-
| rate_policy_allowed | string | | |
|
3138
|
-
| read_threads | int | | | | | | ascp4 only<br/>(<ignored>) |
|
3139
|
-
| remote_access_key | string | | | | | | The access key ID of the access key that was used to construct the bearer token that is used to authenticate to the remote node.<br/>(<ignored>) |
|
3140
|
-
| remote_host | string | Y | Y | Y | Y | Y | IP or fully qualified domain name of the remote server<br/>(--host {string}) |
|
3141
|
-
| remote_password | string | Y | Y | Y | Y | Y | SSH session password<br/>(env:ASPERA_SCP_PASS) |
|
3142
|
-
| remote_user | string | Y | Y | Y | Y | Y | Remote user. Default value is "xfer" on node or connect.<br/>(--user {string}) |
|
3143
|
-
| remove_after_transfer | bool | Y | Y | | | | Remove SRC files after transfer success<br/>(--remove-after-transfer) |
|
3144
|
-
| remove_empty_directories | bool | Y | Y | | | | Specifies whether to remove empty directories.<br/>(--remove-empty-directories) |
|
3145
|
-
| remove_empty_source_directory | bool | Y | | | | | Remove empty source subdirectories and remove the source directory itself, if empty<br/>(--remove-empty-source-directory) |
|
3146
|
-
| remove_skipped | bool | Y | Y |
|
3147
|
-
| resume_policy | string | Y | Y | Y | Y | Y | 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 (conversion){enum}) |
|
3148
|
-
| retry_duration | string<br/>int | |
|
3149
|
-
| source_root | string | Y | Y | Y | Y | Y | 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 (conversion){string}) |
|
3150
|
-
| source_root_id | string | |
|
3151
|
-
| src_base | string | Y | Y | | | | Specify the prefix to be stripped off from each source object.<br/>The remaining portion of the source path is kept intact at the destination.<br/>Special care must be taken when used with cloud storage.<br/>(--src-base64 (conversion){string}) |
|
3152
|
-
| ssh_args | string | | | | | | Array of arguments to pass to SSH. Use with caution.<br/>(<ignored>) |
|
3153
|
-
| ssh_port | int | Y | Y | Y | Y | Y | Specifies SSH (TCP) port. Default: local:22, other:33001<br/>(-P {int}) |
|
3154
|
-
| ssh_private_key | string | Y | | | | | 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) |
|
3155
|
-
| ssh_private_key_passphrase | string | Y | | | | | The passphrase associated with the transfer user's SSH private key. Available as of 3.7.2.<br/>(env:ASPERA_SCP_PASS) |
|
3156
|
-
| sshfp | string | Y | Y | Y | Y | Y | Check it against server SSH host key fingerprint<br/>(--check-sshfp {string}) |
|
3157
|
-
| symlink_policy | string | Y | Y | Y | Y | Y | Handle source side symbolic links<br/>Allowed values: follow, copy, copy+force, skip<br/>(--symbolic-links {enum}) |
|
3158
|
-
| tags | hash | Y | Y | Y | Y | Y | Metadata for transfer as JSON
|
3159
|
-
| target_rate_cap_kbps | int | | |
|
3160
|
-
| target_rate_kbps | int | Y | Y | Y | Y | Y | Specifies desired speed for the transfer.<br/>(-l {int}) |
|
3161
|
-
| target_rate_percentage | string | Y | Y | Y | Y | Y | TODO: remove ?<br/>(<ignored>) |
|
3162
|
-
| title | string | |
|
3163
|
-
| token | string | Y | Y | Y | Y | Y | Authorization token: Bearer, Basic or ATM (Also arg -W)<br/>(env:ASPERA_SCP_TOKEN) |
|
3164
|
-
| use_ascp4 | bool | Y | Y | | | | specify version of protocol<br/>(<special>) |
|
3165
|
-
| use_system_ssh | string | | | | | | TODO, comment...<br/>(<ignored>) |
|
3166
|
-
| write_threads | int | | | | | | ascp4 only<br/>(<ignored>) |
|
3167
|
-
| wss_enabled | bool | Y | Y | Y | Y | Y | Server has Web Socket service enabled<br/>(<special>) |
|
3168
|
-
| wss_port | int | Y | Y | Y | Y | Y | TCP port used for websocket service feed<br/>(<special>) |
|
3202
|
+
| Field | Type | N | D | A | T | H | C | Description |
|
3203
|
+
| ----- | ---- | - | - | - | - | - | - | ----------- |
|
3204
|
+
| apply_local_docroot | bool | | Y | | | | | Apply local docroot to source paths.<br/>(--apply-local-docroot) |
|
3205
|
+
| authentication | string | | | | | | Y | value=token for SSH bypass keys, else password asked if not provided.<br/>(<ignored>) |
|
3206
|
+
| cipher | string | Y | Y | Y | Y | Y | Y | 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 (conversion){enum}) |
|
3207
|
+
| cipher_allowed | string | Y | Y | Y | Y | Y | Y | returned by node API. Valid literals include "aes-128" and "none".<br/>(<ignored>) |
|
3208
|
+
| compression | int | | | | | | | ascp4 only, 0 / 1?<br/>(<ignored>) |
|
3209
|
+
| content_protection | string | Y | Y | Y | Y | Y | Y | Enable client-side encryption at rest. (CSEAR, content protection)<br/>Allowed values: encrypt, decrypt<br/>(--file-crypt {enum}) |
|
3210
|
+
| content_protection_password | string | Y | Y | Y | Y | Y | Y | Specifies CSEAR password. (content protection)<br/>(env:ASPERA_SCP_FILEPASS) |
|
3211
|
+
| cookie | string | Y | Y | Y | Y | Y | Y | Metadata for transfer specified by application<br/>(env:ASPERA_SCP_COOKIE) |
|
3212
|
+
| create_dir | bool | Y | Y | Y | Y | Y | Y | Specifies whether to create new directories.<br/>(-d) |
|
3213
|
+
| delete_before_transfer | bool | Y | Y | Y | Y | Y | Y | Before transfer, delete files that exist at the destination but not at the source.<br/>The source and destination arguments must be directories that have matching names.<br/>Objects on the destination that have the same name but different type or size as objects<br/>on the source are not deleted.<br/>(--delete-before-transfer) |
|
3214
|
+
| delete_source | bool | Y | Y | | | | | Remove SRC files after transfer success<br/>(--remove-after-transfer) |
|
3215
|
+
| destination_root | string | Y | Y | Y | Y | Y | Y | Destination root directory.<br/>(<special>) |
|
3216
|
+
| destination_root_id | string | | | | | | | The file ID of the destination root directory.<br/>Required when using Bearer token auth for the destination node.<br/>(<ignored>) |
|
3217
|
+
| dgram_size | int | Y | Y | Y | Y | Y | Y | UDP datagram size in bytes<br/>(-Z {int}) |
|
3218
|
+
| direction | string | Y | Y | Y | Y | Y | Y | Direction of transfer (on client side)<br/>Allowed values: send, receive<br/>(--mode (conversion){enum}) |
|
3219
|
+
| exclude_newer_than | string | Y | Y | Y | Y | Y | Y | Exclude files, but not directories, from the transfer if they are newer than the specified number of seconds added to the source computer's epoch. e.g. "-86400" for newer than a day back.<br/>(--exclude-newer-than {string}) |
|
3220
|
+
| exclude_older_than | string | Y | Y | Y | Y | Y | Y | Exclude files, but not directories, from the transfer if they are older than the specified number of seconds added to the source computer's epoch. e.g. "-86400" for older than a day back.<br/>(--exclude-older-than {string}) |
|
3221
|
+
| fasp_port | int | Y | Y | Y | Y | Y | Y | Specifies fasp (UDP) port.<br/>(-O {int}) |
|
3222
|
+
| fasp_url | string | | | | | | | Only used in Faspex.<br/>(<ignored>) |
|
3223
|
+
| file_checksum | string | Y | Y | | | | | Enable checksum reporting for transferred files by specifying the hash to use.<br/>Allowed values: sha-512, sha-384, sha-256, sha1, md5, none<br/>(<ignored>) |
|
3224
|
+
| http_fallback | bool<br/>string | Y | Y | Y | Y | Y | Y | When true(1), attempts to perform an HTTP transfer if a FASP transfer cannot be performed.<br/>(-y (conversion){bool}\|{string}) |
|
3225
|
+
| http_fallback_port | int | | Y | | | | | Specifies http port when no cipher is used<br/>(-t {int}) |
|
3226
|
+
| https_fallback_port | int | Y | Y | Y | Y | Y | Y | Specifies https port when cipher is used<br/>(-t {int}) |
|
3227
|
+
| keepalive | bool | | Y | | | | | The session is running in persistent session mode.<br/>(--keepalive) |
|
3228
|
+
| lock_min_rate | bool | Y | Y | Y | Y | Y | Y | TODO: remove ?<br/>(<ignored>) |
|
3229
|
+
| lock_min_rate_kbps | bool | | | | | | Y | If true, lock the minimum transfer rate to the value set for min_rate_kbps.<br/>If false, users can adjust the transfer rate up to the value set for target_rate_cap_kbps.<br/>(<ignored>) |
|
3230
|
+
| lock_rate_policy | bool | | | | | | Y | If true, lock the rate policy to the default value.<br/>(<ignored>) |
|
3231
|
+
| lock_target_rate | bool | Y | Y | Y | Y | Y | Y | TODO: remove ?<br/>(<ignored>) |
|
3232
|
+
| lock_target_rate_kbps | bool | Y | Y | Y | Y | Y | Y | If true, lock the target transfer rate to the default value set for target_rate_kbps.<br/>If false, users can adjust the transfer rate up to the value set for target_rate_cap_kbps.<br/>(<ignored>) |
|
3233
|
+
| min_rate_cap_kbps | int | Y | Y | Y | Y | Y | Y | The highest minimum rate that an incoming transfer can request, in kilobits per second.<br/>Client minimum rate requests that exceed the minimum rate cap are ignored.<br/>The default value of unlimited applies no cap to the minimum rate. (Default: 0)<br/>(<ignored>) |
|
3234
|
+
| min_rate_kbps | int | Y | Y | Y | Y | Y | Y | Set the minimum transfer rate in kilobits per second.<br/>(-m {int}) |
|
3235
|
+
| move_after_transfer | string | Y | Y | | | | | The relative path to which the files will be moved after the transfer at the source side. Available as of 3.8.0.<br/>(--move-after-transfer {string}) |
|
3236
|
+
| multi_session | int | Y | Y | Y | Y | Y | Y | 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.<br/><br/>(<special>) |
|
3237
|
+
| multi_session_threshold | int | Y | Y | | | | | Split files across multiple ascp sessions if their size in bytes is greater than or equal to the specified value.<br/>(0=no file is split)<br/>(--multi-session-threshold {int}) |
|
3238
|
+
| obfuscate_file_names | bool | | | | | Y | | HTTP Gateway obfuscates file names when set to true.<br/>(<ignored>) |
|
3239
|
+
| overwrite | string | Y | Y | Y | Y | Y | Y | Overwrite destination files with the source files of the same name.<br/>Allowed values: never, always, diff, older, diff+older<br/>(--overwrite {enum}) |
|
3240
|
+
| password | string | Y | | | | | | Password for local Windows user when transfer user associated with node api user is not the same as the one running asperanoded.<br/>Allows impersonating the transfer user and have access to resources (e.g. network shares).<br/>Windows only, node api only.<br/>(<ignored>) |
|
3241
|
+
| paths | array | Y | Y | Y | Y | Y | Y | Array of path to the source (required) and a path to the destination (optional).<br/>(<special>) |
|
3242
|
+
| precalculate_job_size | bool | Y | Y | Y | Y | Y | Y | Specifies whether to precalculate the job size.<br/>(--precalculate-job-size) |
|
3243
|
+
| preserve_access_time | bool | Y | Y | Y | Y | Y | Y | Preserve the source-file access timestamps at the destination.<br/>Because source access times are updated by the transfer operation,<br/>the timestamp that is preserved is the one just before to the transfer.<br/>(--preserve-access-time) |
|
3244
|
+
| preserve_acls | string | | Y | | | | | Preserve access control lists.<br/>Allowed values: none, native, metafile<br/>(--preserve-acls {enum}) |
|
3245
|
+
| preserve_creation_time | bool | Y | Y | Y | Y | Y | Y | (Windows only) Preserve source-file creation timestamps at the destination.<br/>Only Windows systems retain information about creation time.<br/>If the destination is not a Windows computer, this option is ignored.<br/>(--preserve-creation-time) |
|
3246
|
+
| preserve_extended_attrs | string | | | | | | | Preserve the extended attributes.<br/>Allowed values: none, native, metafile<br/>(--preserve-xattrs {enum}) |
|
3247
|
+
| preserve_file_owner_gid | bool | | Y | | | | | Preserve the group ID for a file owner<br/>(--preserve-file-owner-gid) |
|
3248
|
+
| preserve_file_owner_uid | bool | | Y | | | | | Preserve the user ID for a file owner<br/>(--preserve-file-owner-uid) |
|
3249
|
+
| preserve_modification_time | bool | Y | Y | Y | Y | Y | Y | Set the modification time, the last time a file or directory was modified (written), of a transferred file<br/>to the modification of the source file or directory.<br/>Preserve source-file modification timestamps at the destination.<br/>(--preserve-modification-time) |
|
3250
|
+
| preserve_remote_acls | string | | Y | | | | | Preserve remote access control lists.<br/>Allowed values: none, native, metafile<br/>(--remote-preserve-acls {enum}) |
|
3251
|
+
| preserve_source_access_time | bool | | Y | | | | | Preserve the time logged for when the source file was accessed<br/>(--preserve-source-access-time) |
|
3252
|
+
| preserve_times | bool | Y | | | | | | Preserve file timestamps.<br/>(--preserve-times) |
|
3253
|
+
| proxy | string | | Y | | | | | 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 {string}) |
|
3254
|
+
| rate_policy | string | Y | Y | Y | Y | Y | Y | The transfer rate policy to use when sharing bandwidth.<br/>Allowed values: low, fair, high, fixed<br/>(--policy {enum}) |
|
3255
|
+
| rate_policy_allowed | string | | | | | | Y | Specifies most aggressive rate policy that is allowed.<br/>Returned by node API.<br/>Allowed values: low, fair, high, fixed<br/>(<ignored>) |
|
3256
|
+
| read_threads | int | | | | | | | ascp4 only<br/>(<ignored>) |
|
3257
|
+
| remote_access_key | string | | | | | | | The access key ID of the access key that was used to construct the bearer token that is used to authenticate to the remote node.<br/>(<ignored>) |
|
3258
|
+
| remote_host | string | Y | Y | Y | Y | Y | Y | IP or fully qualified domain name of the remote server<br/>(--host {string}) |
|
3259
|
+
| remote_password | string | Y | Y | Y | Y | Y | Y | SSH session password<br/>(env:ASPERA_SCP_PASS) |
|
3260
|
+
| remote_user | string | Y | Y | Y | Y | Y | Y | Remote user. Default value is "xfer" on node or connect.<br/>(--user {string}) |
|
3261
|
+
| remove_after_transfer | bool | Y | Y | | | | | Remove SRC files after transfer success<br/>(--remove-after-transfer) |
|
3262
|
+
| remove_empty_directories | bool | Y | Y | | | | | Specifies whether to remove empty directories.<br/>(--remove-empty-directories) |
|
3263
|
+
| remove_empty_source_directory | bool | | Y | | | | | Remove empty source subdirectories and remove the source directory itself, if empty<br/>(--remove-empty-source-directory) |
|
3264
|
+
| remove_skipped | bool | Y | Y | | | | Y | Must also have remove_after_transfer set to true, Defaults to false, if true, skipped files will be removed as well.<br/>(--remove-skipped) |
|
3265
|
+
| resume_policy | string | Y | Y | Y | Y | Y | Y | 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 (conversion){enum}) |
|
3266
|
+
| retry_duration | string<br/>int | Y | | | | | Y | Specifies how long to wait before retrying transfer. (e.g. "5min")<br/>(<ignored>) |
|
3267
|
+
| source_root | string | Y | Y | Y | Y | Y | Y | 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 (conversion){string}) |
|
3268
|
+
| source_root_id | string | Y | | | | | | The file ID of the source root directory. Required when using Bearer token auth for the source node.<br/>(<ignored>) |
|
3269
|
+
| src_base | string | Y | Y | | | | | Specify the prefix to be stripped off from each source object.<br/>The remaining portion of the source path is kept intact at the destination.<br/>Special care must be taken when used with cloud storage.<br/>(--src-base64 (conversion){string}) |
|
3270
|
+
| ssh_args | string | | | | | | | Array of arguments to pass to SSH. Use with caution.<br/>(<ignored>) |
|
3271
|
+
| ssh_port | int | Y | Y | Y | Y | Y | Y | Specifies SSH (TCP) port. Default: local:22, other:33001<br/>(-P {int}) |
|
3272
|
+
| ssh_private_key | string | | Y | | | | | 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) |
|
3273
|
+
| ssh_private_key_passphrase | string | | Y | | | | | The passphrase associated with the transfer user's SSH private key. Available as of 3.7.2.<br/>(env:ASPERA_SCP_PASS) |
|
3274
|
+
| sshfp | string | Y | Y | Y | Y | Y | Y | Check it against server SSH host key fingerprint<br/>(--check-sshfp {string}) |
|
3275
|
+
| symlink_policy | string | Y | Y | Y | Y | Y | Y | Handle source side symbolic links<br/>Allowed values: follow, copy, copy+force, skip<br/>(--symbolic-links {enum}) |
|
3276
|
+
| tags | hash | Y | Y | Y | Y | Y | Y | Metadata for transfer as JSON. Key `aspera` is reserved. Key `aspera.xfer_retry` specified a retry timeout for node api initiated transfers.<br/>(--tags64 (conversion){hash}) |
|
3277
|
+
| target_rate_cap_kbps | int | | | | | | Y | Returned by upload/download_setup node API.<br/>(<ignored>) |
|
3278
|
+
| target_rate_kbps | int | Y | Y | Y | Y | Y | Y | Specifies desired speed for the transfer.<br/>(-l {int}) |
|
3279
|
+
| target_rate_percentage | string | Y | Y | Y | Y | Y | Y | TODO: remove ?<br/>(<ignored>) |
|
3280
|
+
| title | string | Y | | | | | Y | Title of the transfer<br/>(<ignored>) |
|
3281
|
+
| token | string | Y | Y | Y | Y | Y | Y | Authorization token: Bearer, Basic or ATM (Also arg -W)<br/>(env:ASPERA_SCP_TOKEN) |
|
3282
|
+
| use_ascp4 | bool | Y | Y | | | | | specify version of protocol<br/>(<special>) |
|
3283
|
+
| use_system_ssh | string | | | | | | | TODO, comment...<br/>(<ignored>) |
|
3284
|
+
| write_threads | int | | | | | | | ascp4 only<br/>(<ignored>) |
|
3285
|
+
| wss_enabled | bool | Y | Y | Y | Y | Y | Y | Server has Web Socket service enabled<br/>(<special>) |
|
3286
|
+
| wss_port | int | Y | Y | Y | Y | Y | Y | TCP port used for websocket service feed<br/>(<special>) |
|
3287
|
+
| xfer_max_retries | int | Y | | | | | | maximum number of retries, for node API initiated transfers. Shall not exceed aspera.conf `transfer_manager_max_retries` (default 5).<br/>(<ignored>) |
|
3169
3288
|
|
3170
3289
|
#### Destination folder for transfers
|
3171
3290
|
|
@@ -3561,9 +3680,9 @@ where:
|
|
3561
3680
|
| Name | Type | Description |
|
3562
3681
|
|--------|------|-------------|
|
3563
3682
|
|count |int |Number of files<br/>Mandatory|
|
3564
|
-
|file |string|Basename for files<br
|
3565
|
-
|size |int |Size of first file.<br
|
3566
|
-
|inc |int |Increment applied to determine next file size<br
|
3683
|
+
|file |string|Basename for files<br/>Default: `file`|
|
3684
|
+
|size |int |Size of first file.<br/>Default: 0|
|
3685
|
+
|inc |int |Increment applied to determine next file size<br/>Default: 0|
|
3567
3686
|
|seq |enum |Sequence in determining next file size<br/>Values: random, sequential<br/>Default: sequential|
|
3568
3687
|
|buf_init|enum |How source data is initialized<br/>Option 'none' is not allowed for downloads.<br/>Values:none, zero, random<br/>Default:zero|
|
3569
3688
|
|
@@ -3610,7 +3729,7 @@ ascli server upload "faux:///mydir?file=testfile&count=1m&size=0&inc=2&seq=seque
|
|
3610
3729
|
```text
|
3611
3730
|
ascli -h
|
3612
3731
|
NAME
|
3613
|
-
ascli -- a command line tool for Aspera Applications (v4.
|
3732
|
+
ascli -- a command line tool for Aspera Applications (v4.21.1)
|
3614
3733
|
|
3615
3734
|
SYNOPSIS
|
3616
3735
|
ascli COMMANDS [OPTIONS] [ARGS]
|
@@ -3649,8 +3768,7 @@ OPTIONS: global
|
|
3649
3768
|
--select=VALUE Select only some items in lists: column, value (Hash, Proc)
|
3650
3769
|
--table-style=VALUE Table display style (Hash)
|
3651
3770
|
--flat-hash=ENUM (Table) Display deep values as additional keys: no, [yes]
|
3652
|
-
--
|
3653
|
-
--multi-table=ENUM (Table) Each element of a table are displayed as a table: [no], yes
|
3771
|
+
--multi-single=ENUM (Table) Control how object list is displayed as single table, or multiple objects: [no], yes, single
|
3654
3772
|
--show-secrets=ENUM Show secrets on command output: [no], yes
|
3655
3773
|
--image=VALUE Options for image display (Hash)
|
3656
3774
|
-h, --help Show this message
|
@@ -3703,11 +3821,11 @@ OPTIONS: global
|
|
3703
3821
|
--to-folder=VALUE Destination folder for transferred files
|
3704
3822
|
--sources=VALUE How list of transferred files is provided (@args,@ts,Array)
|
3705
3823
|
--src-type=ENUM Type of file list: [list], pair
|
3706
|
-
--transfer=ENUM Type of transfer agent: node, [direct], alpha, httpgw, connect
|
3824
|
+
--transfer=ENUM Type of transfer agent: node, [direct], alpha, transferd, httpgw, connect
|
3707
3825
|
--transfer-info=VALUE Parameters for transfer agent (Hash)
|
3708
3826
|
|
3709
3827
|
COMMAND: config
|
3710
|
-
SUBCOMMANDS: ascp check_update coffee detect documentation echo email_test file
|
3828
|
+
SUBCOMMANDS: ascp check_update coffee detect documentation download echo email_test file folder gem genkey image initdemo open platform plugins preset proxy_check pubkey remote_certificate smtp_settings test tokens transferd vault wizard
|
3711
3829
|
|
3712
3830
|
|
3713
3831
|
COMMAND: shares
|
@@ -4018,7 +4136,7 @@ ascli aoc user profile show
|
|
4018
4136
|
Optionally, it is possible to create a new organization-specific integration, i.e. client application identification.
|
4019
4137
|
For this, specify the option: `--use-generic-client=no`.
|
4020
4138
|
|
4021
|
-
If you already know the application, and want to limit the detection to it, provide
|
4139
|
+
If you already know the application, and want to limit the detection to it, provide URL and plugin name:
|
4022
4140
|
|
4023
4141
|
```bash
|
4024
4142
|
ascli config wizard _your_instance_ aoc
|
@@ -4036,7 +4154,7 @@ Several types of OAuth authentication are supported:
|
|
4036
4154
|
|
4037
4155
|
- JSON Web Token (JWT) : authentication is secured by a private key (recommended for `ascli`)
|
4038
4156
|
- Web based authentication : authentication is made by user using a browser
|
4039
|
-
- URL Token : external users authentication with
|
4157
|
+
- URL Token : external users authentication with URL tokens (public links)
|
4040
4158
|
|
4041
4159
|
The authentication method is controlled by option `auth`.
|
4042
4160
|
|
@@ -4781,7 +4899,7 @@ So, for example, the creation of a node using ATS in IBM Cloud looks like (see o
|
|
4781
4899
|
First, Retrieve the ATS node address
|
4782
4900
|
|
4783
4901
|
```bash
|
4784
|
-
ascli aoc admin ats cluster show --cloud=softlayer --region=eu-de --fields=transfer_setup_url --format=csv
|
4902
|
+
ascli aoc admin ats cluster show --cloud=softlayer --region=eu-de --fields=transfer_setup_url --format=csv
|
4785
4903
|
```
|
4786
4904
|
|
4787
4905
|
Then use the returned address for the `url` key to actually create the AoC Node entity:
|
@@ -4845,6 +4963,20 @@ If a user recipient (email) is not already registered and the workspace allows e
|
|
4845
4963
|
- if the option `new_user_option` is `@json:{"package_contact":true}` (default), then a public link is sent and the external user does not need to create an account
|
4846
4964
|
- if the option `new_user_option` is `@json:{}`, then external users are invited to join the workspace
|
4847
4965
|
|
4966
|
+
#### List packages
|
4967
|
+
|
4968
|
+
By default, when using `aoc packages list`, the following `query` is performed:
|
4969
|
+
|
4970
|
+
| query parameter | value |
|
4971
|
+
|----------------------------|-------|
|
4972
|
+
| `archived` | `false` |
|
4973
|
+
| `has_content` | `true` |
|
4974
|
+
| `received` | `true` |
|
4975
|
+
| `completed` | `true` |
|
4976
|
+
| `workspace_id` | based on current workspace |
|
4977
|
+
| `exclude_dropbox_packages` | `true` or `false` depending if watching a dropbox|
|
4978
|
+
| `dropbox_id` | set accoring to `dropbox_name` |
|
4979
|
+
|
4848
4980
|
#### Example: Send a package with one file to two users, using their email
|
4849
4981
|
|
4850
4982
|
```bash
|
@@ -4886,7 +5018,7 @@ ascli aoc packages list --query=@json:'{"dropbox_name":"My Shared Inbox","archiv
|
|
4886
5018
|
Using shared inbox identifier: first retrieve the id of the shared inbox, and then list packages with the appropriate filter.
|
4887
5019
|
|
4888
5020
|
```bash
|
4889
|
-
shared_box_id=$(ascli aoc packages shared_inboxes show --name='My Shared Inbox' --format=csv --display=data --fields=id
|
5021
|
+
shared_box_id=$(ascli aoc packages shared_inboxes show --name='My Shared Inbox' --format=csv --display=data --fields=id)
|
4890
5022
|
```
|
4891
5023
|
|
4892
5024
|
```bash
|
@@ -4938,6 +5070,26 @@ ascli aoc packages recv ALL --once-only=yes --lock-port=12345
|
|
4938
5070
|
|
4939
5071
|
Typically, one would execute this command on a regular basis, using the method of your choice: see [Scheduler](#scheduler).
|
4940
5072
|
|
5073
|
+
### Example: Content of a received Package
|
5074
|
+
|
5075
|
+
Some `node` operations are available for a package, such as `browse` and `find`.
|
5076
|
+
|
5077
|
+
To list the content of a package, use command `packages browse <package id> <folder>`:
|
5078
|
+
|
5079
|
+
```bash
|
5080
|
+
ascli aoc package browse my5CnbeWng /
|
5081
|
+
```
|
5082
|
+
|
5083
|
+
To list recursively, use command `find`.
|
5084
|
+
|
5085
|
+
To download only some of the files listed in the package, just add the path of the files on the command line.
|
5086
|
+
|
5087
|
+
For advanced users, it's also possible to pipe node information for the package and use node operations:
|
5088
|
+
|
5089
|
+
```bash
|
5090
|
+
ascli aoc package node_info <package id here> / --format=json --show-secrets=yes --display=data | ascli node -N --preset=@json:@stdin: access_key do self browse /
|
5091
|
+
```
|
5092
|
+
|
4941
5093
|
### Files
|
4942
5094
|
|
4943
5095
|
The Files application presents a **Home** folder to users in a given workspace.
|
@@ -5092,7 +5244,7 @@ For instructions, refer to section `find` for plugin `node`.
|
|
5092
5244
|
|
5093
5245
|
```bash
|
5094
5246
|
admin analytics transfers nodes
|
5095
|
-
admin analytics transfers organization --query=@json:'{"status":"completed","direction":"receive"}' --notify-to=my_email_external --notify-template=@ruby:'%Q{From: <%=from_name%> <<%=from_email%>>\nTo: <<%=to%>>\nSubject: <%=ev["files_completed"]%> files received\n\n<%=ev.to_yaml%>}'
|
5247
|
+
admin analytics transfers organization --query=@json:'{"status":"completed","direction":"receive","limit":2}' --notify-to=my_email_external --notify-template=@ruby:'%Q{From: <%=from_name%> <<%=from_email%>>\nTo: <<%=to%>>\nSubject: <%=ev["files_completed"]%> files received\n\n<%=ev.to_yaml%>}'
|
5096
5248
|
admin analytics transfers users --once-only=yes
|
5097
5249
|
admin application list
|
5098
5250
|
admin ats access_key create --cloud=aws --region=my_region --params=@json:'{"id":"ak_aws","name":"my test key AWS","storage":{"type":"aws_s3","bucket":"my_bucket","credentials":{"access_key_id":"my_access_key","secret_access_key":"my_secret_key"},"path":"/"}}'
|
@@ -5117,8 +5269,10 @@ admin group list
|
|
5117
5269
|
admin kms_profile list
|
5118
5270
|
admin node do %name:my_node_name --secret=my_ak_secret browse /
|
5119
5271
|
admin node do %name:my_node_name --secret=my_ak_secret delete /folder1
|
5272
|
+
admin node do %name:my_node_name --secret=my_ak_secret delete /folder_sub
|
5120
5273
|
admin node do %name:my_node_name --secret=my_ak_secret mkdir /folder1
|
5121
|
-
admin node do %name:my_node_name --secret=my_ak_secret
|
5274
|
+
admin node do %name:my_node_name --secret=my_ak_secret mkdir /folder_sub
|
5275
|
+
admin node do %name:my_node_name --secret=my_ak_secret v3 access_key create @json:'{"id":"testsub1","storage":{"path":"/folder_sub"}}'
|
5122
5276
|
admin node do %name:my_node_name --secret=my_ak_secret v3 access_key delete testsub1
|
5123
5277
|
admin node do %name:my_node_name --secret=my_ak_secret v3 events
|
5124
5278
|
admin node do %name:my_node_name delete test_shared_folder
|
@@ -5189,13 +5343,14 @@ files v3 info
|
|
5189
5343
|
gateway --pid-file=pid_aocfxgw https://localhost:12345/aspera/faspex &
|
5190
5344
|
org --url=my_public_link_recv_from_aoc_user
|
5191
5345
|
organization
|
5192
|
-
packages browse package_id3 /
|
5346
|
+
packages browse package_id3 /
|
5193
5347
|
packages list
|
5194
5348
|
packages list --query=@json:'{"dropbox_name":"my_shared_inbox_name","sort":"-received_at","archived":false,"received":true,"has_content":true,"exclude_dropbox_packages":false}'
|
5195
5349
|
packages receive ALL --once-only=yes --to-folder=. --lock-port=12345
|
5196
5350
|
packages receive ALL --once-only=yes --to-folder=. --lock-port=12345 --query=@json:'{"dropbox_name":"my_shared_inbox_name","archived":false,"received":true,"has_content":true,"exclude_dropbox_packages":false,"include_draft":false}' --ts=@json:'{"resume_policy":"sparse_csum","target_rate_kbps":50000}'
|
5197
5351
|
packages receive INIT --once-only=yes --query=@json:'{"dropbox_name":"my_shared_inbox_name"}'
|
5198
5352
|
packages receive package_id3 --to-folder=.
|
5353
|
+
packages receive package_id3 --to-folder=. /
|
5199
5354
|
packages send --workspace=my_workspace_shared_inbox --validate-metadata=yes @json:'{"name":"$(notdir test) PACKAGE_TITLE_BASE","recipients":["my_shared_inbox_meta"],"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"]}]}' test_file.bin
|
5200
5355
|
packages send --workspace=my_workspace_shared_inbox --validate-metadata=yes @json:'{"name":"$(notdir test) PACKAGE_TITLE_BASE","recipients":["my_shared_inbox_meta"],"metadata":{"Project Id":"456","Type":"Opt2","CheckThose":["Check1","Check2"],"Optional Date":"2021-01-13T15:02:00.000Z"}}' test_file.bin
|
5201
5356
|
packages send --workspace=my_workspace_shared_inbox --validate-metadata=yes @json:'{"name":"$(notdir test) PACKAGE_TITLE_BASE","recipients":["my_shared_inbox_meta"],"metadata":{"Type":"Opt2","CheckThose":["Check1","Check2"],"Optional Date":"2021-01-13T15:02:00.000Z"}}' test_file.bin
|
@@ -5290,7 +5445,7 @@ ascli ats api_key create
|
|
5290
5445
|
|
5291
5446
|
```output
|
5292
5447
|
+--------+----------------------------------------------+
|
5293
|
-
|
|
5448
|
+
| field | value |
|
5294
5449
|
+--------+----------------------------------------------+
|
5295
5450
|
| id | ats_XXXXXXXXXXXXXXXXXXXXXXXX |
|
5296
5451
|
| secret | YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY |
|
@@ -5392,7 +5547,7 @@ delete my_inside_folder
|
|
5392
5547
|
delete my_upload_folder/to.delete
|
5393
5548
|
df
|
5394
5549
|
download my_inside_folder/test_file.bin --to-folder=. --transfer-info=@json:'{"wss":false,"resume":{"iter_max":1}}'
|
5395
|
-
download
|
5550
|
+
download my_large_file --to-folder=my_upload_folder --transfer=node --ts=@json:'{"resume_policy":"none"}'
|
5396
5551
|
du /
|
5397
5552
|
health transfer --to-folder=my_upload_folder --format=nagios
|
5398
5553
|
info
|
@@ -5410,10 +5565,10 @@ upload 'faux:///test1?100m' 'faux:///test2?100m' --to-folder=/Upload --ts=@json:
|
|
5410
5565
|
upload 'test_file.bin' --to-folder=my_inside_folder --ts=@json:'{"multi_session":3,"multi_session_threshold":1,"resume_policy":"none","target_rate_kbps":100000}' --transfer-info=@json:'{"spawn_delay_sec":2.5,"multi_incr_udp":false}' --progress-bar=yes
|
5411
5566
|
upload --sources=@ts --transfer-info=@json:'{"ascp_args":["--file-list","filelist.txt"]}' --to-folder=my_inside_folder
|
5412
5567
|
upload --sources=@ts --transfer-info=@json:'{"ascp_args":["--file-pair-list","file_pair_list.txt"]}'
|
5413
|
-
upload --sources=@ts --ts=@json:'{"paths":[{"source":"test_file.bin","destination":"my_inside_folder/other_name_4"}]}' --transfer=
|
5568
|
+
upload --sources=@ts --ts=@json:'{"paths":[{"source":"test_file.bin","destination":"my_inside_folder/other_name_4"}]}' --transfer=transferd
|
5414
5569
|
upload --src-type=pair 'test_file.bin' my_inside_folder/other_name_2 --notify-to=my_email_external --transfer-info=@json:'{"ascp_args":["-l","100m"]}'
|
5415
|
-
upload --src-type=pair --sources=@json:'["test_file.bin","my_inside_folder/other_name_3"]' --transfer-info=@json:'{"quiet":false}' --
|
5416
|
-
upload --src-type=pair test_file.bin my_upload_folder/other_name_5 --ts=@json:'{"cipher":"aes-192-gcm","content_protection":"encrypt","content_protection_password":"my_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"}'
|
5570
|
+
upload --src-type=pair --sources=@json:'["test_file.bin","my_inside_folder/other_name_3"]' --transfer-info=@json:'{"quiet":false}' --progress=no
|
5571
|
+
upload --src-type=pair test_file.bin my_upload_folder/other_name_5 --ts=@json:'{"cipher":"aes-192-gcm","content_protection":"encrypt","content_protection_password":"my_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"}'
|
5417
5572
|
upload --to-folder=my_upload_folder/target_hot --lock-port=12345 --transfer-info=@json:'{"ascp_args":["--remove-after-transfer","--remove-empty-directories","--exclude-newer-than=-8","--src-base","source_hot"]}' source_hot
|
5418
5573
|
```
|
5419
5574
|
|
@@ -5523,6 +5678,8 @@ This plugin gives access to capabilities provided by the HSTS node API.
|
|
5523
5678
|
The authentication is `username` and `password` or `access_key` and `secret` through options: `username` and `password`.
|
5524
5679
|
|
5525
5680
|
> **Note:** Capabilities of this plugin are used in other plugins which access to the node API, such as `aoc`, `ats`, `shares`.
|
5681
|
+
>
|
5682
|
+
> **Note:** This plugin can be used with any type of **Aspera Node**, either on-prem or ATS, provided that you have node api credentials. Those credentials can be either Node API user or Access Key (e.g. on ATS).
|
5526
5683
|
|
5527
5684
|
### File Operations
|
5528
5685
|
|
@@ -5792,7 +5949,7 @@ Bearer tokens are part of the **gen4/access key** API.
|
|
5792
5949
|
It follows the model of OAuth 2.
|
5793
5950
|
For example, they are used in Aspera on Cloud.
|
5794
5951
|
This is also available for developers for any application integrating Aspera.
|
5795
|
-
In this API, files, users and groups are identified by an id (a String
|
5952
|
+
In this API, files, users and groups are identified by an id (a `String`, e.g. `"125"`, not necessarily numerical).
|
5796
5953
|
|
5797
5954
|
Bearer tokens are typically generated by the authentication application and then recognized by the node API.
|
5798
5955
|
A bearer token is authorized on the node by creating `permissions` on a **folder**.
|
@@ -5899,7 +6056,7 @@ Using `ascli`, an access key can be created using the `access_key create` on the
|
|
5899
6056
|
|
5900
6057
|
Now, let's assume we are the user, the only information received are:
|
5901
6058
|
|
5902
|
-
- The
|
6059
|
+
- The URL of the node API
|
5903
6060
|
- A Bearer token
|
5904
6061
|
- A file `id` for which we have access
|
5905
6062
|
|
@@ -5923,7 +6080,6 @@ access_key do my_ak_name delete test_nd_ak3
|
|
5923
6080
|
access_key do my_ak_name download test_nd_ak3 --to-folder=.
|
5924
6081
|
access_key do my_ak_name find my_test_folder
|
5925
6082
|
access_key do my_ak_name find my_test_folder @ruby:'->(f){f["name"].end_with?(".jpg")}'
|
5926
|
-
access_key do my_ak_name find my_test_folder exec:'f["name"].end_with?(".jpg")'
|
5927
6083
|
access_key do my_ak_name mkdir /tst_nd_ak
|
5928
6084
|
access_key do my_ak_name node_info /
|
5929
6085
|
access_key do my_ak_name rename /tst_nd_ak test_nd_ak2
|
@@ -5968,7 +6124,7 @@ slash
|
|
5968
6124
|
space /
|
5969
6125
|
ssync bandwidth %name:my_node_sync
|
5970
6126
|
ssync counters %name:my_node_sync
|
5971
|
-
ssync create @json:'{"configuration":{"name":"my_node_sync","local":{"path":"
|
6127
|
+
ssync create @json:'{"configuration":{"name":"my_node_sync","local":{"path":"my_local_path_real"},"remote":{"host":"my_host","port":my_port,"user":"my_username","pass":"my_password_here","path":"my_remote_path"}}}'
|
5972
6128
|
ssync delete %name:my_node_sync
|
5973
6129
|
ssync files %name:my_node_sync
|
5974
6130
|
ssync list
|
@@ -6073,16 +6229,16 @@ Activation is in two steps:
|
|
6073
6229
|
- Click on `Create` Button
|
6074
6230
|
- Take note of Client Id (and Client Secret, but not used in current version)
|
6075
6231
|
|
6076
|
-
- The user
|
6232
|
+
- The user will authenticate with a private key and set the public key in his faspex 5 profile.
|
6077
6233
|
|
6234
|
+
**Note:** If you don't have a private key refer to section [Private Key](#private-key) to generate one.
|
6235
|
+
|
6078
6236
|
This operation is done by each user using the CLI.
|
6079
6237
|
|
6080
6238
|
- As user, click on the user logo, left to the app switcher on top right.
|
6081
6239
|
- Select `Account Settings`
|
6082
6240
|
- on the bottom in the text field: `Public key in PEM format` paste the **public** key corresponding to the private key used by the user.
|
6083
6241
|
|
6084
|
-
**Note:** If you don't have any refer to section [Private Key](#private-key)
|
6085
|
-
|
6086
6242
|
Then use these options:
|
6087
6243
|
|
6088
6244
|
```text
|
@@ -6152,7 +6308,7 @@ admin contacts list
|
|
6152
6308
|
admin distribution_lists create @json:'{"name":"test4","contacts":[{"name":"john@example.com"}]}'
|
6153
6309
|
admin distribution_lists delete %name:test4
|
6154
6310
|
admin distribution_lists list --query=@json:'{"type":"global"}'
|
6155
|
-
admin event app
|
6311
|
+
admin event app --query=@json:'{"max":20}'
|
6156
6312
|
admin event web
|
6157
6313
|
admin jobs list --query=@json:'{"job_type":"email","status":"failed"}' --fields=id,error_desc
|
6158
6314
|
admin metadata_profiles list
|
@@ -6193,7 +6349,7 @@ packages show --box=my_shared_box_name package_box_id1
|
|
6193
6349
|
packages show --box=my_workgroup --group-type=workgroups workgroup_package_id1
|
6194
6350
|
packages show f5_p31
|
6195
6351
|
packages status f5_p31
|
6196
|
-
postprocessing --pid-file=pid_f5_postproc @json:'{"url":"
|
6352
|
+
postprocessing --pid-file=pid_f5_postproc @json:'{"url":"http://localhost:8088/asclihook","processing":{"script_folder":""}}' &
|
6197
6353
|
shared browse %name:my_src
|
6198
6354
|
shared list
|
6199
6355
|
shared_folders browse %name:my_shared_folder_name
|
@@ -6230,13 +6386,23 @@ To select another inbox, use option `box` with one of the following values:
|
|
6230
6386
|
|
6231
6387
|
### Faspex 5: Send a package
|
6232
6388
|
|
6233
|
-
|
6389
|
+
A package can be sent with the command:
|
6234
6390
|
|
6235
|
-
|
6391
|
+
```bash
|
6392
|
+
ascli faspex5 packages send [extended value: Hash with package info ] [files...]
|
6393
|
+
```
|
6394
|
+
|
6395
|
+
The `Hash` creation **Command Parameter** provided to command corresponds to the Faspex 5 API: `POST /packages` (refer to the API reference for a full list of parameters, or look at request in browser).
|
6236
6396
|
|
6237
6397
|
Required fields are `title` and `recipients`.
|
6238
6398
|
|
6239
|
-
Example
|
6399
|
+
Example (assuming a default preset is created for the connection information):
|
6400
|
+
|
6401
|
+
```bash
|
6402
|
+
ascli faspex5 packages send @json:'{"title":"some title","recipients":["user@example.com"]}' mybygfile1
|
6403
|
+
```
|
6404
|
+
|
6405
|
+
Longer example for the ayload of `@json:`:
|
6240
6406
|
|
6241
6407
|
```json
|
6242
6408
|
{"title":"some title","recipients":[{"recipient_type":"user","name":"user@example.com"}]}
|
@@ -6320,7 +6486,7 @@ To list the content of a package, use command `faspex5 packages browse /`.
|
|
6320
6486
|
|
6321
6487
|
Option `query` is available.
|
6322
6488
|
|
6323
|
-
To list recursively add option `--query=@json:{"recursive":true}`.
|
6489
|
+
To list recursively add option `--query=@json:'{"recursive":true}'`.
|
6324
6490
|
|
6325
6491
|
> **Note:** Option `recursive` makes recursive API calls, so it can take a long time on large packages.
|
6326
6492
|
|
@@ -6393,15 +6559,15 @@ ascli faspex5 admin shared create @json:'{"name":"the shared inbox","metadata_pr
|
|
6393
6559
|
### Faspex 5: List content in Shared folder and send package from remote source
|
6394
6560
|
|
6395
6561
|
```bash
|
6396
|
-
ascli faspex5 shared_folders list
|
6562
|
+
ascli faspex5 shared_folders list --fields=id,name
|
6397
6563
|
```
|
6398
6564
|
|
6399
6565
|
```markdown
|
6400
|
-
|
6401
|
-
| id | name |
|
6402
|
-
|
6403
|
-
| 3 | partages |
|
6404
|
-
|
6566
|
+
+----+----------+
|
6567
|
+
| id | name |
|
6568
|
+
+----+----------+
|
6569
|
+
| 3 | partages |
|
6570
|
+
+----+----------+
|
6405
6571
|
```
|
6406
6572
|
|
6407
6573
|
```bash
|
@@ -6444,13 +6610,13 @@ Private invitations are for internal users, provide the user or shared inbox ide
|
|
6444
6610
|
|
6445
6611
|
> **Note:** Operation requires admin level.
|
6446
6612
|
|
6447
|
-
|
6613
|
+
The default automated cleanup period can be displayed with:
|
6448
6614
|
|
6449
6615
|
```bash
|
6450
6616
|
ascli faspex5 admin configuration show --fields=days_before_deleting_package_records
|
6451
6617
|
```
|
6452
6618
|
|
6453
|
-
This parameter can
|
6619
|
+
This parameter can be modified with:
|
6454
6620
|
|
6455
6621
|
```bash
|
6456
6622
|
ascli faspex5 admin configuration modify @json:'{"days_before_deleting_package_records":30}'
|
@@ -6462,6 +6628,8 @@ To start package purge, i.e. permanently remove packages marked for deletion old
|
|
6462
6628
|
ascli faspex5 admin clean_deleted
|
6463
6629
|
```
|
6464
6630
|
|
6631
|
+
> **Note:** The expiration perid taken by default is the one from `admin configuration show`. To use a different period than the default, specify it on command line with: `@json:'{"days_before_deleting_package_records":15}'`
|
6632
|
+
|
6465
6633
|
To delete all packages, one can use the following command:
|
6466
6634
|
|
6467
6635
|
```bash
|
@@ -6469,12 +6637,32 @@ ascli faspex5 packages list --box=ALL --format=yaml --fields=id | ascli faspex5
|
|
6469
6637
|
```
|
6470
6638
|
|
6471
6639
|
> **Note:** Above command will mark all packages for deletion, and will be permanently removed after the configured period (`clean_deleted` command).
|
6472
|
-
> It is possible to add a filter to the list command to only delete packages matching some criteria, e.g. using `--select=@ruby
|
6640
|
+
> It is possible to add a filter to the list command to only delete packages matching some criteria, e.g. using `--select=@ruby:'->(p){...}'` on `packages list`.
|
6641
|
+
|
6642
|
+
### Faspex 5: Admin: Unlock user
|
6643
|
+
|
6644
|
+
To unlock a user, you can de-activate and then re-activate the user:
|
6645
|
+
|
6646
|
+
```bash
|
6647
|
+
ascli faspex5 admin accounts modify %name:some.user@example.com @json:'{"account_activated":false}'
|
6648
|
+
```
|
6649
|
+
|
6650
|
+
```bash
|
6651
|
+
ascli faspex5 admin accounts modify %name:some.user@example.com @json:'{"account_activated":true}'
|
6652
|
+
```
|
6653
|
+
|
6654
|
+
> **Note:** here we use the convenient percent selector, but the numerical if can be used as well.
|
6655
|
+
|
6656
|
+
To send a password reset link to a user, use command `reset_password` on the `account`.
|
6473
6657
|
|
6474
6658
|
### Faspex 5: Faspex 4-style postprocessing
|
6475
6659
|
|
6476
|
-
|
6477
|
-
It implements Faspex 5 web hooks
|
6660
|
+
The command command `ascli faspex5 postprocessing` emulates Faspex 4 postprocessing script execution in Faspex 5.
|
6661
|
+
It implements Faspex 5 web hooks and calls a script with the same environment variables as set by Faspex 4.
|
6662
|
+
Environment variables at set to the values provided by the web hook which are the same as Faspex 4 postprocessing.
|
6663
|
+
|
6664
|
+
It allows to quickly migrate workflows to Faspex 5 while preserving scripts.
|
6665
|
+
Nevertheless, on long term, a native approach shall be considered, such as using Aspera Orchestrator or other workflow engine.
|
6478
6666
|
|
6479
6667
|
It is invoked like this:
|
6480
6668
|
|
@@ -6482,41 +6670,46 @@ It is invoked like this:
|
|
6482
6670
|
ascli faspex5 postprocessing @json:'{"url":"http://localhost:8080/processing"}'
|
6483
6671
|
```
|
6484
6672
|
|
6485
|
-
The following parameters are supported
|
6673
|
+
The following parameters are supported in the extended value `Hash`:
|
6486
6674
|
|
6487
|
-
| parameter | type
|
6488
|
-
|
6489
|
-
| url |
|
6490
|
-
| certificate |
|
6491
|
-
| certificate.key |
|
6492
|
-
| certificate.cert |
|
6493
|
-
| certificate.chain |
|
6494
|
-
| processing |
|
6495
|
-
| processing.script_folder |
|
6496
|
-
| processing.fail_on_error |
|
6497
|
-
| processing.timeout_seconds |
|
6675
|
+
| parameter | type | default | description |
|
6676
|
+
|----------------------------|----------|---------|-----------------------------------------------------|
|
6677
|
+
| url | `String` | `http://localhost:8080` | Base URL on which requests are listened, a path can be provided. | <!-- markdownlint-disable-line -->
|
6678
|
+
| certificate | `Hash` | nil | Certificate information (if URL is HTTPS) |
|
6679
|
+
| certificate.key | `String` | nil | Path to private key file |
|
6680
|
+
| certificate.cert | `String` | nil | Path to certificate |
|
6681
|
+
| certificate.chain | `String` | nil | Path to certificate chain |
|
6682
|
+
| processing | `Hash` | nil | Behavior of post processing |
|
6683
|
+
| processing.script_folder | `String` | . | Prefix added to script path |
|
6684
|
+
| processing.fail_on_error | `Bool` | false | Fail if true and process exits with non zero code |
|
6685
|
+
| processing.timeout_seconds | `Integer`| 60 | Max. execution time before script is killed |
|
6498
6686
|
|
6499
|
-
Parameter `url` defines:
|
6687
|
+
Parameter `url` (base URL) defines:
|
6500
6688
|
|
6501
6689
|
- If `http` or `https` is used
|
6502
|
-
- The local port number
|
6503
|
-
- The **base path**, i.e. the path under which requests are received.
|
6690
|
+
- The local port number (default 443 for HTTPS, 80 for HTTP)
|
6691
|
+
- The **base path**, i.e. the path under which requests are received, if a reverse proxy is used this can be used to route.
|
6504
6692
|
|
6505
6693
|
When a request is received the following happens:
|
6506
6694
|
|
6507
|
-
-
|
6508
|
-
- It removes the **base path**
|
6695
|
+
- `ascli` gets the path of the URL called
|
6696
|
+
- It removes the **base path** of base URL.
|
6509
6697
|
- It prepends it with the value of `script_folder`
|
6510
6698
|
- It executes the script
|
6511
6699
|
- Upon success, a success code is returned
|
6512
6700
|
|
6513
|
-
|
6701
|
+
For example:
|
6514
6702
|
|
6515
|
-
|
6703
|
+
The base URL is defined as: `http://localhost:8080/processing`.
|
6704
|
+
The parameter `script_folder` is set to `/opt/scripts`
|
6516
6705
|
|
6517
|
-
|
6706
|
+
In Faspex 5, the URL of the webhook endpoint shall be reachable from within Faspex containers.
|
6707
|
+
For example, if `ascli` in running in the base host, the URL hostname shall not be localhost, as this refers to the local address inside Faspex container.
|
6708
|
+
Instead, one can specify the IP address of the host or `host.containers.internal`.
|
6518
6709
|
|
6519
|
-
|
6710
|
+
**Webhook endpoint URI** : `http://host.containers.internal:8080/processing/script1.sh`
|
6711
|
+
|
6712
|
+
Then the postprocessing script executed will be `/opt/scripts/script1.sh`.
|
6520
6713
|
|
6521
6714
|
### Faspex 5: Faspex 4 Gateway
|
6522
6715
|
|
@@ -6524,7 +6717,7 @@ Environment variables at set to the values provided by the web hook which are th
|
|
6524
6717
|
|
6525
6718
|
For legacy faspex client applications that use the `send` API (only) of Faspex v4, the command `gateway` provides the capability to present an API compatible with Faspex 4, and it will call the Faspex 5 API.
|
6526
6719
|
|
6527
|
-
It takes a single argument which is the
|
6720
|
+
It takes a single argument which is the URL at which the gateway will be located (locally):
|
6528
6721
|
|
6529
6722
|
```bash
|
6530
6723
|
ascli faspex5 gateway https://localhost:12345/aspera/faspex
|
@@ -6551,6 +6744,8 @@ curl -H "Authorization: $(ascli ascli bearer)" https://faspex5.example.com/asper
|
|
6551
6744
|
|
6552
6745
|
## Plugin: `faspex`: IBM Aspera Faspex v4
|
6553
6746
|
|
6747
|
+
> **Note:** Faspex v4 is end of support since Sept. 30th, 2024. So this plugin for faspex v4 is deprecated. If you still need to use Faspex4, then use `ascli` version 4.19.0 or earlier.
|
6748
|
+
>
|
6554
6749
|
> **Note:** For full details on Faspex API, refer to: [Reference on Developer Site](https://developer.ibm.com/apis/catalog/?search=faspex)
|
6555
6750
|
|
6556
6751
|
This plugin uses APIs versions 3 Faspex v4.
|
@@ -6846,7 +7041,7 @@ If you don't have credentials but have access to the IBM Cloud console, then use
|
|
6846
7041
|
If you have those parameters already, then following options shall be provided:
|
6847
7042
|
|
6848
7043
|
- `bucket` bucket name
|
6849
|
-
- `endpoint` storage endpoint
|
7044
|
+
- `endpoint` storage endpoint URL, e.g. `https://s3.hkg02.cloud-object-storage.appdomain.cloud`
|
6850
7045
|
- `apikey` API Key
|
6851
7046
|
- `crn` resource instance id
|
6852
7047
|
|
@@ -7281,6 +7476,7 @@ If the preview generator does not have access to files on the file system (it is
|
|
7281
7476
|
|
7282
7477
|
```bash
|
7283
7478
|
check --skip-types=office
|
7479
|
+
events --once-only=yes --skip-types=office --log-level=info
|
7284
7480
|
scan --scan-id=1 --skip-types=office --log-level=info --file-access=remote --ts=@json:'{"target_rate_kbps":1000000}'
|
7285
7481
|
scan --skip-types=office --log-level=info
|
7286
7482
|
show --base=test my_docx
|
@@ -7385,7 +7581,7 @@ Interesting `ascp` features are found in its arguments: (see `ascp` manual):
|
|
7385
7581
|
|
7386
7582
|
> **Note:** `ascli` takes transfer parameters exclusively as a [**transfer-spec**](#transfer-specification), with `ts` option.
|
7387
7583
|
>
|
7388
|
-
> **Note:**
|
7584
|
+
> **Note:** Usual native `ascp` arguments are available as standard [**transfer-spec**](#transfer-specification) parameters, but not special or advanced options.
|
7389
7585
|
>
|
7390
7586
|
> **Note:** Only for the [`direct`](#agent-direct) transfer agent (not others, like connect or node), native `ascp` arguments can be provided with parameter `ascp_args` of option `transfer_info` .
|
7391
7587
|
|