aspera-cli 4.24.2 → 4.25.0.pre
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 +1064 -758
- data/CONTRIBUTING.md +43 -100
- data/README.md +671 -419
- data/lib/aspera/api/aoc.rb +71 -43
- data/lib/aspera/api/cos_node.rb +3 -2
- data/lib/aspera/api/faspex.rb +6 -5
- data/lib/aspera/api/node.rb +10 -12
- data/lib/aspera/ascmd.rb +1 -2
- data/lib/aspera/ascp/installation.rb +53 -39
- data/lib/aspera/assert.rb +25 -3
- data/lib/aspera/cli/error.rb +4 -2
- data/lib/aspera/cli/extended_value.rb +84 -60
- data/lib/aspera/cli/formatter.rb +55 -22
- data/lib/aspera/cli/main.rb +21 -14
- data/lib/aspera/cli/manager.rb +348 -247
- data/lib/aspera/cli/plugins/alee.rb +3 -3
- data/lib/aspera/cli/plugins/aoc.rb +70 -14
- data/lib/aspera/cli/plugins/base.rb +57 -49
- data/lib/aspera/cli/plugins/config.rb +69 -84
- data/lib/aspera/cli/plugins/console.rb +13 -8
- data/lib/aspera/cli/plugins/cos.rb +1 -1
- data/lib/aspera/cli/plugins/faspex.rb +32 -26
- data/lib/aspera/cli/plugins/faspex5.rb +45 -43
- data/lib/aspera/cli/plugins/faspio.rb +5 -5
- data/lib/aspera/cli/plugins/httpgw.rb +1 -1
- data/lib/aspera/cli/plugins/node.rb +131 -120
- data/lib/aspera/cli/plugins/oauth.rb +1 -1
- data/lib/aspera/cli/plugins/orchestrator.rb +114 -32
- data/lib/aspera/cli/plugins/preview.rb +26 -46
- data/lib/aspera/cli/plugins/server.rb +6 -8
- data/lib/aspera/cli/plugins/shares.rb +27 -32
- data/lib/aspera/cli/sync_actions.rb +49 -38
- data/lib/aspera/cli/transfer_agent.rb +16 -34
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/cli/wizard.rb +8 -5
- data/lib/aspera/command_line_builder.rb +20 -17
- data/lib/aspera/coverage.rb +1 -1
- data/lib/aspera/environment.rb +41 -34
- data/lib/aspera/faspex_gw.rb +1 -1
- data/lib/aspera/keychain/factory.rb +1 -2
- data/lib/aspera/markdown.rb +31 -0
- data/lib/aspera/nagios.rb +6 -5
- data/lib/aspera/oauth/base.rb +17 -27
- data/lib/aspera/oauth/factory.rb +1 -1
- data/lib/aspera/oauth/url_json.rb +2 -1
- data/lib/aspera/preview/file_types.rb +23 -37
- data/lib/aspera/products/connect.rb +3 -3
- data/lib/aspera/rest.rb +51 -39
- data/lib/aspera/rest_error_analyzer.rb +4 -4
- data/lib/aspera/ssh.rb +5 -2
- data/lib/aspera/ssl.rb +41 -0
- data/lib/aspera/sync/conf.schema.yaml +182 -34
- data/lib/aspera/sync/database.rb +2 -1
- data/lib/aspera/sync/operations.rb +125 -69
- data/lib/aspera/transfer/parameters.rb +3 -4
- data/lib/aspera/transfer/spec.rb +2 -3
- data/lib/aspera/transfer/spec.schema.yaml +48 -18
- data/lib/aspera/transfer/spec_doc.rb +14 -14
- data/lib/aspera/uri_reader.rb +1 -1
- data/lib/transferd_pb.rb +2 -2
- data.tar.gz.sig +0 -0
- metadata +19 -6
- metadata.gz.sig +3 -2
data/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<!--
|
|
3
3
|
DO NOT EDIT: THIS FILE IS GENERATED, edit docs/README.erb.md, for details, read docs/README.md
|
|
4
4
|
PANDOC_META_BEGIN
|
|
5
|
-
subtitle: "ascli 4.
|
|
5
|
+
subtitle: "ascli 4.25.0.pre"
|
|
6
6
|
author: "Laurent MARTIN"
|
|
7
7
|
PANDOC_META_END
|
|
8
8
|
-->
|
|
@@ -42,9 +42,9 @@ Need to debug? I’ll show you what’s going on under the hood.
|
|
|
42
42
|
|
|
43
43
|
Think of me as Aspera’s command-line sidekick: quick, reliable, and a little no-nonsense. You bring the files; I’ll bring the horsepower."
|
|
44
44
|
|
|
45
|
-
Version : 4.
|
|
45
|
+
Version : 4.25.0.pre
|
|
46
46
|
|
|
47
|
-
Laurent/2016-
|
|
47
|
+
Laurent/2016-2026
|
|
48
48
|
|
|
49
49
|
The aspera-cli Ruby gem offers a powerful command-line interface (CLI, `ascli`) for IBM Aspera software, facilitating seamless interaction with Aspera APIs and enabling high-performance file transfers.
|
|
50
50
|
It also serves as an excellent resource for developers seeking to explore and understand the Aspera API ecosystem.
|
|
@@ -63,7 +63,7 @@ Minimum required Ruby version: >= 3.1.
|
|
|
63
63
|
|
|
64
64
|
Release notes: see [CHANGELOG.md](CHANGELOG.md)
|
|
65
65
|
|
|
66
|
-
A PDF version of this documentation is
|
|
66
|
+
A PDF version of this documentation is delivered with [releases](https://github.com/IBM/aspera-cli/releases).
|
|
67
67
|
|
|
68
68
|
### BUGS, FEATURES, CONTRIBUTION
|
|
69
69
|
|
|
@@ -135,7 +135,7 @@ ascli --version
|
|
|
135
135
|
```
|
|
136
136
|
|
|
137
137
|
```text
|
|
138
|
-
4.
|
|
138
|
+
4.25.0.pre
|
|
139
139
|
```
|
|
140
140
|
|
|
141
141
|
> [!NOTE]
|
|
@@ -338,14 +338,25 @@ Download the Ruby installer executable from <https://rubyinstaller.org/downloads
|
|
|
338
338
|
rubyinstaller-devkit-3.2.2-1-x64.exe /silent /currentuser /noicons /dir=C:\aspera-cli
|
|
339
339
|
```
|
|
340
340
|
|
|
341
|
+
#### Windows: Chocolatey
|
|
342
|
+
|
|
343
|
+
If you use [Chocolatey](https://chocolatey.org/), then install Ruby with:
|
|
344
|
+
|
|
345
|
+
```powershell
|
|
346
|
+
choco install ruby
|
|
347
|
+
```
|
|
348
|
+
|
|
341
349
|
#### macOS: `brew`
|
|
342
350
|
|
|
343
|
-
|
|
351
|
+
If you use [Homebrew](https://brew.sh/), then install Ruby with:
|
|
344
352
|
|
|
345
353
|
```shell
|
|
346
354
|
brew install ruby
|
|
347
355
|
```
|
|
348
356
|
|
|
357
|
+
> [!NOTE]
|
|
358
|
+
> This is the recommended method.
|
|
359
|
+
|
|
349
360
|
> [!WARNING]
|
|
350
361
|
> **macOS** comes with Ruby 2.6.
|
|
351
362
|
> 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).
|
|
@@ -364,8 +375,8 @@ export PATH="$(gem env gemdir)/bin:$PATH"
|
|
|
364
375
|
|
|
365
376
|
> [!NOTE]
|
|
366
377
|
> Two separate lines are needed because the second one depends on the first one.
|
|
367
|
-
> This is what is displayed at the end of the installation of the ruby tap,
|
|
368
|
-
> `brew info ruby`
|
|
378
|
+
> This is what is displayed at the end of the installation of the ruby tap,
|
|
379
|
+
> same as message from: `brew info ruby`
|
|
369
380
|
|
|
370
381
|
#### Linux: Package
|
|
371
382
|
|
|
@@ -391,10 +402,11 @@ If your Linux distribution provides a standard Ruby package, you can use it prov
|
|
|
391
402
|
dnf install -y make automake gcc gcc-c++ kernel-devel
|
|
392
403
|
```
|
|
393
404
|
|
|
394
|
-
- Enable the Ruby version you
|
|
405
|
+
- Enable the Ruby version you selected:
|
|
395
406
|
|
|
396
407
|
```shell
|
|
397
|
-
dnf module -y enable ruby:3.
|
|
408
|
+
dnf module -y enable ruby:3.2
|
|
409
|
+
|
|
398
410
|
dnf install -y ruby-devel
|
|
399
411
|
```
|
|
400
412
|
|
|
@@ -417,7 +429,7 @@ apt install -y ruby ruby-dev rubygems ruby-json
|
|
|
417
429
|
One can remove all installed gems, for example to start fresh:
|
|
418
430
|
|
|
419
431
|
```shell
|
|
420
|
-
|
|
432
|
+
ls $(gem env gemdir)/gems/|sed -e 's/-[^-]*$//'|sort -u|xargs gem uninstall -axI
|
|
421
433
|
```
|
|
422
434
|
|
|
423
435
|
#### Unix-like: RVM: Single user installation (not root)
|
|
@@ -575,23 +587,24 @@ Those are not installed as part of dependencies because they involve compilation
|
|
|
575
587
|
See [Gemfile](Gemfile):
|
|
576
588
|
|
|
577
589
|
| name | version | comment |
|
|
578
|
-
|
|
590
|
+
|----------------------|---------|-----------------------------------------------------|
|
|
579
591
|
| grpc | ~> 1.71 | (no jruby) for Aspera Transfer Daemon |
|
|
580
|
-
|
|
|
592
|
+
| marcel | ~> 1.1 | for preview |
|
|
581
593
|
| rmagick | ~> 6.1 | (no jruby) for terminal view |
|
|
582
594
|
| symmetric-encryption | ~> 4.6 | for encrypted hash file secrets |
|
|
583
595
|
| bigdecimal | ~> 3.1 | if RUBY_VERSION >= '3.4' for symmetric-encryption ? |
|
|
584
596
|
| sqlite3 | ~> 2.7 | (no jruby) for async DB |
|
|
585
597
|
| jdbc-sqlite3 | ~> 3.46 | (jruby) for async DB |
|
|
586
598
|
| sequel | ~> 5.96 | (jruby) for async DB |
|
|
587
|
-
| ed25519 | ~> 1.4 | (no jruby) for ed25519 |
|
|
588
|
-
| bcrypt_pbkdf | ~> 1.1 | (no jruby) for ed25519 |
|
|
599
|
+
| ed25519 | ~> 1.4 | (no jruby) for ed25519 and OpenSSH file format |
|
|
600
|
+
| bcrypt_pbkdf | ~> 1.1 | (no jruby) for ed25519 and OpenSSH file format |
|
|
601
|
+
| syslog | ~> 0.3 | (no jruby) for logger=syslog |
|
|
589
602
|
|
|
590
603
|
Install like this:
|
|
591
604
|
|
|
592
605
|
```shell
|
|
593
606
|
gem install grpc -v '~> 1.71'
|
|
594
|
-
gem install
|
|
607
|
+
gem install marcel -v '~> 1.1'
|
|
595
608
|
gem install rmagick -v '~> 6.1'
|
|
596
609
|
gem install symmetric-encryption -v '~> 4.6'
|
|
597
610
|
gem install bigdecimal -v '~> 3.1'
|
|
@@ -600,6 +613,7 @@ gem install jdbc-sqlite3 -v '~> 3.46'
|
|
|
600
613
|
gem install sequel -v '~> 5.96'
|
|
601
614
|
gem install ed25519 -v '~> 1.4'
|
|
602
615
|
gem install bcrypt_pbkdf -v '~> 1.1'
|
|
616
|
+
gem install syslog -v '~> 0.3'
|
|
603
617
|
```
|
|
604
618
|
|
|
605
619
|
### Ruby Gem: `aspera-cli`
|
|
@@ -607,7 +621,7 @@ gem install bcrypt_pbkdf -v '~> 1.1'
|
|
|
607
621
|
Once you have Ruby and rights to install gems, install the `aspera-cli` gem and its dependencies:
|
|
608
622
|
|
|
609
623
|
```shell
|
|
610
|
-
gem install aspera-cli
|
|
624
|
+
gem install aspera-cli --pre
|
|
611
625
|
```
|
|
612
626
|
|
|
613
627
|
To upgrade to the latest version:
|
|
@@ -667,12 +681,12 @@ To execute an Aspera transfer, only two additional files are required, both incl
|
|
|
667
681
|
|
|
668
682
|
- `aspera-license` - the license file (located in the same directory as `ascp` or in `../etc`)
|
|
669
683
|
|
|
670
|
-
These components can be installed either by installing the Aspera transfer software or by
|
|
684
|
+
These components can be installed either by installing the Aspera transfer software or by running the `ascli` command.
|
|
671
685
|
|
|
672
686
|
#### Installation of `ascp` through `transferd`
|
|
673
687
|
|
|
674
688
|
The easiest option to install `ascp` is through the use of the IBM Aspera Transfer Daemon (`transferd`).
|
|
675
|
-
Install using `ascli` for the current platform with:
|
|
689
|
+
Install it using `ascli` (for the current platform) with:
|
|
676
690
|
|
|
677
691
|
```shell
|
|
678
692
|
ascli config transferd install
|
|
@@ -738,6 +752,7 @@ If the embedded method is not used, the following packages are also suitable:
|
|
|
738
752
|
|
|
739
753
|
- IBM Aspera Connect Client (Free)
|
|
740
754
|
- IBM Aspera Desktop Client (Free)
|
|
755
|
+
- IBM Aspera for Desktop (Free)
|
|
741
756
|
- IBM Aspera High Speed Transfer Server (Licensed)
|
|
742
757
|
- IBM Aspera High Speed Transfer Endpoint (Licensed)
|
|
743
758
|
|
|
@@ -758,14 +773,15 @@ Refer to section: [Transfer Agents](#transfer-clients-agents)
|
|
|
758
773
|
|
|
759
774
|
#### Gem files and dependencies
|
|
760
775
|
|
|
761
|
-
|
|
776
|
+
Necessary gems can be packed in a `tar.gz` like this:
|
|
762
777
|
|
|
763
|
-
```
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
778
|
+
```bash
|
|
779
|
+
mkdir temp_folder
|
|
780
|
+
gem install aspera-cli:4.25.0.pre --no-document --install-dir temp_folder
|
|
781
|
+
find temp_folder
|
|
782
|
+
mv temp_folder/cache aspera-cli-4.25.0.pre-gems
|
|
783
|
+
rm -fr temp_folder
|
|
784
|
+
tar zcvf aspera-cli-4.25.0.pre-gems aspera-cli-4.25.0.pre-gems.tgz
|
|
769
785
|
```
|
|
770
786
|
|
|
771
787
|
#### Unix-like
|
|
@@ -845,7 +861,7 @@ ascli config ascp install --sdk-url=file:///sdk.zip
|
|
|
845
861
|
```
|
|
846
862
|
|
|
847
863
|
> [!NOTE]
|
|
848
|
-
>
|
|
864
|
+
> A beta version of a packaged installed is available.
|
|
849
865
|
|
|
850
866
|
### Container
|
|
851
867
|
|
|
@@ -888,7 +904,7 @@ That is simple, but there are limitations:
|
|
|
888
904
|
|
|
889
905
|
#### Container: Details
|
|
890
906
|
|
|
891
|
-
The container image is built from this [Dockerfile](container/Dockerfile.tmpl.erb).
|
|
907
|
+
The container image is built from this [Dockerfile](build/container/Dockerfile.tmpl.erb).
|
|
892
908
|
The entry point is `ascli` and the default command is `help`.
|
|
893
909
|
|
|
894
910
|
The container can be executed for individual commands like this: (add `ascli` commands and options at the end of the command line, e.g. `-v` to display the version)
|
|
@@ -910,7 +926,7 @@ ascli -v
|
|
|
910
926
|
```
|
|
911
927
|
|
|
912
928
|
```text
|
|
913
|
-
4.
|
|
929
|
+
4.25.0.pre
|
|
914
930
|
```
|
|
915
931
|
|
|
916
932
|
In order to keep persistency of configuration on the host, you should specify your user's configuration folder as a volume for the container.
|
|
@@ -1350,35 +1366,86 @@ Details can be found here:
|
|
|
1350
1366
|
|
|
1351
1367
|
- [quoting rules](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules)
|
|
1352
1368
|
|
|
1353
|
-
|
|
1369
|
+
##### PowserShell 5
|
|
1354
1370
|
|
|
1355
1371
|
- Check your powershell version:
|
|
1356
1372
|
|
|
1357
1373
|
```powershell
|
|
1358
|
-
|
|
1374
|
+
$psversiontable.psversion.Major
|
|
1375
|
+
```
|
|
1359
1376
|
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1377
|
+
```text
|
|
1378
|
+
5
|
|
1379
|
+
```
|
|
1380
|
+
|
|
1381
|
+
The following examples give the same result on Windows using PowerShell 5:
|
|
1382
|
+
|
|
1383
|
+
```text
|
|
1384
|
+
╭───────┬───────╮
|
|
1385
|
+
│ field │ value │
|
|
1386
|
+
╞═══════╪═══════╡
|
|
1387
|
+
│ x │ true │
|
|
1388
|
+
│ k │ v │
|
|
1389
|
+
╰───────┴───────╯
|
|
1363
1390
|
```
|
|
1364
1391
|
|
|
1365
1392
|
- Use PowerShell argument `--%` to place PowerShell in "stop-parsing" mode.
|
|
1366
1393
|
|
|
1367
1394
|
```powershell
|
|
1368
|
-
|
|
1395
|
+
ascli config echo --% @json:'{"k":"v","x":true}'
|
|
1369
1396
|
```
|
|
1370
1397
|
|
|
1371
1398
|
- Triple double quotes are replaced with a single double quote in normal mode:
|
|
1372
1399
|
|
|
1373
1400
|
```powershell
|
|
1374
|
-
|
|
1401
|
+
ascli config echo @json:'{"""k""":"""v""","""x""":true}'
|
|
1402
|
+
```
|
|
1403
|
+
|
|
1404
|
+
- To insert PowerShell variables in the JSON string, one can do:
|
|
1405
|
+
|
|
1406
|
+
```powershell
|
|
1407
|
+
$var="v"
|
|
1408
|
+
ascli conf echo $('@json:{"""k""":"""' + $var + '""","""x""":true}')
|
|
1409
|
+
```
|
|
1410
|
+
|
|
1411
|
+
##### PowserShell 7
|
|
1412
|
+
|
|
1413
|
+
- Check your powershell version:
|
|
1414
|
+
|
|
1415
|
+
```powershell
|
|
1416
|
+
$psversiontable.psversion.Major
|
|
1417
|
+
```
|
|
1418
|
+
|
|
1419
|
+
```text
|
|
1420
|
+
7
|
|
1421
|
+
```
|
|
1422
|
+
|
|
1423
|
+
The following examples give the same result on Windows using PowerShell 7:
|
|
1424
|
+
|
|
1425
|
+
- Use PowerShell argument `--%` to place PowerShell in "stop-parsing" mode.
|
|
1426
|
+
|
|
1427
|
+
```powershell
|
|
1428
|
+
ascli config echo --% @json:{"k":"v","x":true}
|
|
1429
|
+
```
|
|
1430
|
+
|
|
1431
|
+
- Single quote protects double quote in normal mode:
|
|
1432
|
+
|
|
1433
|
+
```powershell
|
|
1434
|
+
ascli config echo @json:'{"k":"v","x":true}'
|
|
1375
1435
|
```
|
|
1376
1436
|
|
|
1377
1437
|
- To insert PowerShell variables in the JSON string, one can do:
|
|
1378
1438
|
|
|
1379
1439
|
```powershell
|
|
1380
|
-
$
|
|
1381
|
-
ascli conf echo $('@json:{""
|
|
1440
|
+
$var="v"
|
|
1441
|
+
ascli conf echo $('@json:{"k":"' + $var + '","x":true}')
|
|
1442
|
+
```
|
|
1443
|
+
|
|
1444
|
+
- Use PowerShell structure and then convert to JSON string:
|
|
1445
|
+
|
|
1446
|
+
```powershell
|
|
1447
|
+
$var="v"
|
|
1448
|
+
ascli conf echo "@json:$(@{ k = $var; x = $true } | ConvertTo-Json -Compress)"
|
|
1382
1449
|
```
|
|
1383
1450
|
|
|
1384
1451
|
#### Extended Values (JSON, Ruby, ...)
|
|
@@ -1603,7 +1670,7 @@ The value of **Options** and **Positional Arguments** is evaluated with the [Ext
|
|
|
1603
1670
|
- **Commands**, typically at the beginning
|
|
1604
1671
|
- **Command Parameters**, mandatory arguments, e.g. creation data or entity identifier
|
|
1605
1672
|
|
|
1606
|
-
When options are removed from the command line, the remaining arguments are typically **Positional Arguments** with a pre-defined order.
|
|
1673
|
+
When options are removed from the command line, the remaining arguments are typically **Positional Arguments** with a significant, pre-defined order.
|
|
1607
1674
|
|
|
1608
1675
|
**Commands** are typically entity types (e.g. `users`) or verbs (e.g. `create`) to act on those entities.
|
|
1609
1676
|
Its value is a `String` that must belong to a fixed list of values in a given context.
|
|
@@ -1620,14 +1687,13 @@ ascli config ascp info
|
|
|
1620
1687
|
- `info` is the third level command: action to be performed
|
|
1621
1688
|
|
|
1622
1689
|
Typically, **Commands** are located at the **beginning** of the command line.
|
|
1623
|
-
Order is significant.
|
|
1624
1690
|
The provided command must match one of the supported commands in the given context.
|
|
1625
1691
|
If wrong, or no command is provided when expected, an error message is displayed and the list of supported commands is displayed.
|
|
1626
1692
|
|
|
1627
1693
|
Standard **Commands** are: `create`, `show`, `list`, `modify`, `delete`.
|
|
1628
1694
|
Some entities also support additional commands.
|
|
1629
1695
|
When those additional commands are related to an entity also reachable in another context, then those commands are located below command `do`.
|
|
1630
|
-
For example sub-commands appear after entity selection (identifier), e.g. `ascli aoc admin node do
|
|
1696
|
+
For example sub-commands appear after entity selection (identifier), e.g. `ascli aoc admin node do <node_id> browse /`: `browse` is a sub-command of `node`.
|
|
1631
1697
|
|
|
1632
1698
|
**Command Parameters** are typically mandatory values for a command, such as entity creation data or entity identifier.
|
|
1633
1699
|
|
|
@@ -1642,6 +1708,29 @@ If a **Command Parameter** begins with `-`, then either use the `@val:` syntax (
|
|
|
1642
1708
|
|
|
1643
1709
|
A few **Command Parameters** are optional, they are always located at the end of the command line.
|
|
1644
1710
|
|
|
1711
|
+
A special Extended Value `@:` has the following meaning:
|
|
1712
|
+
|
|
1713
|
+
- Take all remaining positional arguments
|
|
1714
|
+
- Expect each of them to have the format: `<path>=<value>`
|
|
1715
|
+
- `<path>` designates a path in a complex structure such as Hash or Array.
|
|
1716
|
+
`.` is the path separator.
|
|
1717
|
+
Each segment separated by a dot represents a key in a nested structure.
|
|
1718
|
+
Integer index denote Array, and other denote Hash index.
|
|
1719
|
+
- `ascli` tries to convert `<value>` to the simplest type (bool, int, float, string).
|
|
1720
|
+
If a specific type is required, it can be specified using the `@json:` or `@ruby:` syntax.
|
|
1721
|
+
For example, `--a.b.c=1` is equivalent to `--a=@json'{"b":{"c":1}}'`.
|
|
1722
|
+
This allows specifying nested keys directly on the command line using a concise **dot-separated** syntax.
|
|
1723
|
+
|
|
1724
|
+
Example:
|
|
1725
|
+
|
|
1726
|
+
```bash
|
|
1727
|
+
ascli conf echo @: a.b=1 a.c=2 a.d.0=hello a.d.1=world --format=json
|
|
1728
|
+
```
|
|
1729
|
+
|
|
1730
|
+
```json
|
|
1731
|
+
{"a":{"b":1,"c":2,"d":["hello","world"]}}
|
|
1732
|
+
```
|
|
1733
|
+
|
|
1645
1734
|
#### Options
|
|
1646
1735
|
|
|
1647
1736
|
Command-line options, such as `--log-level=debug`, follow these conventions:
|
|
@@ -1673,13 +1762,17 @@ Exceptions and Special Cases:
|
|
|
1673
1762
|
- **Option Terminator**:
|
|
1674
1763
|
The special option `--` ends option parsing.
|
|
1675
1764
|
All subsequent arguments, including those starting with `-`, are treated as positional arguments.
|
|
1676
|
-
- **Dot Notation for
|
|
1765
|
+
- **Dot Notation for Hash and Array**:
|
|
1677
1766
|
If an option name contains a dot (`.`), it is interpreted as a `Hash`.
|
|
1678
1767
|
Each segment separated by a dot represents a key in a nested structure.
|
|
1679
1768
|
`ascli` tries to convert the value to the simplest type (bool, int, float, string).
|
|
1680
1769
|
If a specific type is required, it can be specified using the `@json:` or `@ruby:` syntax.
|
|
1681
1770
|
For example, `--a.b.c=1` is equivalent to `--a=@json'{"b":{"c":1}}'`.
|
|
1682
1771
|
This allows specifying nested keys directly on the command line using a concise **dot-separated** syntax.
|
|
1772
|
+
- **Cummulative Hashes**:
|
|
1773
|
+
When an option of type `Hash` is set, the value is deep-merged to an existing or default value.
|
|
1774
|
+
Setting to `@none:` is equivalent to setting to `@json:{}`, i.e. an empty `Hash`.
|
|
1775
|
+
This can be used to start from an empty value, and not used existing default value.
|
|
1683
1776
|
|
|
1684
1777
|
Example:
|
|
1685
1778
|
|
|
@@ -2085,36 +2178,40 @@ The following decoders are supported:
|
|
|
2085
2178
|
|
|
2086
2179
|
| Decoder | Parameter| Returns | Description |
|
|
2087
2180
|
|----------|----------|----------|------------------------------------------------------------------------------------------|
|
|
2088
|
-
| `base64` | `String` | `String` | Decode a base64 encoded string |
|
|
2089
|
-
| `csvt` | `String` | `Array` | Decode a titled CSV value |
|
|
2090
|
-
| `env` | `String` | `String` | Read from a named env var name
|
|
2091
|
-
| `file` | `String` | `String` | Read value from specified file (prefix `~/` is replaced with the users home folder)
|
|
2092
|
-
| `json` | `String` | Any | Decode JSON values
|
|
2093
|
-
| `lines` | `String` | `Array` | Split a string in multiple lines and return an
|
|
2094
|
-
| `list` | `String` | `Array` | Split a string in multiple items taking first character as separator and return an
|
|
2095
|
-
| `none` | None | Nil | A null value |
|
|
2096
|
-
| `path` | `String` | `String` | Performs path expansion on specified path (prefix `~/` is replaced with the
|
|
2181
|
+
| `base64` | `String` | `String` | Decode a base64 encoded string. |
|
|
2182
|
+
| `csvt` | `String` | `Array` | Decode a titled CSV value. |
|
|
2183
|
+
| `env` | `String` | `String` | Read from a named env var name. e.g. `--password=@env:MYPASSVAR` |
|
|
2184
|
+
| `file` | `String` | `String` | Read value from specified file (prefix `~/` is replaced with the users home folder). e.g. `--key=@file:~/.ssh/mykey` |
|
|
2185
|
+
| `json` | `String` | Any | Decode JSON values. Convenient to provide complex structures. |
|
|
2186
|
+
| `lines` | `String` | `Array` | Split a string in multiple lines and return an `Array`. |
|
|
2187
|
+
| `list` | `String` | `Array` | Split a string in multiple items taking first character as separator and return an `Array`. |
|
|
2188
|
+
| `none` | None | Nil | A `null` value. |
|
|
2189
|
+
| `path` | `String` | `String` | Performs path expansion on specified path (prefix `~/` is replaced with the user's home folder). e.g. `--config-file=@path:~/sample_config.yml` |
|
|
2097
2190
|
| `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]` |
|
|
2098
|
-
| `extend` | `String` | `String` | Evaluates embedded extended value syntax in string |
|
|
2191
|
+
| `extend` | `String` | `String` | Evaluates embedded extended value syntax in string. |
|
|
2099
2192
|
| `re` | `String` | `Regexp` | Ruby Regular Expression (short for `@ruby:/.../`) |
|
|
2100
|
-
| `ruby` | `String` | Any | Execute specified Ruby code |
|
|
2101
|
-
| `secret` | None | `String` | Ask password interactively (hides input) |
|
|
2102
|
-
| `stdin` | None | `String` | Read from stdin in text mode (no value on right) |
|
|
2103
|
-
| `stdbin` | None | `String` | Read from stdin in binary mode (no value on right) |
|
|
2104
|
-
| `uri` | `String` | `String` | Read value from specified URL
|
|
2193
|
+
| `ruby` | `String` | Any | Execute specified Ruby code. |
|
|
2194
|
+
| `secret` | None | `String` | Ask password interactively (hides input). |
|
|
2195
|
+
| `stdin` | None | `String` | Read from stdin in text mode (no value on right). |
|
|
2196
|
+
| `stdbin` | None | `String` | Read from stdin in binary mode (no value on right). |
|
|
2197
|
+
| `uri` | `String` | `String` | Read value from specified URL. e.g. `--fpac=@uri:http://serv/f.pac` |
|
|
2105
2198
|
| `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`. |
|
|
2106
|
-
| `yaml` | `String` | Any | Decode YAML |
|
|
2107
|
-
| `zlib` | `String` | `String` | Decompress data using zlib |
|
|
2199
|
+
| `yaml` | `String` | Any | Decode YAML. |
|
|
2200
|
+
| `zlib` | `String` | `String` | Decompress data using zlib. |
|
|
2201
|
+
| `p` | None | Any | Parses remaining arguments as `Hash` or `Array`. |
|
|
2108
2202
|
|
|
2109
2203
|
> [!NOTE]
|
|
2110
2204
|
> A few commands support a value of type `Proc` (lambda expression).
|
|
2111
|
-
> For example, the **Extended Value** `@ruby:'->(i){i["attr"]}'` is a lambda expression that returns the value for key `attr` of the `Hash` `i`.
|
|
2205
|
+
> For example, the **Extended Value** `@ruby:'->(i){i["attr"]}'` is a lambda expression that returns the value for key `attr` of the `Hash` parameter named `i`.
|
|
2112
2206
|
|
|
2113
2207
|
To display the result of an extended value, use the `config echo` command.
|
|
2114
2208
|
|
|
2115
2209
|
The `extend` decoder is useful to evaluate embedded extended value syntax in a string.
|
|
2116
2210
|
It expects a `@` to close the embedded extended value syntax.
|
|
2117
2211
|
|
|
2212
|
+
Option `parser` allows definition of a default parser when the positinal parameter or option expects a `Hash` or `Array`.
|
|
2213
|
+
For example, with `--parser=json`, the parameter `{}` will be parsed as an empty JSON Hash, even without prefix `@json:`.
|
|
2214
|
+
|
|
2118
2215
|
Example: Create a `Hash` value with the convenient `@json:` decoder:
|
|
2119
2216
|
|
|
2120
2217
|
```shell
|
|
@@ -2191,15 +2288,17 @@ EOF
|
|
|
2191
2288
|
{"key1":"value1","key2":["item1","item2"],"key3":{"key4":"value4","key5":"value5"}}
|
|
2192
2289
|
```
|
|
2193
2290
|
|
|
2194
|
-
###
|
|
2291
|
+
### Main, configuration and Persistency Folder
|
|
2195
2292
|
|
|
2196
|
-
`ascli` configuration and persistency files (token cache, file lists, persistency files)
|
|
2293
|
+
`ascli` looks for configuration and persistency files (token cache, file lists, persistency files) in the folder specified using option `home`.
|
|
2294
|
+
The default value is `[User's home folder]/.aspera/ascli`.
|
|
2197
2295
|
|
|
2198
2296
|
> [!NOTE]
|
|
2199
|
-
> `[User's home folder]` is
|
|
2200
|
-
>
|
|
2201
|
-
>
|
|
2202
|
-
>
|
|
2297
|
+
> The `[User's home folder]` is determined using Ruby’s `Dir.home` method.
|
|
2298
|
+
> Primary source: The HOME environment variable.
|
|
2299
|
+
> On Windows: Ruby also checks `%HOMEDRIVE%%HOMEPATH%` and `%USERPROFILE%` (via `rb_w32_home_dir`).
|
|
2300
|
+
> Additionally, `ascli` sets the `%HOME%` environment variable to the value of `%USERPROFILE%` if it exists and is valid.
|
|
2301
|
+
> Therefore, on Windows, `%USERPROFILE%` is preferred because it is generally more reliable than `%HOMEDRIVE%%HOMEPATH%`.
|
|
2203
2302
|
|
|
2204
2303
|
The configuration folder can be displayed using :
|
|
2205
2304
|
|
|
@@ -2212,9 +2311,11 @@ ascli config folder
|
|
|
2212
2311
|
```
|
|
2213
2312
|
|
|
2214
2313
|
> [!NOTE]
|
|
2215
|
-
> This is equivalent to
|
|
2314
|
+
> This is equivalent to display the value of the `home` option.
|
|
2216
2315
|
|
|
2217
|
-
|
|
2316
|
+
```shell
|
|
2317
|
+
ascli --show-config --fields=home
|
|
2318
|
+
```
|
|
2218
2319
|
|
|
2219
2320
|
Example (Windows):
|
|
2220
2321
|
|
|
@@ -2226,11 +2327,28 @@ ascli config folder
|
|
|
2226
2327
|
C:\Users\Kenji\.aspera\ascli
|
|
2227
2328
|
```
|
|
2228
2329
|
|
|
2229
|
-
When OAuth is used (AoC, Faspex5) `ascli` keeps a cache of generated bearer tokens in folder `persist_store` in configuration folder by default.
|
|
2330
|
+
When OAuth is used (AoC, Faspex5) `ascli` keeps a cache of generated bearer tokens in folder `persist_store` located in the configuration folder by default.
|
|
2230
2331
|
Option `cache_tokens` (**yes**/no) allows controlling if OAuth tokens are cached on file system, or generated for each request.
|
|
2231
2332
|
The command `config tokens flush` clears that cache.
|
|
2232
2333
|
Tokens are kept on disk for a maximum of 30 minutes (`TOKEN_CACHE_EXPIRY_SEC`) and garbage collected after that.
|
|
2233
|
-
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.
|
|
2334
|
+
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.
|
|
2335
|
+
|
|
2336
|
+
### Configuration file
|
|
2337
|
+
|
|
2338
|
+
On the first execution of `ascli`, an empty configuration file is created in the configuration folder (`ascli config folder`).
|
|
2339
|
+
There is no mandatory information required in this file.
|
|
2340
|
+
The use of it is optional as any option can be provided on the command line.
|
|
2341
|
+
|
|
2342
|
+
Although the file is a standard `YAML` file, `ascli` provides commands to read and modify it using the `config` command.
|
|
2343
|
+
|
|
2344
|
+
All options for `ascli` can be set on command line, or by env vars, or using [Option Preset](#option-preset) in the configuration file.
|
|
2345
|
+
|
|
2346
|
+
A configuration file provides a way to define default values, especially for authentication options, thus avoiding to always having to specify those options on the command line.
|
|
2347
|
+
|
|
2348
|
+
The default configuration file is: `$HOME/.aspera/ascli/config.yaml` (this can be overridden with option `--config-file=path` or its env var).
|
|
2349
|
+
|
|
2350
|
+
The configuration file is a catalog of named lists of options, called: [Option Preset](#option-preset).
|
|
2351
|
+
Then, instead of specifying some common options on the command line (e.g. address, credentials), it is possible to invoke the ones of an [Option Preset](#option-preset) (e.g. `mypreset`) using the option `preset`: `--preset=mypreset` or its shortcut: `-Pmypreset`.
|
|
2234
2352
|
|
|
2235
2353
|
### Invalid Filename Characters
|
|
2236
2354
|
|
|
@@ -2253,23 +2371,6 @@ Temporary files are deleted at the end of execution unless option: `clean_temp`
|
|
|
2253
2371
|
By default (`@sys`), the temporary folder is the system's temporary folder for the current user (Ruby `Etc.systmpdir`).
|
|
2254
2372
|
A special value of `@env` will set the folder to Ruby `Dir.tmpdir` which uses regular env var to set the temp folder.
|
|
2255
2373
|
|
|
2256
|
-
### Configuration file
|
|
2257
|
-
|
|
2258
|
-
On the first execution of `ascli`, an empty configuration file is created in the configuration folder (`ascli config folder`).
|
|
2259
|
-
There is no mandatory information required in this file.
|
|
2260
|
-
The use of it is optional as any option can be provided on the command line.
|
|
2261
|
-
|
|
2262
|
-
Although the file is a standard `YAML` file, `ascli` provides commands to read and modify it using the `config` command.
|
|
2263
|
-
|
|
2264
|
-
All options for `ascli` can be set on command line, or by env vars, or using [Option Preset](#option-preset) in the configuration file.
|
|
2265
|
-
|
|
2266
|
-
A configuration file provides a way to define default values, especially for authentication options, thus avoiding to always having to specify those options on the command line.
|
|
2267
|
-
|
|
2268
|
-
The default configuration file is: `$HOME/.aspera/ascli/config.yaml` (this can be overridden with option `--config-file=path` or its env var).
|
|
2269
|
-
|
|
2270
|
-
The configuration file is a catalog of named lists of options, called: [Option Preset](#option-preset).
|
|
2271
|
-
Then, instead of specifying some common options on the command line (e.g. address, credentials), it is possible to invoke the ones of an [Option Preset](#option-preset) (e.g. `mypreset`) using the option `preset`: `--preset=mypreset` or its shortcut: `-Pmypreset`.
|
|
2272
|
-
|
|
2273
2374
|
#### Option Preset
|
|
2274
2375
|
|
|
2275
2376
|
An [Option Preset](#option-preset) is a collection of options and their associated values in a named section in the configuration file.
|
|
@@ -2367,7 +2468,7 @@ ascli config preset get default _plugin_name_
|
|
|
2367
2468
|
"_default_preset_for_plugin_"
|
|
2368
2469
|
```
|
|
2369
2470
|
|
|
2370
|
-
|
|
2471
|
+
### Plugin: `config`: Configuration
|
|
2371
2472
|
|
|
2372
2473
|
Plugin `config` provides general commands for `ascli`:
|
|
2373
2474
|
|
|
@@ -2413,7 +2514,7 @@ ascli config preset set GLOBAL version_check_days 0
|
|
|
2413
2514
|
ascli config preset set default config my_common_defaults
|
|
2414
2515
|
```
|
|
2415
2516
|
|
|
2416
|
-
|
|
2517
|
+
#### Tested commands for `config`
|
|
2417
2518
|
|
|
2418
2519
|
> [!NOTE]
|
|
2419
2520
|
> Add `ascli config` in front of the following commands:
|
|
@@ -2436,6 +2537,7 @@ ascp show
|
|
|
2436
2537
|
ascp spec
|
|
2437
2538
|
check_update
|
|
2438
2539
|
coffee
|
|
2540
|
+
coffee --log-level=trace2 --log-format=caller
|
|
2439
2541
|
coffee --ui=text
|
|
2440
2542
|
coffee --ui=text --image=@json:'{"text":true,"double":false}'
|
|
2441
2543
|
coffee --ui=text --image=@json:'{"text":true}'
|
|
@@ -2464,6 +2566,7 @@ echo @uri:/etc/hosts
|
|
|
2464
2566
|
echo @uri:file:/etc/hosts
|
|
2465
2567
|
echo @uri:http://ifconfig.me
|
|
2466
2568
|
echo @uri:https://ifconfig.me
|
|
2569
|
+
echo @uri:https://ifconfig.me/ip --cert-stores=@ruby:[OpenSSL::X509::DEFAULT_CERT_DIR,OpenSSL::X509::DEFAULT_CERT_FILE] --http-options.ssl_options=@list:,CIPHER_SERVER_PREFERENCE,-NETSCAPE_CA_DN_BUG --insecure=yes
|
|
2467
2570
|
echo @vault:my_preset.password
|
|
2468
2571
|
echo @zlib:@stdin:
|
|
2469
2572
|
echo hello
|
|
@@ -2482,7 +2585,7 @@ genkey my_key 4096
|
|
|
2482
2585
|
image https://eudemo.asperademo.com/wallpaper.jpg
|
|
2483
2586
|
initdemo
|
|
2484
2587
|
open
|
|
2485
|
-
plugins create my_command
|
|
2588
|
+
plugins create my_command .
|
|
2486
2589
|
plugins list
|
|
2487
2590
|
preset delete conf_name
|
|
2488
2591
|
preset initialize conf_name @json:'{"p1":"v1","p2":"v2"}'
|
|
@@ -2503,7 +2606,6 @@ smtp_settings
|
|
|
2503
2606
|
sync spec
|
|
2504
2607
|
tokens flush
|
|
2505
2608
|
tokens list
|
|
2506
|
-
tokens show foobar
|
|
2507
2609
|
transferd install
|
|
2508
2610
|
transferd list
|
|
2509
2611
|
vault create @json:'{"label":"my_label","password":"my_password_here","description":"my secret"}'
|
|
@@ -2523,7 +2625,7 @@ wizard my_org aoc --key-path=my_private_key --username=my_user_email --use-gener
|
|
|
2523
2625
|
wizard my_org aoc mypreset --key-path=my_private_key --username=my_user_email
|
|
2524
2626
|
```
|
|
2525
2627
|
|
|
2526
|
-
#### Format of file
|
|
2628
|
+
#### Format of configuration file
|
|
2527
2629
|
|
|
2528
2630
|
The configuration file is a `Hash` in a YAML file.
|
|
2529
2631
|
Example:
|
|
@@ -2858,7 +2960,16 @@ It consists in using a pair of associated keys: a private key and a public key.
|
|
|
2858
2960
|
The same pair can be used for multiple applications.
|
|
2859
2961
|
The file containing the private key (key pair) can optionally be protected by a passphrase.
|
|
2860
2962
|
If the key is protected by a passphrase, then it will be prompted when used.
|
|
2861
|
-
|
|
2963
|
+
Some plugins support option `passphrase`.
|
|
2964
|
+
|
|
2965
|
+
By default, `ascli` does not support `ed25519` type, nor OpenSSH encoded keys.
|
|
2966
|
+
See section: [Private key type ed25519](#private-key-type-ed25519-not-supported-by-default).
|
|
2967
|
+
It requires PEM encoded keys.
|
|
2968
|
+
To support `ed25519` and OpenSSH format (default on modern Linux), install those gems:
|
|
2969
|
+
|
|
2970
|
+
```shell
|
|
2971
|
+
gem install ed25519 bcrypt_pbkdf
|
|
2972
|
+
```
|
|
2862
2973
|
|
|
2863
2974
|
The following sample commands use the shell variable `KEY_PAIR_PATH`.
|
|
2864
2975
|
Set it to the desired safe location of the private key.
|
|
@@ -2879,6 +2990,7 @@ If another format is used, such as `DER`, it can be converted to `PEM`, e.g. usi
|
|
|
2879
2990
|
|
|
2880
2991
|
The generated key is of type `RSA`, by default: **4096** bit.
|
|
2881
2992
|
For convenience, the public key is also extracted with extension `.pub`.
|
|
2993
|
+
Files are PEM encoded.
|
|
2882
2994
|
The key is not passphrase protected.
|
|
2883
2995
|
|
|
2884
2996
|
```shell
|
|
@@ -3000,38 +3112,47 @@ It is also possible to force the graphical mode with option `--ui` :
|
|
|
3000
3112
|
### Logging, Debugging
|
|
3001
3113
|
|
|
3002
3114
|
The gem is equipped with traces, mainly for debugging and learning APIs.
|
|
3115
|
+
The following options control logging:
|
|
3116
|
+
|
|
3117
|
+
| Option | Values | Description |
|
|
3118
|
+
|---------------|--------|-------------------------------------------------------------------------|
|
|
3119
|
+
| `logger` | `stdout`<br/>`stderr`<br/>`syslog` | Type of output.<br/>Default: `stderr` |
|
|
3120
|
+
| `log_level` | `trace2`<br/>`trace1`<br/>`debug`<br/>`info`<br/>`warn`<br/>`error` | Minimum level displayed.<br/>Default: `warn` |
|
|
3121
|
+
| `log_secrets` | `yes`<br/>`no` | Show or hide secrets in logs.<br/>Default: `no` (Hide) |
|
|
3122
|
+
| `log_format` | `Proc`<br/>`String` | The name of a formatter or a lambda function that formats the log (see below).<br/>Default: `default`<br/>Alternative: `standard` |
|
|
3123
|
+
|
|
3124
|
+
Option `logger` defines the destination of logs.
|
|
3125
|
+
|
|
3126
|
+
#### `log_level` and `log_secrets`
|
|
3003
3127
|
|
|
3004
3128
|
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)).
|
|
3005
3129
|
|
|
3006
3130
|
> [!NOTE]
|
|
3007
|
-
> When using the `direct` agent (`ascp`), additional transfer logs can be activated using `ascp` options and `ascp_args`, see [`direct`](#agent-direct).
|
|
3131
|
+
> When using the `direct` agent (`ascp`), additional transfer logs from `ascp` can be activated using `ascp` options and `ascp_args`, see [`direct`](#agent-direct).
|
|
3008
3132
|
|
|
3009
3133
|
By default, passwords and secrets are redacted from logs.
|
|
3010
3134
|
Set option `log_secrets` to `yes` to include secrets in logs.
|
|
3011
3135
|
|
|
3012
|
-
|
|
3013
|
-
|---------------|--------|-------------------------------------------------------------------------|
|
|
3014
|
-
| `logger` | `stdout`<br/>`stderr`<br/>`syslog` | Type of output.<br/>Default: `stderr` |
|
|
3015
|
-
| `log_level` | `trace2`<br/>`trace1`<br/>`debug`<br/>`info`<br/>`warn`<br/>`error` | Minimum level displayed.<br/>Default: `warn` |
|
|
3016
|
-
| `log_secrets` | `yes`<br/>`no` | Show or hide secrets in logs.<br/>Default: `no` (Hide) |
|
|
3017
|
-
| `log_format` | `Proc`<br/>`String` | The name of a formatter or a lambda function that formats the log (see below).<br/>Default: `default`<br/>Alternative: `standard` |
|
|
3136
|
+
#### `log_format`
|
|
3018
3137
|
|
|
3019
|
-
Option `log_format`
|
|
3020
|
-
|
|
3138
|
+
Option `log_format` support a few pre-defined formatters or a custom one using `@ruby:`.
|
|
3139
|
+
A customer formatter is a lambda that takes 4 arguments, see: [Ruby Formatter](https://github.com/ruby/logger/blob/master/lib/logger/formatter.rb) : `severity`, `time`, `progname`, `msg`.
|
|
3021
3140
|
The default formatter is:
|
|
3022
3141
|
|
|
3023
3142
|
```ruby
|
|
3024
|
-
->(s, _d, _p, m){"#{s[0..2]} #{m}\n"}
|
|
3143
|
+
->(s, _d, _p, m){"#{s[0..2]}#{s[-1]} #{m}\n"}
|
|
3025
3144
|
```
|
|
3026
3145
|
|
|
3027
3146
|
Available formatters for `log_format`:
|
|
3028
3147
|
|
|
3029
|
-
| Name | Description
|
|
3030
|
-
|
|
3031
|
-
| `default` | Default formatter.
|
|
3032
|
-
| `standard`| Standard Ruby formatter.
|
|
3148
|
+
| Name | Description |
|
|
3149
|
+
|-----------|----------------------------------------------------------------------------------|
|
|
3150
|
+
| `default` | Default formatter: Colorized 4 level level followed by message on the same line. |
|
|
3151
|
+
| `standard`| Standard Ruby formatter. |
|
|
3152
|
+
| `caller` | Colorized 4 level level followed by caller, and then on next line: message. |
|
|
3153
|
+
| `Proc` | Custom lambda. |
|
|
3033
3154
|
|
|
3034
|
-
|
|
3155
|
+
#### Logging examples
|
|
3035
3156
|
|
|
3036
3157
|
- Display debugging log on `stdout`:
|
|
3037
3158
|
|
|
@@ -3229,11 +3350,6 @@ This is the reason why it is advised to install the Aspera Transfer Daemon durin
|
|
|
3229
3350
|
|
|
3230
3351
|
By default, `ascli` uses the `ascp` binary found in **well known locations**, i.e. typical Aspera product installation paths.
|
|
3231
3352
|
|
|
3232
|
-
The way to specify the location of `ascp` is to use either options:
|
|
3233
|
-
|
|
3234
|
-
- `ascp_path`
|
|
3235
|
-
- `use_product`
|
|
3236
|
-
|
|
3237
3353
|
The `config` plugin allows finding and specifying the location of `ascp`.
|
|
3238
3354
|
It provides the following commands for `ascp` sub-command:
|
|
3239
3355
|
|
|
@@ -3242,32 +3358,11 @@ It provides the following commands for `ascp` sub-command:
|
|
|
3242
3358
|
- `products` : list Aspera transfer products available locally
|
|
3243
3359
|
- `connect` : list and download connect client versions available on internet
|
|
3244
3360
|
|
|
3245
|
-
#### Show path of currently used `ascp`
|
|
3246
|
-
|
|
3247
|
-
```shell
|
|
3248
|
-
ascli config ascp show
|
|
3249
|
-
```
|
|
3250
|
-
|
|
3251
|
-
```text
|
|
3252
|
-
/Users/laurent/.aspera/ascli/sdk/ascp
|
|
3253
|
-
```
|
|
3254
|
-
|
|
3255
|
-
```shell
|
|
3256
|
-
ascli config ascp info
|
|
3257
|
-
```
|
|
3258
|
-
|
|
3259
|
-
```text
|
|
3260
|
-
╭─────────┬──────────────────────────────────────────────────╮
|
|
3261
|
-
│ field │ value │
|
|
3262
|
-
╞═════════╪══════════════════════════════════════════════════╡
|
|
3263
|
-
│ ascp │ /Users/john/.aspera/sdk/ascp │
|
|
3264
|
-
...
|
|
3265
|
-
╰─────────┴──────────────────────────────────────────────────╯
|
|
3266
|
-
```
|
|
3267
|
-
|
|
3268
3361
|
#### Selection of `ascp` location for [`direct`](#agent-direct) agent
|
|
3269
3362
|
|
|
3270
|
-
|
|
3363
|
+
Option: `ascp_path` is used to specify the location of `ascp`.
|
|
3364
|
+
The default value is: `product:FIRST`.
|
|
3365
|
+
By default, `ascli` uses any found local product with `ascp`, including Transfer Daemon (SDK).
|
|
3271
3366
|
|
|
3272
3367
|
To override and use an alternate `ascp` path use option `ascp_path` (`--ascp-path=`)
|
|
3273
3368
|
|
|
@@ -3299,10 +3394,9 @@ Saved to default global preset global_common_defaults
|
|
|
3299
3394
|
|
|
3300
3395
|
If the path has spaces, read section: [Shell and Command line parsing](#command-line-parsing-special-characters).
|
|
3301
3396
|
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
this is equivalent to using option: `--use-product=FIRST`.
|
|
3397
|
+
A special value `product:<product name>` can be used for option `ascp_path`.
|
|
3398
|
+
It specifies to use `ascp` from the given product name.
|
|
3399
|
+
A special valuefor product name is `FIRST`, which means: use the first found.
|
|
3306
3400
|
|
|
3307
3401
|
Locally installed Aspera products can be listed with:
|
|
3308
3402
|
|
|
@@ -3321,13 +3415,42 @@ ascli config ascp products list
|
|
|
3321
3415
|
+---------------------------------------+----------------------------------------+
|
|
3322
3416
|
```
|
|
3323
3417
|
|
|
3324
|
-
Using the option `use_product` finds the `ascp` binary of the selected product.
|
|
3325
|
-
|
|
3326
3418
|
To permanently use the `ascp` of a product:
|
|
3327
3419
|
|
|
3328
3420
|
```shell
|
|
3329
|
-
ascli config ascp products use 'Aspera Connect'
|
|
3330
|
-
|
|
3421
|
+
ascli config ascp products use 'IBM Aspera Connect'
|
|
3422
|
+
Updated: default: config <- global_common_defaults
|
|
3423
|
+
Updated: global_common_defaults: ascp_path <- product:IBM Aspera Connect
|
|
3424
|
+
Saving config file.
|
|
3425
|
+
```
|
|
3426
|
+
|
|
3427
|
+
It is the same as executing:
|
|
3428
|
+
|
|
3429
|
+
```shell
|
|
3430
|
+
ascli config preset set GLOBAL ascp_path 'product:IBM Aspera Connect'
|
|
3431
|
+
```
|
|
3432
|
+
|
|
3433
|
+
To show the path of currently used `ascp`:
|
|
3434
|
+
|
|
3435
|
+
```shell
|
|
3436
|
+
ascli config ascp show
|
|
3437
|
+
```
|
|
3438
|
+
|
|
3439
|
+
```text
|
|
3440
|
+
/Users/laurent/.aspera/ascli/sdk/ascp
|
|
3441
|
+
```
|
|
3442
|
+
|
|
3443
|
+
```shell
|
|
3444
|
+
ascli config ascp info
|
|
3445
|
+
```
|
|
3446
|
+
|
|
3447
|
+
```text
|
|
3448
|
+
╭─────────┬──────────────────────────────────────────────────╮
|
|
3449
|
+
│ field │ value │
|
|
3450
|
+
╞═════════╪══════════════════════════════════════════════════╡
|
|
3451
|
+
│ ascp │ /Users/john/.aspera/sdk/ascp │
|
|
3452
|
+
...
|
|
3453
|
+
╰─────────┴──────────────────────────────────────────────────╯
|
|
3331
3454
|
```
|
|
3332
3455
|
|
|
3333
3456
|
#### Installation of Connect Client on command line
|
|
@@ -3518,13 +3641,19 @@ ascli config folder
|
|
|
3518
3641
|
|
|
3519
3642
|
The name of the file shall be: `send_<PID>`, where `<PID>` is the process id of the running `ascli`.
|
|
3520
3643
|
|
|
3644
|
+
If there is only one `ascli` running, one can get the PID like this:
|
|
3645
|
+
|
|
3646
|
+
```shell
|
|
3647
|
+
ps -axo pid,command|grep ascli|grep -v grep|cut -f1 -d' '
|
|
3648
|
+
```
|
|
3649
|
+
|
|
3521
3650
|
Example to change the target rate:
|
|
3522
3651
|
|
|
3523
3652
|
```shell
|
|
3524
3653
|
echo '{"type":"RATE","Rate":300000}' > ~/.aspera/ascli/send_67470
|
|
3525
3654
|
```
|
|
3526
3655
|
|
|
3527
|
-
When `ascli` detects this file, it uses it and then deletes it.
|
|
3656
|
+
When `ascli` detects this file, it uses it during a transfer and then deletes it.
|
|
3528
3657
|
|
|
3529
3658
|
##### Agent: Direct: `aspera.conf`: Virtual Links
|
|
3530
3659
|
|
|
@@ -3807,7 +3936,7 @@ The use of a [**transfer-spec**](#transfer-specification) instead of `ascp` comm
|
|
|
3807
3936
|
- Common to all [Transfer Agent](#transfer-clients-agents)
|
|
3808
3937
|
- Not dependent on command line limitations (special characters...)
|
|
3809
3938
|
|
|
3810
|
-
|
|
3939
|
+
#### Transfer Parameters
|
|
3811
3940
|
|
|
3812
3941
|
All standard [**transfer-spec**](#transfer-specification) parameters can be specified.
|
|
3813
3942
|
A [**transfer-spec**](#transfer-specification) can also be saved/overridden in the configuration file.
|
|
@@ -3839,8 +3968,10 @@ ascli config ascp schema transferd --format=jsonpp
|
|
|
3839
3968
|
|
|
3840
3969
|
`ascp` argument or environment variable is provided in description.
|
|
3841
3970
|
|
|
3971
|
+
#### Transfer Specification Reference
|
|
3972
|
+
|
|
3842
3973
|
| ID | Name |
|
|
3843
|
-
|
|
3974
|
+
|----|-----------|
|
|
3844
3975
|
| A | Direct |
|
|
3845
3976
|
| C | Connect |
|
|
3846
3977
|
| D | Desktop |
|
|
@@ -3849,15 +3980,15 @@ ascli config ascp schema transferd --format=jsonpp
|
|
|
3849
3980
|
| T | Transferd |
|
|
3850
3981
|
|
|
3851
3982
|
| Field | Type | Description |
|
|
3852
|
-
|
|
3983
|
+
|--------------------------------|---------|----------------------------------------------------------------------------------|
|
|
3853
3984
|
| apply_local_docroot | boolean | Apply local docroot to source paths.<br/>(A, T)<br/>(`--apply-local-docroot`) |
|
|
3854
3985
|
| authentication | string | Set to `token` for SSH bypass keys, else password asked if not provided.<br/>(C) |
|
|
3855
3986
|
| cipher | string | In transit encryption algorithms.<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}`) |
|
|
3856
3987
|
| cipher_allowed | string | Returned by node API. Valid literals include `aes-128` and `none`.<br/>(C)<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` |
|
|
3857
|
-
| content_protection | string | Enable client-side encryption
|
|
3858
|
-
| content_protection_password | string |
|
|
3988
|
+
| content_protection | string | Enable client-side content protection (CSEAR, encryption-at-rest).<br/>For uploads, set to `encrypt` to transfer encrypted files and store them on the server with the extension `.aspera-env`. (`aspera.conf` parameter `transfer_encryption_content_protection_extension`). To download and decrypt encrypted files, set to `decrypt`<br/>`content_protection_password` must be specified if this option is set.<br/>Allowed values: `encrypt`, `decrypt`<br/>(`--file-crypt={enum}`) |
|
|
3989
|
+
| content_protection_password | string | Password for encryption/decryption of transferred assets.<br/>(env:`ASPERA_SCP_FILEPASS`) |
|
|
3859
3990
|
| cookie | string | Metadata for transfer specified by application.<br/>(env:`ASPERA_SCP_COOKIE`) |
|
|
3860
|
-
| create_dir | boolean |
|
|
3991
|
+
| create_dir | boolean | Create target directory if it doesn't already exist.<br/>If **all** the following conditions are met, then the `destination_root` specifies a filename instead of destination folder:<br/>- `create_dir` is `false`<br/>- A single source file is given on **command line**<br/>- The target folder specified by `destination_root` does not exist<br/>In all other cases, `destination_root` specifies a folder, and it is created if it does not already exist. I.e. if **any** of those conditions is met:<br/>- `create_dir` is `true`<br/>- Multiple source files are provided<br/>- List of source files are provided in a file (list or pair), default for Node API and `ascli`.<br/>- The target folder exists<br/>(`-d`) |
|
|
3861
3992
|
| delete_before_transfer | boolean | 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 on the source are not deleted.<br/>(`--delete-before-transfer`) |
|
|
3862
3993
|
| delete_source | boolean | Remove transfered source files after transfer success. Equivalent to `remove_after_transfer` + `remove_empty_directories` + `remove_empty_source_directory`. Take precedence over those.<br/>(A, N, T) |
|
|
3863
3994
|
| destination_root | string | Destination root directory. |
|
|
@@ -3924,7 +4055,7 @@ ascli config ascp schema transferd --format=jsonpp
|
|
|
3924
4055
|
| src_base64 | string | The folder name below which the directory structure is preserved (base64 encoded).<br/>(A, T)<br/>(`--src-base64={string}`) |
|
|
3925
4056
|
| ssh_args | array | Add arguments to the command-line arguments passed to the external ssh program (implies -SSH). The arguments are inserted before any key file(s) supplied to `ascp` and before the user/host arguments.<br/>(A, T)<br/>(special:`--ssh-arg={array}`) |
|
|
3926
4057
|
| ssh_port | integer | Specifies SSH (TCP) port.<br/>(`-P {integer}`) |
|
|
3927
|
-
| ssh_private_key | string | Private key used for SSH authentication.<br/>Shall look like: -----BEGIN RSA PRIV4TE KEY
|
|
4058
|
+
| ssh_private_key | string | Private key used for SSH authentication.<br/>Shall look like: -----BEGIN RSA PRIV4TE KEY-----\nMII...<br/>Note the JSON encoding: \n for newlines.<br/>(A, T)<br/>(env:`ASPERA_SCP_KEY`) |
|
|
3928
4059
|
| ssh_private_key_passphrase | string | The passphrase associated with the transfer user's SSH private key. Available as of 3.7.2.<br/>(A, T)<br/>(env:`ASPERA_SCP_PASS`) |
|
|
3929
4060
|
| ssh_private_key_path | string | Path to private key for SSH.<br/>(A, T)<br/>(`-i {string}`) |
|
|
3930
4061
|
| sshfp | string | Check it against server SSH host key fingerprint.<br/>(`--check-sshfp={string}`) |
|
|
@@ -3936,7 +4067,7 @@ ascli config ascp schema transferd --format=jsonpp
|
|
|
3936
4067
|
| title | string | Title of the transfer.<br/>(C, N, T) |
|
|
3937
4068
|
| token | string | Authorization token. Type: Bearer, Basic or ATM. (Also arg -W)<br/>(env:`ASPERA_SCP_TOKEN`) |
|
|
3938
4069
|
| use_ascp4 | boolean | Specify version of protocol. Do not use `ascp4`.<br/>(A, N, T) |
|
|
3939
|
-
| use_system_ssh |
|
|
4070
|
+
| use_system_ssh | boolean | Use an external `ssh` program instead of the built-in `libssh2` implementation to establish the connection to the remote host. The desired `ssh` program must be in the environment's `PATH`.<br/>To enable debugging of the `ssh` process, supply `-DD` and `--ssh-arg=-vv` arguments to `ascp`.<br/>(A, T)<br/>(`-SSH`) |
|
|
3940
4071
|
| wss_enabled | boolean | Server has Web Socket service enabled.<br/>(special:`--ws-connect`) |
|
|
3941
4072
|
| wss_port | integer | TCP port used for Web Socket service feed. |
|
|
3942
4073
|
| xfer_max_retries | integer | Maximum number of retries, for node API initiated transfers. Shall not exceed aspera.conf `transfer_manager_max_retries` (default 5).<br/>(N) |
|
|
@@ -4132,8 +4263,13 @@ When multi-session is used, one separate UDP port is used per session (refer to
|
|
|
4132
4263
|
|
|
4133
4264
|
#### Content protection
|
|
4134
4265
|
|
|
4135
|
-
|
|
4136
|
-
|
|
4266
|
+
Content protection (Client-Side Encryption at Rest, CSEAR)) ensures that files remain encrypted while stored on the server.
|
|
4267
|
+
With CSEAR, the client encrypts files during upload and decrypts files during download, using a passphrase known only to the users sharing the files.
|
|
4268
|
+
|
|
4269
|
+
- Upload: Files are encrypted on the client side before being sent to the server.
|
|
4270
|
+
- Download: Files are decrypted on the client side as they are retrieved from the server.
|
|
4271
|
+
|
|
4272
|
+
At all times, files remain encrypted on the server; encryption and decryption occur exclusively on the client side.
|
|
4137
4273
|
|
|
4138
4274
|
Activating CSEAR consists in using transfer spec parameters:
|
|
4139
4275
|
|
|
@@ -4146,6 +4282,11 @@ Example: parameter to download a Faspex package and decrypt on the fly
|
|
|
4146
4282
|
--ts=@json:'{"content_protection":"decrypt","content_protection_password":"my_password_here"}'
|
|
4147
4283
|
```
|
|
4148
4284
|
|
|
4285
|
+
> [!NOTE]
|
|
4286
|
+
> Faspex 5 requires package parameter `ear_enabled` set to `true` for CSEAR.
|
|
4287
|
+
> In that case the transfer spec parameter `content_protection` is automatically set.
|
|
4288
|
+
> `content_protection_password` is then required in all cases.
|
|
4289
|
+
|
|
4149
4290
|
#### Transfer Spec Examples
|
|
4150
4291
|
|
|
4151
4292
|
- Change target rate
|
|
@@ -4454,7 +4595,7 @@ ascli server upload "faux:///mydir?file=testfile&count=1000&size=1" --to-folder=
|
|
|
4454
4595
|
```text
|
|
4455
4596
|
ascli -h
|
|
4456
4597
|
NAME
|
|
4457
|
-
ascli -- a command line tool for Aspera Applications (v4.
|
|
4598
|
+
ascli -- a command line tool for Aspera Applications (v4.25.0.pre)
|
|
4458
4599
|
|
|
4459
4600
|
SYNOPSIS
|
|
4460
4601
|
ascli COMMANDS [OPTIONS] [ARGS]
|
|
@@ -4476,7 +4617,7 @@ COMMANDS
|
|
|
4476
4617
|
OPTIONS
|
|
4477
4618
|
Options begin with a '-' (minus), and value is provided on command line.
|
|
4478
4619
|
Special values are supported beginning with special prefix @pfx:, where pfx is one of:
|
|
4479
|
-
val, base64, csvt, env, file, uri, json, lines, list, none, path, re, ruby, secret, stdin, stdbin, yaml, zlib, extend, preset, vault
|
|
4620
|
+
val, base64, csvt, env, file, uri, json, lines, list, none, path, re, ruby, secret, stdin, stdbin, yaml, zlib, extend, preset, vault,
|
|
4480
4621
|
Dates format is 'DD-MM-YY HH:MM:SS', or 'now' or '-<num>h'
|
|
4481
4622
|
|
|
4482
4623
|
ARGS
|
|
@@ -4485,11 +4626,10 @@ ARGS
|
|
|
4485
4626
|
OPTIONS: global
|
|
4486
4627
|
--interactive=ENUM Use interactive input of missing params: [no], yes
|
|
4487
4628
|
--ask-options=ENUM Ask even optional options: [no], yes
|
|
4488
|
-
--struct-parser=ENUM Default parser when expected value is a struct: json, ruby
|
|
4489
4629
|
--format=ENUM Output format: text, nagios, ruby, json, jsonpp, yaml, [table], csv, image
|
|
4490
|
-
--output=VALUE Destination for results
|
|
4630
|
+
--output=VALUE Destination for results
|
|
4491
4631
|
--display=ENUM Output only some information: [info], data, error
|
|
4492
|
-
--fields=VALUE Comma separated list of: fields, or ALL, or DEF (
|
|
4632
|
+
--fields=VALUE Comma separated list of: fields, or ALL, or DEF (Array, Regexp, Proc)
|
|
4493
4633
|
--select=VALUE Select only some items in lists: column, value (Hash, Proc)
|
|
4494
4634
|
--table-style=VALUE (Table) Display style (Hash)
|
|
4495
4635
|
--flat-hash=ENUM (Table) Display deep values as additional keys: no, [yes]
|
|
@@ -4503,15 +4643,16 @@ OPTIONS: global
|
|
|
4503
4643
|
--ui=ENUM Method to start browser: text, [graphical]
|
|
4504
4644
|
--invalid-characters=VALUE Replacement character and invalid filename characters
|
|
4505
4645
|
--log-level=ENUM Log level: trace2, trace1, debug, info, [warn], error, fatal, unknown
|
|
4506
|
-
--log-format=VALUE Log formatter (Proc, Logger::Formatter
|
|
4646
|
+
--log-format=VALUE Log formatter (Proc, Logger::Formatter)
|
|
4507
4647
|
--logger=ENUM Logging method: [stderr], stdout, syslog
|
|
4508
4648
|
--lock-port=VALUE Prevent dual execution of a command, e.g. in cron (Integer)
|
|
4509
4649
|
--once-only=ENUM Process only new items (some commands): [no], yes
|
|
4510
4650
|
--log-secrets=ENUM Show passwords in logs: [no], yes
|
|
4511
4651
|
--clean-temp=ENUM Cleanup temporary files on exit: no, [yes]
|
|
4512
4652
|
--temp-folder=VALUE Temporary folder
|
|
4513
|
-
--pid-file=VALUE Write process identifier to file, delete on exit
|
|
4514
|
-
--
|
|
4653
|
+
--pid-file=VALUE Write process identifier to file, delete on exit
|
|
4654
|
+
--parser=ENUM Default parser for structured parameters and options: none, json, ruby, yaml
|
|
4655
|
+
--home=VALUE Home folder for tool
|
|
4515
4656
|
--config-file=VALUE Path to YAML file with preset configuration
|
|
4516
4657
|
--secret=VALUE Secret for access keys
|
|
4517
4658
|
--vault=VALUE Vault for secrets (Hash)
|
|
@@ -4522,16 +4663,15 @@ OPTIONS: global
|
|
|
4522
4663
|
--bfail=ENUM Bulk operation error handling: no, [yes]
|
|
4523
4664
|
-N, --no-default Do not load default configuration for plugin
|
|
4524
4665
|
-P, --presetVALUE Load the named option preset from current config file
|
|
4525
|
-
--version-check-days=VALUE Period in days to check new version (zero to disable)
|
|
4666
|
+
--version-check-days=VALUE Period in days to check new version (zero to disable) (Integer)
|
|
4526
4667
|
--plugin-folder=VALUE Folder where to find additional plugins
|
|
4527
4668
|
--override=ENUM Wizard: override existing value: [no], yes
|
|
4528
4669
|
--default=ENUM Wizard: set as default configuration for specified plugin (also: update): no, [yes]
|
|
4529
4670
|
--key-path=VALUE Wizard: path to private key for JWT
|
|
4530
|
-
--ascp-path=VALUE Ascp: Path to ascp
|
|
4531
|
-
--use-product=VALUE Ascp: Use ascp from specified product
|
|
4532
4671
|
--sdk-url=VALUE Ascp: URL to get Aspera Transfer Executables
|
|
4533
|
-
--
|
|
4534
|
-
--
|
|
4672
|
+
--ascp-path=VALUE Ascp: Path to ascp (or product with "product:")
|
|
4673
|
+
--locations-url=VALUE Ascp: URL to get download locations of Aspera Transfer Daemon
|
|
4674
|
+
--sdk-folder=VALUE Ascp: SDK installation folder path
|
|
4535
4675
|
--progress-bar=ENUM Display progress bar: [no], yes
|
|
4536
4676
|
--smtp=VALUE Email: SMTP configuration (Hash)
|
|
4537
4677
|
--notify-to=VALUE Email: Recipient for notification of transfers
|
|
@@ -4539,9 +4679,9 @@ OPTIONS: global
|
|
|
4539
4679
|
--insecure=ENUM HTTP/S: Do not validate any certificate: [no], yes
|
|
4540
4680
|
--ignore-certificate=VALUE HTTP/S: Do not validate certificate for these URLs (Array)
|
|
4541
4681
|
--warn-insecure=ENUM HTTP/S: Issue a warning if certificate is ignored: no, [yes]
|
|
4542
|
-
--cert-stores=VALUE HTTP/S: List of folder with trusted certificates (Array
|
|
4682
|
+
--cert-stores=VALUE HTTP/S: List of folder with trusted certificates (Array)
|
|
4543
4683
|
--http-options=VALUE HTTP/S: Options for HTTP/S socket (Hash)
|
|
4544
|
-
--http-proxy=VALUE HTTP/S: URL for proxy with optional credentials
|
|
4684
|
+
--http-proxy=VALUE HTTP/S: URL for proxy with optional credentials
|
|
4545
4685
|
--cache-tokens=ENUM Save and reuse OAuth tokens: no, [yes]
|
|
4546
4686
|
--fpac=VALUE Proxy auto configuration script
|
|
4547
4687
|
--proxy-credentials=VALUE HTTP proxy credentials for fpac: user, password (Array)
|
|
@@ -4565,7 +4705,7 @@ OPTIONS:
|
|
|
4565
4705
|
|
|
4566
4706
|
|
|
4567
4707
|
COMMAND: node
|
|
4568
|
-
SUBCOMMANDS: access_keys api_details asperabrowser async basic_token bearer_token browse cat central delete download events health info license mkdir mkfile mklink rename search service simulator slash space ssync stream sync telemetry transfer transport upload watch_folder
|
|
4708
|
+
SUBCOMMANDS: access_keys api_details asperabrowser async basic_token bearer_token browse cat central delete download events health info license mkdir mkfile mklink rename search service simulator slash space spec ssync stream sync telemetry transfer transport upload watch_folder
|
|
4569
4709
|
OPTIONS:
|
|
4570
4710
|
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4571
4711
|
--username=VALUE User's identifier
|
|
@@ -4591,7 +4731,7 @@ OPTIONS:
|
|
|
4591
4731
|
|
|
4592
4732
|
|
|
4593
4733
|
COMMAND: orchestrator
|
|
4594
|
-
SUBCOMMANDS: health info plugins processes
|
|
4734
|
+
SUBCOMMANDS: health info monitors plugins processes workflows workorders workstep
|
|
4595
4735
|
OPTIONS:
|
|
4596
4736
|
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4597
4737
|
--username=VALUE User's identifier
|
|
@@ -4677,11 +4817,11 @@ OPTIONS:
|
|
|
4677
4817
|
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4678
4818
|
--username=VALUE User's identifier
|
|
4679
4819
|
--password=VALUE User's password
|
|
4680
|
-
--skip-format=ENUM Skip this preview format
|
|
4820
|
+
--skip-format=ENUM Skip this preview format: png, mp4
|
|
4681
4821
|
--folder-reset-cache=ENUM Force detection of generated preview by refresh cache: [no], header, read
|
|
4682
|
-
--skip-types=VALUE Skip types
|
|
4822
|
+
--skip-types=VALUE Skip generation for those types of files (Array)
|
|
4683
4823
|
--previews-folder=VALUE Preview folder in storage root
|
|
4684
|
-
--skip-folders=VALUE List of folder to skip
|
|
4824
|
+
--skip-folders=VALUE List of folder to skip (Array)
|
|
4685
4825
|
--base=VALUE Basename of output for for test
|
|
4686
4826
|
--scan-path=VALUE Subpath in folder id to start scan in (default=/)
|
|
4687
4827
|
--scan-id=VALUE Folder id in storage to start scan in, default is access key main folder id
|
|
@@ -4719,10 +4859,10 @@ OPTIONS:
|
|
|
4719
4859
|
--private-key=VALUE OAuth (JWT) RSA private key PEM value (prefix file path with @file:)
|
|
4720
4860
|
--passphrase=VALUE OAuth (JWT) RSA private key passphrase
|
|
4721
4861
|
--scope=VALUE OAuth scope for API calls
|
|
4722
|
-
--workspace=VALUE Name of workspace
|
|
4862
|
+
--workspace=VALUE Name of workspace
|
|
4723
4863
|
--new-user-option=VALUE New user creation option for unknown package recipients (Hash)
|
|
4724
4864
|
--validate-metadata=ENUM Validate shared inbox metadata: no, [yes]
|
|
4725
|
-
--package-folder=VALUE Field of package to use as folder name, or @none:
|
|
4865
|
+
--package-folder=VALUE Field of package to use as folder name, or @none:
|
|
4726
4866
|
|
|
4727
4867
|
|
|
4728
4868
|
COMMAND: server
|
|
@@ -4731,7 +4871,7 @@ OPTIONS:
|
|
|
4731
4871
|
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4732
4872
|
--username=VALUE User's identifier
|
|
4733
4873
|
--password=VALUE User's password
|
|
4734
|
-
--ssh-keys=VALUE SSH key path list (Array
|
|
4874
|
+
--ssh-keys=VALUE SSH key path list (Array)
|
|
4735
4875
|
--passphrase=VALUE SSH private key passphrase
|
|
4736
4876
|
--ssh-options=VALUE SSH options (Hash)
|
|
4737
4877
|
|
|
@@ -4758,18 +4898,17 @@ This option is available only for some resources: if you need it: try and see if
|
|
|
4758
4898
|
### Option: `query`
|
|
4759
4899
|
|
|
4760
4900
|
The `query` option can generally be used to add URL parameters to commands that list resources.
|
|
4761
|
-
It takes either a `Hash
|
|
4901
|
+
It takes either a `Hash`, corresponding to key/value pairs that appear in the query part of request.
|
|
4762
4902
|
|
|
4763
4903
|
For example: `--query=@json:'{"p1":"v1","p2":"v2"}'` leads to query: `?p1=v1&p2=v2`.
|
|
4764
4904
|
|
|
4765
|
-
If the same parameter needs to be provided several times, then it's possible as well to provide an `Array
|
|
4905
|
+
If the same parameter needs to be provided several times, then it's possible as well to provide an `Array`.
|
|
4766
4906
|
|
|
4767
|
-
|
|
4907
|
+
For example: `--query=@json:'{"p":["v1","v2"]}'` leads to query: `?p=v1&p=v2`.
|
|
4768
4908
|
|
|
4769
|
-
|
|
4770
|
-
- `--query=@json:'[["a[]","v1"],["a[]","v2"]]'`
|
|
4909
|
+
If PHP's style array is expected in the API, then just add `[]` to the name of the parameter.
|
|
4771
4910
|
|
|
4772
|
-
|
|
4911
|
+
For example: `--query=@json:'{"p[]":["v1","v2"]}'` leads to query: `?p[]=v1&p[]=v2`.
|
|
4773
4912
|
|
|
4774
4913
|
### Plugins
|
|
4775
4914
|
|
|
@@ -5138,7 +5277,7 @@ ascli aoc files bearer_token_node /
|
|
|
5138
5277
|
```
|
|
5139
5278
|
|
|
5140
5279
|
```shell
|
|
5141
|
-
ascli aoc admin node v4
|
|
5280
|
+
ascli aoc admin node v4 <node_id> --secret=_ak_secret_here_ bearer_token_node /
|
|
5142
5281
|
```
|
|
5143
5282
|
|
|
5144
5283
|
### Administration
|
|
@@ -5741,13 +5880,13 @@ ascli aoc packages send @json:'{"name":"my title","note":"my note","recipients":
|
|
|
5741
5880
|
##### Example: Send a package to a shared inbox with metadata
|
|
5742
5881
|
|
|
5743
5882
|
```shell
|
|
5744
|
-
ascli aoc packages send --workspace="
|
|
5883
|
+
ascli aoc packages send --workspace="<workspace_name>" @json:'{"name":"my pack title","recipients":["Shared Inbox With Meta"],"metadata":{"Project Id":"123","Type":"Opt2","CheckThose":["Check1","Check2"],"Optional Date":"2021-01-13T15:02:00.000Z"}}' ~/Documents/Samples/200KB.1
|
|
5745
5884
|
```
|
|
5746
5885
|
|
|
5747
5886
|
It is also possible to use identifiers and API parameters:
|
|
5748
5887
|
|
|
5749
5888
|
```shell
|
|
5750
|
-
ascli aoc packages send --workspace="
|
|
5889
|
+
ascli aoc packages send --workspace="<workspace_name>" @json:'{"name":"my pack title","recipients":[{"type":"dropbox","id":"12345"}],"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"]}]}' ~/Documents/Samples/200KB.1
|
|
5751
5890
|
```
|
|
5752
5891
|
|
|
5753
5892
|
##### Example: Send a package with files from the Files app
|
|
@@ -5938,7 +6077,7 @@ ascli aoc files download <single file path>
|
|
|
5938
6077
|
|
|
5939
6078
|
#### Shared folders
|
|
5940
6079
|
|
|
5941
|
-
Like in AoC web UI,
|
|
6080
|
+
Like in AoC web UI, **Shared Folders** can be created and shared with either **Private** or **Public** links.
|
|
5942
6081
|
**Private** links require the collaborator to log in to access the shared folder.
|
|
5943
6082
|
**Public** links include a passcode that enables the user to access the shared folder without login-in.
|
|
5944
6083
|
|
|
@@ -5976,8 +6115,8 @@ The basic payload to create a permission, i.e. a Shared Folder (last argument at
|
|
|
5976
6115
|
| `link_name` | `ascli` | Name of the link file created in the user's home folder for private links. |
|
|
5977
6116
|
| `as` | `ascli` | Name of the link file created in the user's home folder for admin shared folders. |
|
|
5978
6117
|
|
|
5979
|
-
In order to declare/create the shared folder in the workspace, a special value for `access_id` is used: `ASPERA_ACCESS_KEY_ADMIN_WS_[workspace ID]
|
|
5980
|
-
This is conveniently set by `ascli` using an empty string for field `with`.
|
|
6118
|
+
In order to declare/create the shared folder in the workspace, a special value for `access_id` is used: `ASPERA_ACCESS_KEY_ADMIN_WS_[workspace ID]`, with a `access_type` of `user`.
|
|
6119
|
+
This is conveniently set by `ascli` using an **empty string** for field `with`.
|
|
5981
6120
|
In order to share a folder with a different, special tags are set, but this is conveniently done by `ascli` using the `as` field.
|
|
5982
6121
|
|
|
5983
6122
|
##### User Shared Folders
|
|
@@ -5994,7 +6133,7 @@ ascli aoc files permission --workspace=<workspace name> <path to folder> ...
|
|
|
5994
6133
|
|
|
5995
6134
|
##### Admin Shared Folders
|
|
5996
6135
|
|
|
5997
|
-
Admin shared folders, created by administrators in a workspace follow the syntax:
|
|
6136
|
+
Admin shared folders, created by administrators in a workspace, follow the syntax:
|
|
5998
6137
|
|
|
5999
6138
|
```shell
|
|
6000
6139
|
ascli aoc admin node do <node ID> permission --workspace=<workspace name> <path to folder>
|
|
@@ -6006,7 +6145,7 @@ ascli aoc admin node do <node ID> permission --workspace=<workspace name> <path
|
|
|
6006
6145
|
> The path is identifier by a path, one can specify a file id, with `%id:123`.
|
|
6007
6146
|
> If the id is left blank: `%id:`, then if means `*`, i.e. all.
|
|
6008
6147
|
|
|
6009
|
-
##### Example: List permissions on a shared folder
|
|
6148
|
+
##### Example: List permissions on a user shared folder
|
|
6010
6149
|
|
|
6011
6150
|
```shell
|
|
6012
6151
|
ascli aoc files permission /shared_folder_test1 list
|
|
@@ -6053,7 +6192,7 @@ To remove a password:
|
|
|
6053
6192
|
> [!NOTE]
|
|
6054
6193
|
> Access level cannot be customized in this version.
|
|
6055
6194
|
|
|
6056
|
-
An expiration date can be set with parameter `expires_at`, using ISO 8601 format.
|
|
6195
|
+
An expiration date can be set with parameter `expires_at`, using [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
|
|
6057
6196
|
E.g. `2025-08-29T08:10:31.000Z`.
|
|
6058
6197
|
If only a date is provided, it will be set to midnight UTC of that date.
|
|
6059
6198
|
|
|
@@ -6061,16 +6200,16 @@ If only a date is provided, it will be set to midnight UTC of that date.
|
|
|
6061
6200
|
|
|
6062
6201
|
First, identify the node ID where the shared folder will be created.
|
|
6063
6202
|
|
|
6064
|
-
To get the node ID of the default node for workspace
|
|
6203
|
+
To get the node ID of the default node for workspace `<workspace_name>`, use the command:
|
|
6065
6204
|
|
|
6066
6205
|
```shell
|
|
6067
|
-
ascli aoc admin workspace show %name:'
|
|
6206
|
+
ascli aoc admin workspace show %name:'<workspace_name>' --fields=node_id
|
|
6068
6207
|
```
|
|
6069
6208
|
|
|
6070
6209
|
Alternatively (longer):
|
|
6071
6210
|
|
|
6072
6211
|
```shell
|
|
6073
|
-
ascli aoc admin workspace list --select=@json:'{"name":"
|
|
6212
|
+
ascli aoc admin workspace list --select=@json:'{"name":"<workspace_name>"}' --fields=node_id
|
|
6074
6213
|
```
|
|
6075
6214
|
|
|
6076
6215
|
Or select a node identifier manually from the list of nodes:
|
|
@@ -6081,24 +6220,22 @@ ascli aoc admin node list --fields=id,name
|
|
|
6081
6220
|
|
|
6082
6221
|
In the following commands, replace:
|
|
6083
6222
|
|
|
6084
|
-
-
|
|
6085
|
-
-
|
|
6086
|
-
-
|
|
6087
|
-
|
|
6088
|
-
The node can also be conveniently identified using the **percent selector** instead of numerical ID: `%name:"my node"`.
|
|
6223
|
+
- `<node_id>` with the node ID, or with `%name:<node_name>`.
|
|
6224
|
+
- `<workspace_name>` with the workspace name, or with `%id:<workspace_id>`.
|
|
6225
|
+
- `<folder_path>` with the path of the folder to share on the node (e.g. `/my_folder` or simply `my_folder`). It can also be a folder deeper than level 1.
|
|
6089
6226
|
|
|
6090
6227
|
If the shared folder does not exist, then create it:
|
|
6091
6228
|
|
|
6092
6229
|
```shell
|
|
6093
|
-
ascli aoc admin node do
|
|
6230
|
+
ascli aoc admin node do <node_id> mkdir <folder_path>
|
|
6094
6231
|
```
|
|
6095
6232
|
|
|
6096
|
-
Create the shared folder in workspace
|
|
6097
|
-
Optionally use `as` to set the name of the shared folder if different from the folder name on the node.
|
|
6233
|
+
Create the shared folder in workspace `<workspace_name>` (set `with` to empty string, or do not specify it).
|
|
6234
|
+
**Optionally**, use `as` to set the name of the shared folder if different from the folder name on the node.
|
|
6098
6235
|
For other options, refer to the previous section on shared folders.
|
|
6099
6236
|
|
|
6100
6237
|
```shell
|
|
6101
|
-
ascli aoc admin node do
|
|
6238
|
+
ascli aoc admin node do <node_id> permission <folder_path> create @json:'{"with":"","as":"folder_for_users"}' --workspace="<workspace_name>"
|
|
6102
6239
|
```
|
|
6103
6240
|
|
|
6104
6241
|
> [!NOTE]
|
|
@@ -6109,30 +6246,67 @@ The `"with"` parameter will perform a lookup, and set fields `access_type` and `
|
|
|
6109
6246
|
The native fields `access_type` and `access_id` can also be used, instead of `with`.
|
|
6110
6247
|
|
|
6111
6248
|
```shell
|
|
6112
|
-
ascli aoc admin node do
|
|
6249
|
+
ascli aoc admin node do <node_id> permission <folder_path> create @json:'{"with":"john@example.com","as":"folder_for_one_user"}' --workspace="<workspace_name>"
|
|
6113
6250
|
```
|
|
6114
6251
|
|
|
6115
6252
|
```shell
|
|
6116
|
-
ascli aoc admin node do
|
|
6253
|
+
ascli aoc admin node do <node_id> permission <folder_path> create @json:'{"with":"group 1","as":"folder_for_a_group"}' --workspace="<workspace_name>"
|
|
6117
6254
|
```
|
|
6118
6255
|
|
|
6119
6256
|
```shell
|
|
6120
|
-
ascli aoc admin node do
|
|
6257
|
+
ascli aoc admin node do <node_id> permission <folder_path> create @json:'{"with":"<workspace_name>","as":"folder_for_all_workspace"}' --workspace="<workspace_name>"
|
|
6121
6258
|
```
|
|
6122
6259
|
|
|
6123
6260
|
> [!NOTE]
|
|
6124
6261
|
> In the previous commands, field `as` is optional.
|
|
6125
6262
|
|
|
6263
|
+
##### Example: List all workspace admin shared folder in a workspace
|
|
6264
|
+
|
|
6265
|
+
```shell
|
|
6266
|
+
ascli aoc admin workspace shared_folder %name:'<workspace_name>' list
|
|
6267
|
+
```
|
|
6268
|
+
|
|
6269
|
+
```text
|
|
6270
|
+
╭───────┬───────────┬─────────┬─────────┬───────────┬──────────────────────────────────────╮
|
|
6271
|
+
│ id │ node_name │ node_id │ file_id │ file.path │ tags.aspera.files.workspace.share_as │
|
|
6272
|
+
╞═══════╪═══════════╪═════════╪═════════╪═══════════╪══════════════════════════════════════╡
|
|
6273
|
+
│ 198 │ eudemo │ 8666 │ 2465 │ /project1 │ │
|
|
6274
|
+
│ 785 │ eudemo │ 8666 │ 9 │ /folder2 │ project2 │
|
|
6275
|
+
│ 4788 │ eudemo │ 8666 │ 3691 │ /backup │ │
|
|
6276
|
+
╰───────┴───────────┴─────────┴─────────┴───────────┴──────────────────────────────────────╯
|
|
6277
|
+
```
|
|
6278
|
+
|
|
6279
|
+
To list members:
|
|
6280
|
+
|
|
6281
|
+
```shell
|
|
6282
|
+
ascli aoc admin workspace shared_folder %name:'<workspace_name>' member 198 list
|
|
6283
|
+
```
|
|
6284
|
+
|
|
6285
|
+
```text
|
|
6286
|
+
╭─────────────┬──────────────────────────────────┬──────────────┬──────────────────────╮
|
|
6287
|
+
│ access_type │ access_id │ access_level │ last_updated_at │
|
|
6288
|
+
╞═════════════╪══════════════════════════════════╪══════════════╪══════════════════════╡
|
|
6289
|
+
│ user │ ASPERA_ACCESS_KEY_ADMIN_WS_45071 │ edit │ 2020-11-29T22:48:49Z │
|
|
6290
|
+
│ group │ 160270 │ edit │ 2024-05-13T15:58:02Z │
|
|
6291
|
+
╰─────────────┴──────────────────────────────────┴──────────────┴──────────────────────╯
|
|
6292
|
+
```
|
|
6293
|
+
|
|
6294
|
+
If you have the node id of the shared folder, than it is equivalent to:
|
|
6295
|
+
|
|
6296
|
+
```shell
|
|
6297
|
+
ascli aoc admin node do 8669 perm /project1 list --query=@json:'{"tag":"aspera.files.workspace.id=<workspace_id>"}'
|
|
6298
|
+
```
|
|
6299
|
+
|
|
6126
6300
|
##### Example: List all workspace admin shared folder on a node
|
|
6127
6301
|
|
|
6128
6302
|
First get the workspace identifier:
|
|
6129
6303
|
|
|
6130
6304
|
```shell
|
|
6131
|
-
ascli aoc admin workspace list --select=@json:'{"name":"
|
|
6305
|
+
ascli aoc admin workspace list --select=@json:'{"name":"<workspace_name>"}' --fields=id
|
|
6132
6306
|
```
|
|
6133
6307
|
|
|
6134
6308
|
```text
|
|
6135
|
-
|
|
6309
|
+
<workspace_id>
|
|
6136
6310
|
```
|
|
6137
6311
|
|
|
6138
6312
|
Then, identify the node id on which to list, see previous section.
|
|
@@ -6140,7 +6314,7 @@ Then, identify the node id on which to list, see previous section.
|
|
|
6140
6314
|
Finally, list all shared folders, as permissions:
|
|
6141
6315
|
|
|
6142
6316
|
```shell
|
|
6143
|
-
ascli aoc admin node do
|
|
6317
|
+
ascli aoc admin node do <node_id> perm %id: list --query=@json:'{"access_type":"user","access_id":"ASPERA_ACCESS_KEY_ADMIN_WS_<workspace_id>"}'
|
|
6144
6318
|
```
|
|
6145
6319
|
|
|
6146
6320
|
> [!NOTE]
|
|
@@ -6197,11 +6371,11 @@ For instructions, refer to section `find` for plugin `node`.
|
|
|
6197
6371
|
> Add `ascli aoc` in front of the following commands:
|
|
6198
6372
|
|
|
6199
6373
|
```bash
|
|
6200
|
-
admin analytics
|
|
6374
|
+
admin analytics files organization '' aoc_transfer_id
|
|
6201
6375
|
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%>}'
|
|
6202
6376
|
admin analytics transfers users --once-only=yes
|
|
6203
6377
|
admin application list
|
|
6204
|
-
admin ats access_key create --cloud=aws --region=my_region @json:'{"id":"
|
|
6378
|
+
admin ats access_key create --cloud=aws --region=my_region @json:'{"id":"ak_aws_aoc","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":"/"}}'
|
|
6205
6379
|
admin ats access_key create --cloud=softlayer --region=my_region @json:'{"id":"ak1ibmcloud","secret":"my_secret_here","name":"my test key","storage":{"type":"ibm-s3","bucket":"my_bucket","credentials":{"access_key_id":"my_access_key","secret_access_key":"my_secret_key"},"path":"/"}}'
|
|
6206
6380
|
admin ats access_key delete ak1ibmcloud
|
|
6207
6381
|
admin ats access_key list --fields=name,id
|
|
@@ -6247,15 +6421,18 @@ admin subscription usage
|
|
|
6247
6421
|
admin subscription usage MONTH
|
|
6248
6422
|
admin user list
|
|
6249
6423
|
admin user modify %name:my_user_email @json:'{"deactivated":false}'
|
|
6424
|
+
admin workspace dropbox %name:my_other_workspace list
|
|
6250
6425
|
admin workspace list
|
|
6426
|
+
admin workspace shared_folder %name:my_other_workspace list
|
|
6427
|
+
admin workspace shared_folder %name:my_other_workspace member shared_folder_id list
|
|
6251
6428
|
admin workspace_membership list
|
|
6252
6429
|
admin workspace_membership list --fields=ALL --query=@json:'{"page":1,"per_page":50,"embed":"member","inherited":false,"workspace_id":11363,"sort":"name"}'
|
|
6253
|
-
automation workflow action wf_id create @json:'{"name":"toto"}'
|
|
6430
|
+
automation workflow action wf_id create @json:'{"name":"toto"}'
|
|
6254
6431
|
automation workflow create @json:'{"name":"test_workflow"}'
|
|
6255
6432
|
automation workflow delete wf_id
|
|
6256
6433
|
automation workflow list
|
|
6257
6434
|
automation workflow list --query=@json:'{"show_org_workflows":"true"}' --scope=admin:all
|
|
6258
|
-
automation workflow list --select=@json:'{"name":"test_workflow"}' --fields=id
|
|
6435
|
+
automation workflow list --select=@json:'{"name":"test_workflow"}' --fields=id
|
|
6259
6436
|
bearer_token --display=data --scope=user:all
|
|
6260
6437
|
files bearer /
|
|
6261
6438
|
files bearer_token_node / --cache-tokens=no
|
|
@@ -6268,7 +6445,7 @@ files browse my_remote_folder
|
|
|
6268
6445
|
files browse my_remote_folder/
|
|
6269
6446
|
files cat testdst/test_file.bin
|
|
6270
6447
|
files delete /testsrc
|
|
6271
|
-
files
|
|
6448
|
+
files download --to-folder=. testdst/test_file.bin testdst/test_file.bin
|
|
6272
6449
|
files download --transfer=connect testdst/test_file.bin
|
|
6273
6450
|
files download --transfer=desktop testdst/test_file.bin
|
|
6274
6451
|
files find /
|
|
@@ -6276,7 +6453,6 @@ files find / '\.partial$'
|
|
|
6276
6453
|
files find / @ruby:'->(f){f["type"].eql?("file")}'
|
|
6277
6454
|
files mkdir /testsrc
|
|
6278
6455
|
files modify /some_folder @json:'{"mount_point":false}'
|
|
6279
|
-
files modify my_test_folder
|
|
6280
6456
|
files permission my_test_folder list
|
|
6281
6457
|
files rename /some_folder testdst
|
|
6282
6458
|
files short_link /testdst private create
|
|
@@ -6293,9 +6469,8 @@ files transfer push /testsrc --to-folder=/testdst test_file.bin
|
|
|
6293
6469
|
files upload --to-folder=/ test_file.bin --url=my_public_link_folder_no_pass
|
|
6294
6470
|
files upload --to-folder=/testsrc test_file.bin
|
|
6295
6471
|
files upload --to-folder=/testsrc test_file.bin test_file.bin
|
|
6296
|
-
files upload --workspace=my_other_workspace --to-folder=my_other_folder test_file.bin --transfer=node --transfer-info=@json:@stdin:
|
|
6297
6472
|
files v3 info
|
|
6298
|
-
gateway
|
|
6473
|
+
gateway @json:'{"url":"https://localhost:12345/aspera/faspex"}'
|
|
6299
6474
|
organization
|
|
6300
6475
|
organization --format=image --fields=background_image_url --ui=text
|
|
6301
6476
|
organization --url=my_public_link_recv_from_aoc_user
|
|
@@ -6307,14 +6482,13 @@ packages receive ALL --once-only=yes --to-folder=. --lock-port=12345 --query=@js
|
|
|
6307
6482
|
packages receive INIT --once-only=yes --query=@json:'{"dropbox_name":"my_shared_inbox_name"}'
|
|
6308
6483
|
packages receive package_id3 --to-folder=.
|
|
6309
6484
|
packages receive package_id3 --to-folder=. / --package-folder=name
|
|
6310
|
-
packages send --workspace=my_workspace_shared_inbox --validate-metadata=yes @json:'{"name":"
|
|
6311
|
-
packages send --workspace=my_workspace_shared_inbox --validate-metadata=yes @json:'{"name":"
|
|
6312
|
-
packages send --workspace=my_workspace_shared_inbox
|
|
6313
|
-
packages send
|
|
6314
|
-
packages send @json:'{"name":"
|
|
6315
|
-
packages send @json:'{"name":"
|
|
6316
|
-
packages send @json:'{"name":"
|
|
6317
|
-
packages send @json:'{"name":"$(notdir test) PACKAGE_TITLE_BASE"}' test_file.bin --url=my_public_link_send_shared_inbox
|
|
6485
|
+
packages send --workspace=my_workspace_shared_inbox --validate-metadata=yes @json:'{"name":"package title","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
|
|
6486
|
+
packages send --workspace=my_workspace_shared_inbox --validate-metadata=yes @json:'{"name":"package title","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
|
|
6487
|
+
packages send --workspace=my_workspace_shared_inbox @json:'{"name":"package title","recipients":["my_shared_inbox_name"]}' test_file.bin
|
|
6488
|
+
packages send @json:'{"name":"package title","recipients":["my_email_external"]}' --new-user-option=@json:'{"package_contact":true}' test_file.bin
|
|
6489
|
+
packages send @json:'{"name":"package title","recipients":["my_email_internal"],"note":"my - note"}' test_file.bin
|
|
6490
|
+
packages send @json:'{"name":"package title"}' test_file.bin --url=my_public_link_send_aoc_user --password=my_public_link_send_use_pass
|
|
6491
|
+
packages send @json:'{"name":"package title"}' test_file.bin --url=my_public_link_send_shared_inbox
|
|
6318
6492
|
packages shared_inboxes list
|
|
6319
6493
|
packages shared_inboxes show %name:my_shared_inbox_name
|
|
6320
6494
|
remind --username=my_user_email
|
|
@@ -6464,7 +6638,6 @@ access_key cluster ak2ibmcloud --secret=my_secret_here
|
|
|
6464
6638
|
access_key create --cloud=aws --region=my_region @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":"/"}}'
|
|
6465
6639
|
access_key create --cloud=softlayer --region=my_region @json:'{"id":"ak2ibmcloud","secret":"my_secret_here","name":"my test key","storage":{"type":"ibm-s3","bucket":"my_bucket","credentials":{"access_key_id":"my_access_key","secret_access_key":"my_secret_key"},"path":"/"}}'
|
|
6466
6640
|
access_key delete ak2ibmcloud
|
|
6467
|
-
access_key delete ak_aws
|
|
6468
6641
|
access_key entitlement ak2ibmcloud
|
|
6469
6642
|
access_key list --fields=name,id
|
|
6470
6643
|
access_key node ak2ibmcloud browse / --secret=my_secret_here
|
|
@@ -6504,7 +6677,7 @@ ascli server --url=ssh://hsts.example.com:33001 --username=john --ssh-keys=~/.ss
|
|
|
6504
6677
|
|
|
6505
6678
|
```bash
|
|
6506
6679
|
browse /
|
|
6507
|
-
browse / --password=@none: --ssh-options=@json:'{"number_of_password_prompts":0}' --ssh-keys
|
|
6680
|
+
browse / --password=@none: --ssh-options=@json:'{"number_of_password_prompts":0}' --ssh-keys=serv_key_path
|
|
6508
6681
|
browse my_inside_folder/test_file.bin
|
|
6509
6682
|
browse my_upload_folder/target_hot
|
|
6510
6683
|
cp my_inside_folder/test_file.bin my_upload_folder/200KB.2
|
|
@@ -6521,18 +6694,19 @@ md5sum my_inside_folder/test_file.bin
|
|
|
6521
6694
|
mkdir my_inside_folder --logger=stdout
|
|
6522
6695
|
mkdir my_upload_folder/target_hot
|
|
6523
6696
|
mv my_upload_folder/200KB.2 my_upload_folder/to.delete
|
|
6697
|
+
sync admin file_info /data/local_sync
|
|
6698
|
+
sync admin overview /data/local_sync
|
|
6524
6699
|
sync admin status /data/local_sync
|
|
6700
|
+
sync pull my_inside_folder --to-folder=/data/local_sync @json:'{"name":"serv_sync_pull_conf","reset":true,"transport":{"target_rate":my_bps}}'
|
|
6525
6701
|
sync pull my_inside_folder --to-folder=/data/local_sync @json:'{"name":"serv_sync_pull_conf"}'
|
|
6526
|
-
upload 'faux:///test1?100m' 'faux:///test2?100m' --to-folder=/Upload --ts=@json:'{"target_rate_kbps":1000000,"resume_policy":"none","precalculate_job_size":true}'
|
|
6527
|
-
upload 'faux:///test1?100m' 'faux:///test2?100m' --to-folder=/Upload --ts=@json:'{"target_rate_kbps":1000000,"resume_policy":"none","precalculate_job_size":true}' --transfer-info=@json:'{"quiet":false}' --progress=no
|
|
6528
|
-
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
|
|
6529
6702
|
upload --sources=@ts --transfer-info=@json:'{"ascp_args":["--file-list","filelist.txt"]}' --to-folder=my_inside_folder
|
|
6530
6703
|
upload --sources=@ts --transfer-info=@json:'{"ascp_args":["--file-pair-list","file_pair_list.txt"]}'
|
|
6531
6704
|
upload --sources=@ts --ts=@json:'{"paths":[{"source":"test_file.bin","destination":"my_inside_folder/other_name_4"}]}' --transfer=transferd
|
|
6532
|
-
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"]}'
|
|
6533
6705
|
upload --src-type=pair --sources=@json:'["test_file.bin","my_inside_folder/other_name_3"]' --transfer-info.quiet=false --progress=no
|
|
6706
|
+
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"]}'
|
|
6534
6707
|
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"}'
|
|
6535
6708
|
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
|
|
6709
|
+
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
|
|
6536
6710
|
```
|
|
6537
6711
|
|
|
6538
6712
|
### Authentication on Server with SSH session
|
|
@@ -7076,7 +7250,7 @@ ascli node -N --url=https://... --password="Bearer $(cat bearer.txt)" --root-id=
|
|
|
7076
7250
|
> Add `ascli node` in front of the following commands:
|
|
7077
7251
|
|
|
7078
7252
|
```bash
|
|
7079
|
-
--url=https://tst.example.com/path --password=
|
|
7253
|
+
--url=https://tst.example.com/path --password='Bearer node_bearer_token' --root-id=bearer_root_id access_key do self browse /
|
|
7080
7254
|
access_key create @json:'{"id":"my_username","secret":"my_password_here","storage":{"type":"local","path":"/"}}'
|
|
7081
7255
|
access_key delete my_username
|
|
7082
7256
|
access_key do my_ak_name browse /
|
|
@@ -7087,32 +7261,29 @@ access_key do my_ak_name find my_test_folder
|
|
|
7087
7261
|
access_key do my_ak_name find my_test_folder @re:'\.jpg$'
|
|
7088
7262
|
access_key do my_ak_name find my_test_folder @ruby:'->(f){f["name"].end_with?(".jpg")}'
|
|
7089
7263
|
access_key do my_ak_name mkdir /tst_nd_ak
|
|
7090
|
-
access_key do my_ak_name mkfile /mkfile.txt
|
|
7264
|
+
access_key do my_ak_name mkfile /mkfile.txt 'hello world'
|
|
7091
7265
|
access_key do my_ak_name mklink /mklink.txt --query=@json:'{"target":"/mkfile.txt","target_node_id":"123"}'
|
|
7092
7266
|
access_key do my_ak_name node_info /
|
|
7093
7267
|
access_key do my_ak_name rename /tst_nd_ak test_nd_ak2
|
|
7094
7268
|
access_key do my_ak_name show %id:1
|
|
7095
|
-
access_key do my_ak_name show /test_nd_ak3
|
|
7096
7269
|
access_key do my_ak_name upload 'faux:///test_nd_ak3?100k' --default-ports=no
|
|
7097
|
-
access_key do self permission %id:
|
|
7270
|
+
access_key do self permission %id:bearer_root_id create @json:'{"access_type":"user","access_id":"666"}'
|
|
7098
7271
|
access_key do self permission / delete 1
|
|
7099
7272
|
access_key do self permission / show 1
|
|
7100
|
-
access_key do self show / --fields=id --output=root_id
|
|
7101
7273
|
access_key list
|
|
7102
7274
|
access_key set_bearer_key self @file:my_private_key
|
|
7103
7275
|
access_key show %id:self
|
|
7104
7276
|
api_details
|
|
7105
7277
|
asperabrowser
|
|
7106
|
-
async bandwidth %name:
|
|
7107
|
-
async counters %name:
|
|
7278
|
+
async bandwidth %name:my_sync_session_name
|
|
7279
|
+
async counters %name:my_sync_session_name
|
|
7108
7280
|
async delete ALL
|
|
7109
|
-
async files %name:
|
|
7110
|
-
async files %name:
|
|
7281
|
+
async files %name:my_sync_session_name
|
|
7282
|
+
async files %name:my_sync_session_name --once-only=yes
|
|
7111
7283
|
async list
|
|
7112
|
-
async show %name:
|
|
7284
|
+
async show %name:my_sync_session_name
|
|
7113
7285
|
async show ALL
|
|
7114
7286
|
basic_token
|
|
7115
|
-
bearer_token @file:my_private_key @json:'{"user_id":"666"}' --output=bearer_666
|
|
7116
7287
|
browse / --log-level=trace2
|
|
7117
7288
|
cat my_upload_folder/test_file.bin
|
|
7118
7289
|
central file list
|
|
@@ -7125,7 +7296,7 @@ health
|
|
|
7125
7296
|
info --fpac='function FindProxyForURL(url,host){return "DIRECT"}'
|
|
7126
7297
|
license
|
|
7127
7298
|
mkdir my_upload_folder/a_folder
|
|
7128
|
-
mkfile my_upload_folder/a_file1
|
|
7299
|
+
mkfile my_upload_folder/a_file1 'hello world'
|
|
7129
7300
|
mklink my_upload_folder/a_folder my_upload_folder/tdlink
|
|
7130
7301
|
rename my_upload_folder a_file1 a_file
|
|
7131
7302
|
search / --query=@json:'{"sort":"mtime"}'
|
|
@@ -7134,6 +7305,7 @@ service delete service1
|
|
|
7134
7305
|
service list
|
|
7135
7306
|
slash
|
|
7136
7307
|
space /
|
|
7308
|
+
spec
|
|
7137
7309
|
ssync bandwidth %name:my_node_sync
|
|
7138
7310
|
ssync counters %name:my_node_sync
|
|
7139
7311
|
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"}}}'
|
|
@@ -7147,21 +7319,20 @@ ssync stop %name:my_node_sync
|
|
|
7147
7319
|
ssync summary %name:my_node_sync
|
|
7148
7320
|
stream list
|
|
7149
7321
|
sync admin status /data/local_sync
|
|
7150
|
-
sync pull /aspera-test-dir-tiny --to-folder=/data/local_sync @json:'{"name":"
|
|
7322
|
+
sync pull /aspera-test-dir-tiny --to-folder=/data/local_sync @json:'{"name":"my_sync_session_name","reset":true}'
|
|
7151
7323
|
sync pull /aspera-test-dir-tiny --to-folder=/data/local_sync @json:'{"reset":true}'
|
|
7152
7324
|
transfer bandwidth_average
|
|
7153
7325
|
transfer cancel nd_xfer_id
|
|
7154
|
-
transfer list --once-only=yes
|
|
7155
|
-
transfer list --query=@json:'{"active_only":true,"count":1}' --fields=id --output=nd_xfer_id
|
|
7156
7326
|
transfer list --query=@json:'{"active_only":true}'
|
|
7157
7327
|
transfer list --query=@json:'{"reset":true}' --once-only=yes
|
|
7158
7328
|
transfer modify nd_xfer_id @json:'{"target_rate_kbps":10000}'
|
|
7159
7329
|
transfer sessions
|
|
7160
7330
|
transfer show nd_xfer_id
|
|
7161
7331
|
transport
|
|
7332
|
+
upload 'faux:///testfile1?1m' --to-folder=my_local_path
|
|
7162
7333
|
upload --to-folder=my_upload_folder --sources=@ts --ts=@json:'{"paths":[{"source":"/aspera-test-dir-small/10MB.2"}],"precalculate_job_size":true}' --transfer=node --transfer-info=@json:'{"url":"https://node.example.com/path@","username":"my_username","password":"my_password_here"}'
|
|
7163
7334
|
upload --username=my_ak_name --password=my_ak_secret test_file.bin
|
|
7164
|
-
upload
|
|
7335
|
+
upload my_mxf my_docx --ts=@json:'{"target_rate_kbps":1000000,"resume_policy":"none"}'
|
|
7165
7336
|
watch_folder list
|
|
7166
7337
|
```
|
|
7167
7338
|
|
|
@@ -7415,8 +7586,8 @@ admin distribution_lists delete %name:test4
|
|
|
7415
7586
|
admin distribution_lists list --query=@json:'{"type":"global"}'
|
|
7416
7587
|
admin email_notifications list
|
|
7417
7588
|
admin email_notifications show welcome_email
|
|
7418
|
-
admin event
|
|
7419
|
-
admin event
|
|
7589
|
+
admin event application --query=@ruby:'{"event_type[]"=>["login_success"],"created_at_start"=>(Time.now.utc-60).strftime("%Y-%m-%dT%H:%M:%S.%LZ")}'
|
|
7590
|
+
admin event webhook
|
|
7420
7591
|
admin jobs list --query=@json:'{"job_type":"email","status":"failed"}' --fields=id,error_desc
|
|
7421
7592
|
admin metadata_profiles list
|
|
7422
7593
|
admin node browse %name:Local
|
|
@@ -7431,7 +7602,7 @@ admin saml_configs list
|
|
|
7431
7602
|
admin shared_inboxes invite %name:my_shared_box_name johnny@example.com
|
|
7432
7603
|
admin shared_inboxes list
|
|
7433
7604
|
admin shared_inboxes list --query=@json:'{"all":true}'
|
|
7434
|
-
admin shared_inboxes members %name:my_shared_box_name create %name:john@example.com
|
|
7605
|
+
admin shared_inboxes members %name:my_shared_box_name create %name:john@example.com submit_only
|
|
7435
7606
|
admin shared_inboxes members %name:my_shared_box_name delete %name:john@example.com
|
|
7436
7607
|
admin shared_inboxes members %name:my_shared_box_name delete %name:johnny@example.com
|
|
7437
7608
|
admin shared_inboxes members %name:my_shared_box_name list
|
|
@@ -7441,33 +7612,34 @@ admin smtp show
|
|
|
7441
7612
|
admin smtp test my_email_external
|
|
7442
7613
|
admin workgroups list
|
|
7443
7614
|
bearer_token
|
|
7444
|
-
gateway
|
|
7615
|
+
gateway @json:'{"url":"https://localhost:12346/aspera/faspex"}'
|
|
7445
7616
|
health --url=https://faspex5.example.com/path
|
|
7446
7617
|
invitation list
|
|
7447
7618
|
invitations create @json:'{"email_address":"aspera.user1+u@gmail.com"}'
|
|
7448
|
-
packages browse
|
|
7449
|
-
packages delete
|
|
7619
|
+
packages browse f5_package_id --query=@json:'{"recursive":true}'
|
|
7620
|
+
packages delete f5_package_id
|
|
7450
7621
|
packages list --box=ALL
|
|
7451
7622
|
packages list --box=my_shared_box_name
|
|
7452
7623
|
packages list --box=my_workgroup --group-type=workgroups
|
|
7453
7624
|
packages list --box=outbox --fields=DEF,sender.email,recipients.0.recipient_type
|
|
7454
7625
|
packages list --query=@json:'{"mailbox":"inbox","status":"completed"}'
|
|
7455
|
-
packages receive --box=my_shared_box_name
|
|
7626
|
+
packages receive --box=my_shared_box_name f5_pack_shboxc --to-folder=.
|
|
7456
7627
|
packages receive --box=my_workgroup --group-type=workgroups workgroup_package_id1 --to-folder=.
|
|
7457
7628
|
packages receive ALL --once-only=yes --to-folder=.
|
|
7458
7629
|
packages receive INIT --once-only=yes
|
|
7459
|
-
packages receive
|
|
7460
|
-
packages send --shared-folder=%name:my_shared_folder_name @json:'{"title":"test title","recipients":["my_email_internal"]}' my_shared_folder_file --fields=id --display=data --output=f5_pack_id
|
|
7630
|
+
packages receive f5_package_id --to-folder=. --ts=@json:'{"content_protection_password":"my_secret_here"}'
|
|
7461
7631
|
packages send --url=my_public_link_send_f5_user @json:'{"title":"test title"}' test_file.bin
|
|
7462
7632
|
packages send --url=my_public_link_send_shared_box @json:'{"title":"test title"}' test_file.bin
|
|
7463
7633
|
packages send @json:'{"title":"test title","recipients":["my_shared_box_name"],"metadata":{"Options":"Opt1","TextInput":"example text"}}' test_file.bin
|
|
7464
7634
|
packages send @json:'{"title":"test title","recipients":["my_workgroup"]}' test_file.bin
|
|
7465
7635
|
packages send @json:'{"title":"test title","recipients":[{"name":"my_username"}]my_meta}' test_file.bin --ts=@json:'{"content_protection_password":"my_secret_here"}'
|
|
7466
|
-
packages
|
|
7636
|
+
packages send @json:'{"title":"test_webhook_ascli","recipients":["my_shared_box_name"]}' 'faux:///test1?1m'
|
|
7637
|
+
packages show --box=my_shared_box_name f5_pack_shboxc
|
|
7467
7638
|
packages show --box=my_workgroup --group-type=workgroups workgroup_package_id1
|
|
7468
|
-
packages show
|
|
7469
|
-
packages status
|
|
7470
|
-
|
|
7639
|
+
packages show f5_package_id
|
|
7640
|
+
packages status f5_p3a @list:,failed,completed
|
|
7641
|
+
packages status f5_package_id
|
|
7642
|
+
postprocessing @json:'{"url":"https://localhost:8553/asclihook","script_folder":"$(TST)","cert":"$(TMP / "localhost.p12")","key":"changeit"}'
|
|
7471
7643
|
shared browse %name:my_src
|
|
7472
7644
|
shared list
|
|
7473
7645
|
shared_folders browse %name:my_shared_folder_name
|
|
@@ -7560,6 +7732,14 @@ If the lookup needs to be only on certain types, you can specify the field: `rec
|
|
|
7560
7732
|
{"title":"test title","recipient_types":"user","recipients":["user1@example.com","user2@example.com"]}
|
|
7561
7733
|
```
|
|
7562
7734
|
|
|
7735
|
+
To enable content protection (CSEAR), set parameter `ear_enabled` to `true` in the package creation payload (refer to Faspex package creation API).
|
|
7736
|
+
|
|
7737
|
+
The following error is returned by Faspex, if CSEAR was not specified in the package creation and if it is configured as mandatory on the server:
|
|
7738
|
+
|
|
7739
|
+
```text
|
|
7740
|
+
the provided encryption value (no) does not match the expected server side encryption value (yes)
|
|
7741
|
+
```
|
|
7742
|
+
|
|
7563
7743
|
### Faspex 5: Send a package with metadata
|
|
7564
7744
|
|
|
7565
7745
|
It's the same as sending a package, but with an extra field `metadata` in the package info.
|
|
@@ -8061,27 +8241,23 @@ ascli faspex packages recv ALL --once-only=yes --lock-port=12345
|
|
|
8061
8241
|
|
|
8062
8242
|
```bash
|
|
8063
8243
|
address_book
|
|
8064
|
-
dropbox list --recipient=
|
|
8244
|
+
dropbox list --recipient='*my_dbx'
|
|
8065
8245
|
health
|
|
8066
8246
|
login_methods
|
|
8067
8247
|
me
|
|
8068
|
-
package list --box=sent --query.max=1 --fields=package_id --display=data --format=csv --output=f4_prs2
|
|
8069
|
-
package list --query.max=1 --fields=package_id --display=data --format=csv --output=f4_prs1
|
|
8070
8248
|
package list --query.max=5
|
|
8071
|
-
package list --recipient="*my_dbx" --format=csv --fields=package_id --query.max=1 --output=f4_db_id1
|
|
8072
|
-
package list --recipient="*my_wkg" --format=csv --fields=package_id --query.max=1 --output=f4_db_id2
|
|
8073
|
-
package receive --to-folder=. --link=https://app.example.com/recv_from_user_path
|
|
8074
8249
|
package receive ALL --once-only=yes --to-folder=. --query=@json:'{"max":10}'
|
|
8075
|
-
package receive
|
|
8076
|
-
package receive
|
|
8077
|
-
package receive
|
|
8078
|
-
package receive
|
|
8079
|
-
package
|
|
8080
|
-
package send --delivery-info=@json:'{"title":"
|
|
8081
|
-
package send --delivery-info=@json:'{"title":"
|
|
8082
|
-
package send --delivery-info=@json:'{"title":"
|
|
8083
|
-
package send --
|
|
8084
|
-
package send --link=https://app.example.com/
|
|
8250
|
+
package receive f4_db1c --recipient='*my_dbx' --to-folder=.
|
|
8251
|
+
package receive f4_db1g --recipient='*my_wkg' --to-folder=.
|
|
8252
|
+
package receive f4_pria --to-folder=.
|
|
8253
|
+
package receive f4_prs --to-folder=.
|
|
8254
|
+
package receive f4_prsc --to-folder=. --box=sent
|
|
8255
|
+
package send --delivery-info=@json:'{"title":"package title","recipients":["my_email_internal","my_username"]}' test_file.bin
|
|
8256
|
+
package send --delivery-info=@json:'{"title":"package title","recipients":["my_email_internal"]}' --remote-source=%name:my_src sample_source.txt
|
|
8257
|
+
package send --delivery-info=@json:'{"title":"package title","recipients":[*my_dbx]}' test_file.bin
|
|
8258
|
+
package send --delivery-info=@json:'{"title":"package title","recipients":[*my_wkg]}' test_file.bin
|
|
8259
|
+
package send --link=https://app.example.com/send_to_dropbox_path --delivery-info=@json:'{"title":"package title"}' test_file.bin
|
|
8260
|
+
package send --link=https://app.example.com/send_to_user_path --delivery-info=@json:'{"title":"package title"}' test_file.bin
|
|
8085
8261
|
source info %name:my_src --storage=@preset:faspex4_storage
|
|
8086
8262
|
source list
|
|
8087
8263
|
source node %name:my_src br / --storage=@preset:faspex4_storage
|
|
@@ -8138,12 +8314,12 @@ ascli shares admin share user_permissions $share_id create @json:'{"user_id":'$u
|
|
|
8138
8314
|
admin group all list
|
|
8139
8315
|
admin node list
|
|
8140
8316
|
admin share list --fields=DEF,-status,status_message
|
|
8141
|
-
admin share user_permissions
|
|
8142
|
-
admin user all app_authorizations
|
|
8143
|
-
admin user all app_authorizations
|
|
8317
|
+
admin share user_permissions %name:my_share list
|
|
8318
|
+
admin user all app_authorizations %username:my_username modify @json:'{"app_login":true}'
|
|
8319
|
+
admin user all app_authorizations %username:my_username show
|
|
8144
8320
|
admin user all list
|
|
8145
|
-
admin user all share_permissions
|
|
8146
|
-
admin user all share_permissions
|
|
8321
|
+
admin user all share_permissions %username:my_username list
|
|
8322
|
+
admin user all share_permissions %username:my_username show %name:my_share
|
|
8147
8323
|
admin user ldap add the_name
|
|
8148
8324
|
admin user local list
|
|
8149
8325
|
admin user saml import @json:'{"id":"the_id","name_id":"the_name"}'
|
|
@@ -8155,10 +8331,10 @@ files download --to-folder=. my_share_folder/test_file.bin my_share_folder/test_
|
|
|
8155
8331
|
files mkdir my_share_folder/new_folder
|
|
8156
8332
|
files sync push /data/local_sync --to-folder=my_share_folder/synctst
|
|
8157
8333
|
files sync push /data/local_sync --to-folder=my_share_folder/synctst @json:'{"reset":true}'
|
|
8158
|
-
files upload
|
|
8159
|
-
files upload --to-folder=my_share_folder sendfolder --transfer=httpgw --transfer-info=@json:'{"url":"https://tst.example.com/path@","synchronous":true,"api_version":"v1","upload_chunk_size":100000}'
|
|
8334
|
+
files upload 'faux:///testfile?1m' --to-folder=my_share_folder --transfer=httpgw --transfer-info=@json:'{"url":"https://tst.example.com/path@","synchronous":true,"api_version":"v1","upload_chunk_size":100000}'
|
|
8160
8335
|
files upload --to-folder=my_share_folder test_file.bin
|
|
8161
8336
|
files upload --to-folder=my_share_folder test_file.bin --transfer=httpgw --transfer-info=@json:'{"url":"https://tst.example.com/path@"}'
|
|
8337
|
+
files upload sendfolder --to-folder=my_share_folder --transfer=httpgw --transfer-info=@json:'{"url":"https://tst.example.com/path@","synchronous":true,"api_version":"v1","upload_chunk_size":100000}'
|
|
8162
8338
|
health
|
|
8163
8339
|
```
|
|
8164
8340
|
|
|
@@ -8186,7 +8362,7 @@ transfer current list --query.filter='(transfer_name contain aoc)'
|
|
|
8186
8362
|
transfer current list --query=@json:'{"filter1":"transfer_name","comp1":"contain","val1":"aoc"}'
|
|
8187
8363
|
transfer current show console_xfer_id
|
|
8188
8364
|
transfer smart list
|
|
8189
|
-
transfer smart sub my_smart_id
|
|
8365
|
+
transfer smart sub my_smart_id @: source.paths.0=my_smart_file source_type=user_selected
|
|
8190
8366
|
```
|
|
8191
8367
|
|
|
8192
8368
|
## Plugin: `orchestrator`:IBM Aspera Orchestrator
|
|
@@ -8213,17 +8389,22 @@ workflow status my_workflow_id
|
|
|
8213
8389
|
|
|
8214
8390
|
## Plugin: `cos`: IBM Cloud Object Storage
|
|
8215
8391
|
|
|
8216
|
-
|
|
8217
|
-
|
|
8218
|
-
|
|
8392
|
+
IBM Cloud Object Storage supports high-speed transfers using the FASP protocol.
|
|
8393
|
+
These transfers leverage the same service used by Aspera on Cloud, called the Aspera Transfer Service (ATS).
|
|
8394
|
+
You can check the list of available ATS regions here: <https://status.aspera.io>.
|
|
8395
|
+
There are two ways to provide credentials:
|
|
8396
|
+
|
|
8397
|
+
- Using existing credentials
|
|
8219
8398
|
|
|
8220
|
-
|
|
8221
|
-
|
|
8222
|
-
|
|
8399
|
+
If you already have the endpoint, API key, and Resource Instance ID (CRN), use this method.
|
|
8400
|
+
|
|
8401
|
+
- Using IBM Cloud Console access
|
|
8402
|
+
|
|
8403
|
+
If you do not have credentials but have access to the IBM Cloud Console, use this alternative method.
|
|
8223
8404
|
|
|
8224
8405
|
### Using endpoint, API key and Resource Instance ID (CRN)
|
|
8225
8406
|
|
|
8226
|
-
If you have
|
|
8407
|
+
If you already have these parameters, provide the following options to `ascli`:
|
|
8227
8408
|
|
|
8228
8409
|
| Option | Description |
|
|
8229
8410
|
|------------|---------------------------------------------------|
|
|
@@ -8232,20 +8413,21 @@ If you have those parameters already, then following options shall be provided:
|
|
|
8232
8413
|
| `apikey` | API Key |
|
|
8233
8414
|
| `crn` | Resource instance ID |
|
|
8234
8415
|
|
|
8235
|
-
|
|
8416
|
+
Example: Create a Default Configuration
|
|
8236
8417
|
|
|
8237
8418
|
```shell
|
|
8238
8419
|
ascli config preset update mycos --bucket=mybucket --endpoint=https://s3.us-east.cloud-object-storage.appdomain.cloud --apikey=abcdefgh --crn=crn:v1:bluemix:public:iam-identity::a/xxxxxxx
|
|
8239
8420
|
ascli config preset set default cos mycos
|
|
8240
8421
|
```
|
|
8241
8422
|
|
|
8242
|
-
|
|
8423
|
+
Once configured, proceed to the [transfer example](#operations-transfers).
|
|
8243
8424
|
|
|
8244
8425
|
### Using service credential file
|
|
8245
8426
|
|
|
8246
|
-
If you are the COS administrator and
|
|
8247
|
-
|
|
8248
|
-
|
|
8427
|
+
If you are the COS administrator and do not yet have credentials,
|
|
8428
|
+
you can create them directly from the IBM Cloud Console (Web UI):
|
|
8429
|
+
|
|
8430
|
+
Steps:
|
|
8249
8431
|
|
|
8250
8432
|
- → Navigation Menu
|
|
8251
8433
|
- → [Resource List](https://cloud.ibm.com/resources)
|
|
@@ -8255,7 +8437,7 @@ Navigate to:
|
|
|
8255
8437
|
- → New credentials (Leave default role: Writer, no special options)
|
|
8256
8438
|
- → Copy to clipboard
|
|
8257
8439
|
|
|
8258
|
-
|
|
8440
|
+
Save the copied JSON value to a file, for example: `$HOME/cos_service_creds.json`
|
|
8259
8441
|
|
|
8260
8442
|
or using the IBM Cloud CLI:
|
|
8261
8443
|
|
|
@@ -8264,9 +8446,10 @@ ibmcloud resource service-keys
|
|
|
8264
8446
|
ibmcloud resource service-key _service_key_name_here_ --output JSON|jq '.[0].credentials'>$HOME/service_creds.json
|
|
8265
8447
|
```
|
|
8266
8448
|
|
|
8267
|
-
|
|
8449
|
+
> [!NOTE]
|
|
8450
|
+
> If `jq` is not installed, you can manually extract the credentials section from the JSON output.
|
|
8268
8451
|
|
|
8269
|
-
|
|
8452
|
+
The service credential file consists of the following structure:
|
|
8270
8453
|
|
|
8271
8454
|
```json
|
|
8272
8455
|
{
|
|
@@ -8284,33 +8467,32 @@ It consists in the following structure:
|
|
|
8284
8467
|
}
|
|
8285
8468
|
```
|
|
8286
8469
|
|
|
8287
|
-
The field
|
|
8470
|
+
The field mappings are as follows:
|
|
8288
8471
|
|
|
8289
|
-
|
|
8472
|
+
- `resource_instance_id` → option `crn`
|
|
8473
|
+
- `apikey` → option `apikey`
|
|
8290
8474
|
|
|
8291
8475
|
> [!NOTE]
|
|
8292
|
-
> Endpoints for regions can be found by querying the `endpoints` URL
|
|
8476
|
+
> Endpoints for regions can be found by querying the `endpoints` URL in the JSON file or from the IBM Cloud Console.
|
|
8293
8477
|
|
|
8294
8478
|
The required options for this method are:
|
|
8295
8479
|
|
|
8296
|
-
| Option | Description
|
|
8480
|
+
| Option | Description |
|
|
8297
8481
|
|-----------------------|------------------------------------------------|
|
|
8298
|
-
| `bucket` | Bucket name
|
|
8299
|
-
| `region` | Bucket region<br/>e.g. `eu-de`
|
|
8482
|
+
| `bucket` | Bucket name |
|
|
8483
|
+
| `region` | Bucket region<br/>e.g. `eu-de` |
|
|
8300
8484
|
| `service_credentials` | JSON information saved from IBM Cloud console. |
|
|
8301
8485
|
|
|
8302
|
-
|
|
8486
|
+
Example: Create a Default Configuration
|
|
8303
8487
|
|
|
8304
8488
|
```shell
|
|
8305
|
-
ascli config preset update mycos --bucket=
|
|
8489
|
+
ascli config preset update mycos --bucket=mybucket --service-credentials=@val:@json:@file:~/service_creds.json --region=us-south
|
|
8306
8490
|
ascli config preset set default cos mycos
|
|
8307
8491
|
```
|
|
8308
8492
|
|
|
8309
8493
|
### Operations, transfers
|
|
8310
8494
|
|
|
8311
|
-
|
|
8312
|
-
|
|
8313
|
-
A subset of `node` plugin operations are supported, basically Node API:
|
|
8495
|
+
Once you have created a default configuration using one of the previous methods (otherwise, specify the access options directly on the command line), you can perform a subset of `node` plugin operations, which correspond to the Node API.
|
|
8314
8496
|
|
|
8315
8497
|
```shell
|
|
8316
8498
|
ascli cos node info
|
|
@@ -8318,7 +8500,8 @@ ascli cos node upload 'faux:///sample1G?1g'
|
|
|
8318
8500
|
```
|
|
8319
8501
|
|
|
8320
8502
|
> [!NOTE]
|
|
8321
|
-
>
|
|
8503
|
+
> The file `sample1G` is a dummy file of size 2 GB, generated using the `faux` PVCL scheme (see previous section and `man ascp`).
|
|
8504
|
+
> To upload a real file, simply replace the `faux:///...` URI with the actual file path.
|
|
8322
8505
|
|
|
8323
8506
|
### Tested commands for `cos`
|
|
8324
8507
|
|
|
@@ -8347,6 +8530,10 @@ info
|
|
|
8347
8530
|
|
|
8348
8531
|
## Plugin: `faspio`: Faspio Gateway
|
|
8349
8532
|
|
|
8533
|
+
IBM Aspera faspio Gateway is a high-performance proxy that bridges traditional TCP/UDP applications with the Aspera FASP protocol, enabling secure, ultra-fast transfers over any network, even with high latency or packet loss.
|
|
8534
|
+
It integrates seamlessly into existing workflows and supports use cases such as server-to-server transfers, database replication, and messaging systems.
|
|
8535
|
+
Using `ascli`, you can remotely create and manage bridges on faspio Gateway, simplifying configuration and automation.
|
|
8536
|
+
|
|
8350
8537
|
### Tested commands for `faspio`
|
|
8351
8538
|
|
|
8352
8539
|
> [!NOTE]
|
|
@@ -8354,7 +8541,7 @@ info
|
|
|
8354
8541
|
|
|
8355
8542
|
```bash
|
|
8356
8543
|
bridges create @json:'{"name":"test1","local":{"protocol":"tcp","tls_enabled":false,"port":"3000","bind_address":"127.0.0.1"},"forward":{"protocol":"fasp","tls_enabled":false,"port":"3994","bind_address":"127.0.0.1","host":["10.0.0.1"]}}'
|
|
8357
|
-
bridges delete --bulk=yes @json
|
|
8544
|
+
bridges delete --bulk=yes @json:faspio_bclean_list
|
|
8358
8545
|
bridges list
|
|
8359
8546
|
health
|
|
8360
8547
|
```
|
|
@@ -8370,20 +8557,34 @@ Retrieve information on subscription.
|
|
|
8370
8557
|
|
|
8371
8558
|
```bash
|
|
8372
8559
|
entitlement
|
|
8373
|
-
health
|
|
8560
|
+
health
|
|
8374
8561
|
```
|
|
8375
8562
|
|
|
8376
8563
|
## Plugin: `preview`: Preview generator for AoC
|
|
8377
8564
|
|
|
8378
|
-
The `preview`
|
|
8379
|
-
|
|
8380
|
-
Several options can be used to tune several aspects:
|
|
8565
|
+
The `preview` plugin is responsible for generating thumbnails (Office documents, images, videos) and video previews on storage, primarily for use within the Aspera on Cloud (AoC) application.
|
|
8566
|
+
This plugin leverages the **Node API** of Aspera HSTS and requires:
|
|
8381
8567
|
|
|
8382
|
-
-
|
|
8383
|
-
-
|
|
8384
|
-
- Parameters for video handling
|
|
8568
|
+
- An Access Key
|
|
8569
|
+
- The associated **storage root**
|
|
8385
8570
|
|
|
8386
|
-
|
|
8571
|
+
### Key Features and Options
|
|
8572
|
+
|
|
8573
|
+
You can configure several aspects of the preview generation process:
|
|
8574
|
+
|
|
8575
|
+
- File Detection Methods
|
|
8576
|
+
|
|
8577
|
+
Define how new files requiring previews are identified.
|
|
8578
|
+
|
|
8579
|
+
- Video Preview Generation Methods
|
|
8580
|
+
|
|
8581
|
+
Choose the approach for creating video previews (e.g., transcoding options).
|
|
8582
|
+
|
|
8583
|
+
- Video Handling Parameters
|
|
8584
|
+
|
|
8585
|
+
Fine-tune video processing, such as resolution, bitrate, and format.
|
|
8586
|
+
|
|
8587
|
+
Using `ascli` is an alternative to <https://github.com/IBM/aspera-on-cloud-file-previews>.
|
|
8387
8588
|
|
|
8388
8589
|
### Aspera Server configuration
|
|
8389
8590
|
|
|
@@ -8708,7 +8909,7 @@ If the preview generator does not have access to files on the file system (it is
|
|
|
8708
8909
|
check --skip-types=office
|
|
8709
8910
|
events --once-only=yes --skip-types=office --log-level=info
|
|
8710
8911
|
scan --scan-id=1 --skip-types=office --log-level=info --file-access=remote --ts=@json:'{"target_rate_kbps":1000000}'
|
|
8711
|
-
scan --skip-types=office --log-level=info
|
|
8912
|
+
scan --skip-types=office --log-level=info --skip-folder=/special/folder
|
|
8712
8913
|
show --base=test /etc/hosts
|
|
8713
8914
|
show --base=test my_docx
|
|
8714
8915
|
show --base=test my_mpg --video-png-conv=animated
|
|
@@ -8752,6 +8953,12 @@ Some `sync` parameters are filled by the related plugin using transfer spec para
|
|
|
8752
8953
|
To start a sync session, use one of the three sync directions followed by a folder path (remote path for `pull`, local path otherwise).
|
|
8753
8954
|
The path on the other side is specified using option: `to_folder`.
|
|
8754
8955
|
|
|
8956
|
+
The general syntax is:
|
|
8957
|
+
|
|
8958
|
+
```shell
|
|
8959
|
+
ascli ... sync <direction> <path> [<sync_info>] [--to-folder=<path>]
|
|
8960
|
+
```
|
|
8961
|
+
|
|
8755
8962
|
| Direction<br/>(parameter) | Path<br/>(parameter) | `to_folder`<br/>(option) |
|
|
8756
8963
|
|-----------|--------|-------------|
|
|
8757
8964
|
| `push` | Local | Remote |
|
|
@@ -8762,6 +8969,11 @@ An optional positional `Hash` argument (`sync_info`) can be provided in either `
|
|
|
8762
8969
|
|
|
8763
8970
|
A single session can be specified using either formats.
|
|
8764
8971
|
|
|
8972
|
+
If argument `<sync_info>` is not provided, then a default configuration is generated in the `conf` format as specified in the next sectin.
|
|
8973
|
+
|
|
8974
|
+
If argument `<sync_info>` is provided, it defines the format to use.
|
|
8975
|
+
If parameter `sessions` or `instance` is present, then `args` is used, else `conf` is used.
|
|
8976
|
+
|
|
8765
8977
|
#### `sync_info`: `conf` format
|
|
8766
8978
|
|
|
8767
8979
|
This is the **preferred** syntax.
|
|
@@ -8769,138 +8981,155 @@ It is the same payload as specified on the `async` option `--conf` or in Node AP
|
|
|
8769
8981
|
|
|
8770
8982
|
Documentation on Async Node API can be found on [IBM Developer Portal](https://developer.ibm.com/apis/catalog?search=%22aspera%20sync%20api%22).
|
|
8771
8983
|
|
|
8772
|
-
|
|
8984
|
+
The following parameters are automatically filled from mandatory arguments, and are not allowed:
|
|
8985
|
+
|
|
8986
|
+
- `direction`
|
|
8987
|
+
- `local.path`
|
|
8988
|
+
- `remote.path`
|
|
8989
|
+
|
|
8990
|
+
Parameter `name` is set to a default value if not provided in `sync_info`.
|
|
8991
|
+
Parameter `quiet` is set to `false` if not provided in `sync_info` and a terminal is detected.
|
|
8992
|
+
|
|
8993
|
+
The documentation is available in the terminal with:
|
|
8994
|
+
|
|
8995
|
+
```shell
|
|
8996
|
+
ascli config sync spec
|
|
8997
|
+
```
|
|
8773
8998
|
|
|
8774
8999
|
| Field | Type | Description |
|
|
8775
|
-
|
|
9000
|
+
|------------------------------------------|---------|----------------------------------------------------------------------------------|
|
|
8776
9001
|
| ascp_dir | string | Directory containing ascp executable to use. |
|
|
8777
|
-
| assume_no_mods | boolean | Assume that the directory structure has not been modified.<br/>(`--assume-no-mods
|
|
8778
|
-
| checksum | string | Use the specified checksum type. Default is none on cloud storage.<br/>Allowed values: `sha1`, `md5`, `sha1_sparse`, `md5_sparse`, `none` |
|
|
8779
|
-
| clean_excluded | boolean | Removes any existing entries in the snapshot database for excluded paths |
|
|
8780
|
-
| cookie | string | User-defined identification string
|
|
9002
|
+
| assume_no_mods | boolean | Assume that the directory structure has not been modified.<br/>(`--assume-no-mods`) |
|
|
9003
|
+
| checksum | string | Use the specified checksum type. Default is none on cloud storage.<br/>Allowed values: `sha1`, `md5`, `sha1_sparse`, `md5_sparse`, `none`<br/>(`--checksum={enum}`)(-k) |
|
|
9004
|
+
| clean_excluded | boolean | Removes any existing entries in the snapshot database for excluded paths<br/>(`--clean-excluded`) |
|
|
9005
|
+
| cookie | string | User-defined identification string.<br/>(`--cookie={string}`) |
|
|
8781
9006
|
| cooloff_max_seconds | integer | Wait up to the specified time for a file to stop changing before skipping synchronization of the file. 0 for disabled<br/>(`--cooloff-max={integer}`) |
|
|
8782
9007
|
| cooloff_seconds | integer | Delay the start of the transfer to confirm that the content is not changing. Value must be between 0 and 60<br/>(`--cooloff={integer}`) |
|
|
8783
|
-
| create_dir | boolean | Create the source directory, target directory, or both, if they do not exist
|
|
9008
|
+
| create_dir | boolean | Create the source directory, target directory, or both, if they do not exist.<br/>(`--create-dir`) |
|
|
8784
9009
|
| db_cache_size | integer | Specify DB cache size. |
|
|
8785
9010
|
| db_journal_off | boolean | Turn off DB journal. |
|
|
8786
9011
|
| db_sync_on | boolean | Enable synchronous write in DB. |
|
|
8787
|
-
| dedup | string | Take the specified action when async detects duplicate files on the source.<br/>Allowed values: `copy`, `inode`, `hardlink`, `none` |
|
|
8788
|
-
| delete_before | boolean | Schedule deletes before transfers
|
|
8789
|
-
| delete_delay | boolean | Delay actual deletes until the end of the synchronization
|
|
8790
|
-
| direction | string | The direction of replication relative to the local.<br/>Allowed values: `bidi`, `pull`, `push` |
|
|
9012
|
+
| dedup | string | Take the specified action when async detects duplicate files on the source.<br/>Allowed values: `copy`, `inode`, `hardlink`, `none`<br/>(`--dedup={enum}`) |
|
|
9013
|
+
| delete_before | boolean | Schedule deletes before transfers.<br/>(`--delete-before`) |
|
|
9014
|
+
| delete_delay | boolean | Delay actual deletes until the end of the synchronization.<br/>(`--delete-delay`) |
|
|
9015
|
+
| direction | string | The direction of replication relative to the local.<br/>Allowed values: `bidi`, `pull`, `push`<br/>(`--direction={enum}`)(-K) |
|
|
8791
9016
|
| exclude_dirs_older_than | object | Don't scan directories with a recursive modified time older than absolute or async start time - relative_seconds |
|
|
8792
9017
|
| exclude_dirs_older_than.absolute | string | UTC timestamp. Empty value for disabled. |
|
|
8793
9018
|
| exclude_dirs_older_than.relative_seconds | integer | Relative to async start time. `-1` for disabled. |
|
|
8794
9019
|
| filters | array | The filters allow to further specify which files have to be excluded and included from the transfer list. Each filter is defined by a rule and a value. Order of filters matters |
|
|
8795
|
-
|
|
|
8796
|
-
|
|
|
9020
|
+
| filters[].rule | string | The rule for the filter.<br/>Allowed values: `include`, `exclude`, `include_from`, `exclude_from` |
|
|
9021
|
+
| filters[].value | string | On include or exclude, the filter's pattern. On include_from or exclude_from, the path containing filter specifications |
|
|
9022
|
+
| ignore_delete | boolean | Do not copy removals to the peer.<br/>(`--ignore-delete`) |
|
|
9023
|
+
| ignore_mode | boolean | Source files that have had their mode changed after the initial. transfer will not update the destination file mode.<br/>(`--ignore-mode`) |
|
|
8797
9024
|
| ignore_remote_host_sync_name | boolean | Do not check that the remote host being used for the current. transfer matches the host used when the local database was created |
|
|
8798
9025
|
| local | object | |
|
|
8799
9026
|
| local.pass | string | Authenticate the local async with the specified password. |
|
|
8800
|
-
| local.path | string | The directory to be synchronized on the local host.<br/>(`--local-dir={string}`) |
|
|
8801
|
-
| local_apply_docroot | boolean | Prepend the docroot to the directory on the local host.<br/>(`--apply-local-docroot
|
|
8802
|
-
| local_checksum_threads | integer | Maximum number of threads to do checksum on the local host. Value must be between 1 and 99
|
|
8803
|
-
| local_db_dir | string | Use the specified database directory on the local host. Default is `.private-asp` at the root level of the synchronized directory.<br/>(`--local-db-dir={string}`) |
|
|
8804
|
-
| local_db_store_dir | string | Store/Restore the database to/from the specified directory on the local host. The value can be an absolute path, an URI or - (use the local sync dir) |
|
|
8805
|
-
| local_force_stat | boolean | Forces the local async to retrieve file information even when no changes are detected by the scanner or monitor
|
|
8806
|
-
| local_fs_threads | integer | Maximum number of threads to do file system operations on the local host. Value must be between 1 and 99
|
|
8807
|
-
| local_keep_dir | string | Move deleted files into the specified directory on the local host
|
|
8808
|
-
| local_mount_signature | string | Verify that the file system is mounted by the existence of this file on the local host
|
|
8809
|
-
| local_move_cache_timeout_seconds | integer | Delay in seconds before aborting moving a file from local cache to final destination. `-1` for disabled
|
|
8810
|
-
| local_preserve_acls | string | Preserve access control lists on the local host.<br/>Allowed values: `native`, `metafile`, `none` |
|
|
8811
|
-
| local_preserve_xattrs | string | Preserve extended attributes on the local.<br/>Allowed values: `native`, `metafile`, `none` |
|
|
8812
|
-
| local_scan_interval_milliseconds | integer | Enable periodic scans on the local host during a continuous sync. `-1` for disabled |
|
|
8813
|
-
| local_scan_threads | integer | Number of directory scanning threads on the local host. Value must be between 1 and 99 |
|
|
9027
|
+
| local.path | string | The directory to be synchronized on the local host.<br/>(`--local-dir={string}`)(-d) |
|
|
9028
|
+
| local_apply_docroot | boolean | Prepend the docroot to the directory on the local host.<br/>(`--apply-local-docroot`) |
|
|
9029
|
+
| local_checksum_threads | integer | Maximum number of threads to do checksum on the local host. Value must be between 1 and 99.<br/>(`--local-checksum-threads={integer}`) |
|
|
9030
|
+
| local_db_dir | string | Use the specified database directory on the local host. Default is `.private-asp` at the root level of the synchronized directory.<br/>(`--local-db-dir={string}`)(-b) |
|
|
9031
|
+
| local_db_store_dir | string | Store/Restore the database to/from the specified directory on the local host. The value can be an absolute path, an URI or - (use the local sync dir)<br/>(`--local-db-store-dir={string}`) |
|
|
9032
|
+
| local_force_stat | boolean | Forces the local async to retrieve file information even when no changes are detected by the scanner or monitor.<br/>(`--local-force-stat`) |
|
|
9033
|
+
| local_fs_threads | integer | Maximum number of threads to do file system operations on the local host. Value must be between 1 and 99.<br/>(`--local-fs-threads={integer}`) |
|
|
9034
|
+
| local_keep_dir | string | Move deleted files into the specified directory on the local host.<br/>(`--keep-dir-local={string}`) |
|
|
9035
|
+
| local_mount_signature | string | Verify that the file system is mounted by the existence of this file on the local host.<br/>(`--local-mount-signature={string}`) |
|
|
9036
|
+
| local_move_cache_timeout_seconds | integer | Delay in seconds before aborting moving a file from local cache to final destination. `-1` for disabled.<br/>(`--local-move-cache-timeout={integer}`) |
|
|
9037
|
+
| local_preserve_acls | string | Preserve access control lists on the local host.<br/>Allowed values: `native`, `metafile`, `none`<br/>(`--preserve-acls={enum}`) |
|
|
9038
|
+
| local_preserve_xattrs | string | Preserve extended attributes on the local.<br/>Allowed values: `native`, `metafile`, `none`<br/>(`--preserve-xattrs={enum}`) |
|
|
9039
|
+
| local_scan_interval_milliseconds | integer | Enable periodic scans on the local host during a continuous sync. `-1` for disabled<br/>(`--scan-interval={integer}`) |
|
|
9040
|
+
| local_scan_threads | integer | Number of directory scanning threads on the local host. Value must be between 1 and 99<br/>(`--scan-threads={integer}`) |
|
|
8814
9041
|
| local_stat_cache_size | integer | Set stat cache size on the local host. 0 for disabled. |
|
|
8815
9042
|
| log | object | |
|
|
8816
|
-
| log.level |
|
|
8817
|
-
| log.local_dir | string | Use the specified logging directory on the local host.<br/>(`--alt-logdir={string}`) |
|
|
8818
|
-
| log.remote_dir | string | Use the specified logging directory on the remote host
|
|
9043
|
+
| log.level | string | Use the specified log level.<br/>Allowed values: `log`, `dbg1`, `dbg2`<br/>(special:`-D`) |
|
|
9044
|
+
| log.local_dir | string | Use the specified logging directory on the local host.<br/>(`--alt-logdir={string}`)(-L) |
|
|
9045
|
+
| log.remote_dir | string | Use the specified logging directory on the remote host.<br/>(`--remote-logdir={string}`)(-R) |
|
|
8819
9046
|
| manifest_path | string | A directory path where ascp will create manifest TEXT files (passed to ascp as --file-manifest-path) |
|
|
8820
9047
|
| mirror | boolean | Force the pulling side to be exactly like the pushing side, removing files on the destination that don't exist on the source and resending source files that don't have an exact match on the destination. Cannot be used in bi-directional mode.<br/>(`--mirror`) |
|
|
8821
|
-
| mode | string | Specify whether async runs continuously or not. In one_time mode, async stops after the first full synchronization.<br/>Allowed values: `one_time`, `continuous`<br/>(special:`--continuous
|
|
9048
|
+
| mode | string | Specify whether async runs continuously or not. In `one_time` mode, async stops after the first full synchronization. `continuous` supported only if the source is Windows or Linux.<br/>Allowed values: `one_time`, `continuous`<br/>(special:`--continuous`)(-C) |
|
|
8822
9049
|
| monitor_buffer_size | integer | Bytes to allocate for the change monitor buffer. Applies to any Windows machine on either side. `-1` to use the computed value. |
|
|
8823
|
-
| name | string | Name of the synchronization pair.<br/>(`--name={string}`) |
|
|
8824
|
-
| no_log | string | Suppress log messages for ITEM. The only currently supported ITEM is 'stats', which suppresses both STATS and PROG log messages
|
|
8825
|
-
| no_preserve_root_attrs | boolean | Disable the preservation of attributes on the Sync root
|
|
8826
|
-
| no_scan | boolean | Skip initial scanning
|
|
9050
|
+
| name | string | Name of the synchronization pair.<br/>(`--name={string}`)(-N) |
|
|
9051
|
+
| no_log | string | Suppress log messages for ITEM. The only currently supported ITEM is 'stats', which suppresses both STATS and PROG log messages.<br/>(`--no-log={string}`) |
|
|
9052
|
+
| no_preserve_root_attrs | boolean | Disable the preservation of attributes on the Sync root.<br/>(`--no-preserve-root-attrs`) |
|
|
9053
|
+
| no_scan | boolean | Skip initial scanning.<br/>(`--no-scan`) |
|
|
8827
9054
|
| notifications_sharing_retry_max | integer | Retry processing filesystem notifications up to the specified maximum number after a sharing violation. |
|
|
8828
|
-
| overwrite | string | Overwrite files according to the specified policy. Default is determined by the direction: conflict for bidi
|
|
8829
|
-
| pending_max | integer | Allow the maximum number of files that are pending transfer to be no more than the specified number
|
|
8830
|
-
| preserve_access_time | boolean | Preserve file access time from the source to the destination
|
|
8831
|
-
| preserve_creation_time | boolean | Preserve file creation time from the source to the destination
|
|
8832
|
-
| preserve_gid | boolean | Preserve the file owner's GID
|
|
8833
|
-
| preserve_modification_time | boolean | Preserve file modification time from the source to the destination
|
|
8834
|
-
| preserve_object_lock_legal_hold | boolean | Preserve object lock legal hold status from the source to the destination
|
|
8835
|
-
| preserve_object_lock_retention | boolean | Preserve object lock retention from the source to the destination
|
|
8836
|
-
| preserve_object_metadata | boolean | Preserve object metadata from the source to the destination
|
|
8837
|
-
| preserve_uid | boolean | Preserve the file owner's UID
|
|
8838
|
-
| quiet | boolean | Disable progress display
|
|
9055
|
+
| overwrite | string | Overwrite files according to the specified policy. Default is determined by the direction: `conflict` for `bidi`, otherwise `always`.<br/>Allowed values: `always`, `older`, `conflict`<br/>(`--overwrite={enum}`)(-o) |
|
|
9056
|
+
| pending_max | integer | Allow the maximum number of files that are pending transfer to be no more than the specified number.<br/>(`--pending-max={integer}`) |
|
|
9057
|
+
| preserve_access_time | boolean | Preserve file access time from the source to the destination.<br/>(`--preserve-access-time`) |
|
|
9058
|
+
| preserve_creation_time | boolean | Preserve file creation time from the source to the destination.<br/>(`--preserve-creation-time`) |
|
|
9059
|
+
| preserve_gid | boolean | Preserve the file owner's GID.<br/>(`--preserve-gid`)(-j) |
|
|
9060
|
+
| preserve_modification_time | boolean | Preserve file modification time from the source to the destination.<br/>(`--preserve-modification-time`) |
|
|
9061
|
+
| preserve_object_lock_legal_hold | boolean | Preserve object lock legal hold status from the source to the destination.<br/>(`--preserve-object-lock-legal-hold`) |
|
|
9062
|
+
| preserve_object_lock_retention | boolean | Preserve object lock retention from the source to the destination.<br/>(`--preserve-object-lock-retention`) |
|
|
9063
|
+
| preserve_object_metadata | boolean | Preserve object metadata from the source to the destination.<br/>(`--preserve-object-metadata`) |
|
|
9064
|
+
| preserve_uid | boolean | Preserve the file owner's UID.<br/>(`--preserve-uid`)(-u) |
|
|
9065
|
+
| quiet | boolean | Disable progress display.<br/>(`--quiet`)(-q) |
|
|
8839
9066
|
| remote | object | |
|
|
8840
|
-
| remote.connect_mode |
|
|
9067
|
+
| remote.connect_mode | string | Define how to connect to the remote.<br/>Allowed values: `ssh`, `ws`<br/>(special:`--ws-connect`) |
|
|
8841
9068
|
| remote.fingerprint | string | Check it against server SSH host key fingerprint. |
|
|
8842
|
-
| remote.host | string | Use the specified host name or address of the remote host
|
|
8843
|
-
| remote.pass | string | Authenticate the transfer with the specified password
|
|
8844
|
-
| remote.path | string | Synchronize the specified directory on the remote host
|
|
8845
|
-
| remote.port | integer | Use the specified TCP port for SSH. Used when connect_mode is `ssh` |
|
|
8846
|
-
| remote.private_key_paths | array | Authenticate with the specified SSH private key file
|
|
8847
|
-
| remote.proxy | object | Specify the address of the Aspera high-speed proxy server
|
|
9069
|
+
| remote.host | string | Use the specified host name or address of the remote host.<br/>(`--host={string}`) |
|
|
9070
|
+
| remote.pass | string | Authenticate the transfer with the specified password.<br/>(`--pass={string}`)(-w) |
|
|
9071
|
+
| remote.path | string | Synchronize the specified directory on the remote host.<br/>(`--remote-dir={string}`)(-r) |
|
|
9072
|
+
| remote.port | integer | Use the specified TCP port for SSH. Used when connect_mode is `ssh`<br/>(`--tcp-port={integer}`)(-P) |
|
|
9073
|
+
| remote.private_key_paths | array | Authenticate with the specified SSH private key file.<br/>(`--private-key-path={array}`)(-i) |
|
|
9074
|
+
| remote.proxy | object | Specify the address of the Aspera high-speed proxy server.<br/>(special:`--proxy={object}`) |
|
|
8848
9075
|
| remote.proxy.host | string | Use the specified host name or address of the proxy. |
|
|
8849
9076
|
| remote.proxy.pass | string | Authenticate to the proxy with the specified password. |
|
|
8850
9077
|
| remote.proxy.port | integer | Use the specified port, default is 9091 for dnat, 9092. for dnats |
|
|
8851
|
-
| remote.proxy.protocol |
|
|
9078
|
+
| remote.proxy.protocol | string | The protocol to be used.<br/>Allowed values: `none`, `dnat`, `dnats` |
|
|
8852
9079
|
| remote.proxy.user | string | Authenticate to the proxy with the specified username. |
|
|
8853
9080
|
| remote.token | string | Token string passed to server's authentication service. |
|
|
8854
9081
|
| remote.token_node_user | string | Node API user identity associated with the token. Required for node user bearer tokens |
|
|
8855
|
-
| remote.user | string | Authenticate the transfer with the specified username
|
|
9082
|
+
| remote.user | string | Authenticate the transfer with the specified username.<br/>(`--user={string}`) |
|
|
8856
9083
|
| remote.ws_port | integer | Use the specified port for Websocket. Used when connect_mode is `ws`. |
|
|
8857
|
-
| remote_checksum_threads | integer | Maximum number of threads to do checksum on the remote host. Value must be between 1 and 99 |
|
|
8858
|
-
| remote_db_dir | string | Use the specified database directory on the remote host. Default is `.private-asp` at the root level of the synchronized directory
|
|
8859
|
-
| remote_db_store_dir | string | Store/Restore the database to/from the specified directory on the remote host. The value can be an absolute path, an URI or - (use the remote sync dir)
|
|
8860
|
-
| remote_force_stat | boolean | Forces the remote async to retrieve file information even when no changes are detected by the scanner or monitor
|
|
8861
|
-
| remote_fs_threads | integer | Maximum number of threads to do file system operations on the remote host. Value must be between 1 and 99
|
|
8862
|
-
| remote_keep_dir | string | Move deleted files into the specified directory on the remote host
|
|
8863
|
-
| remote_mount_signature | string | Verify that the file system is mounted by the existence of this file on the remote host
|
|
8864
|
-
| remote_move_cache_timeout_seconds | integer | Delay in seconds before aborting moving a file from remote cache to final destination. `-1` for disabled
|
|
8865
|
-
| remote_preserve_acls | string | Preserve access control lists on the remote host. If not specified, the default behavior is to use the same storage mode as specified by `preserve_acls`.<br/>Allowed values: `native`, `metafile`, `none` |
|
|
8866
|
-
| remote_preserve_xattrs | string | Preserve extended attributes on the remote host. If not specified, the default behavior is to use the same storage mode as specified by `preserve_xattrs`.<br/>Allowed values: `native`, `metafile`, `none` |
|
|
8867
|
-
| remote_scan_interval_milliseconds | integer | Enable periodic scans on the remote host. `-1` for disabled
|
|
8868
|
-
| remote_scan_threads | integer | Number of directory scanning threads on the remote host. Value must be between 1 and 99
|
|
9084
|
+
| remote_checksum_threads | integer | Maximum number of threads to do checksum on the remote host. Value must be between 1 and 99<br/>(`--remote-checksum-threads={integer}`) |
|
|
9085
|
+
| remote_db_dir | string | Use the specified database directory on the remote host. Default is `.private-asp` at the root level of the synchronized directory.<br/>(`--remote-db-dir={string}`)(-B) |
|
|
9086
|
+
| remote_db_store_dir | string | Store/Restore the database to/from the specified directory on the remote host. The value can be an absolute path, an URI or - (use the remote sync dir).<br/>(`--remote-db-store-dir={string}`) |
|
|
9087
|
+
| remote_force_stat | boolean | Forces the remote async to retrieve file information even when no changes are detected by the scanner or monitor.<br/>(`--remote-force-stat`) |
|
|
9088
|
+
| remote_fs_threads | integer | Maximum number of threads to do file system operations on the remote host. Value must be between 1 and 99.<br/>(`--remote-fs-threads={integer}`) |
|
|
9089
|
+
| remote_keep_dir | string | Move deleted files into the specified directory on the remote host.<br/>(`--keep-dir-remote={string}`) |
|
|
9090
|
+
| remote_mount_signature | string | Verify that the file system is mounted by the existence of this file on the remote host.<br/>(`--remote-mount-signature={string}`) |
|
|
9091
|
+
| remote_move_cache_timeout_seconds | integer | Delay in seconds before aborting moving a file from remote cache to final destination. `-1` for disabled.<br/>(`--remote-move-cache-timeout={integer}`) |
|
|
9092
|
+
| remote_preserve_acls | string | Preserve access control lists on the remote host. If not specified, the default behavior is to use the same storage mode as specified by `preserve_acls`.<br/>Allowed values: `native`, `metafile`, `none`<br/>(`--remote-preserve-acls={enum}`) |
|
|
9093
|
+
| remote_preserve_xattrs | string | Preserve extended attributes on the remote host. If not specified, the default behavior is to use the same storage mode as specified by `preserve_xattrs`.<br/>Allowed values: `native`, `metafile`, `none`<br/>(`--remote-preserve-xattrs={enum}`) |
|
|
9094
|
+
| remote_scan_interval_milliseconds | integer | Enable periodic scans on the remote host. `-1` for disabled.<br/>(special:`--remote-scan-interval={integer}`) |
|
|
9095
|
+
| remote_scan_threads | integer | Number of directory scanning threads on the remote host. Value must be between 1 and 99.<br/>(`--remote-scan-threads={integer}`) |
|
|
8869
9096
|
| remote_stat_cache_size | integer | Set stat cache size on the remote host. 0 for disabled. |
|
|
8870
|
-
| remove_after_transfer | boolean | Remove source files after they are successfully synchronized
|
|
8871
|
-
| reset | boolean | Clear the snapshot database and rescan the synchronized directories and files to create a fresh snapshot |
|
|
9097
|
+
| remove_after_transfer | boolean | Remove source files after they are successfully synchronized.<br/>(`--remove-after-transfer`) |
|
|
9098
|
+
| reset | boolean | Clear the snapshot database and rescan the synchronized directories and files to create a fresh snapshot<br/>(`--reset`)(-x) |
|
|
8872
9099
|
| resume | object | Partial transfers may exist if communication disruptions caused the underlying ascp processes to terminate early. Note that transfer resumption can only happen if the `reset` option is disabled. If an async session starts with `reset` enabled and resume enabled, transfers interrupted during that session will be resumeable, but only if async is then restarted with 'reset' disabled. |
|
|
8873
9100
|
| resume.enabled | boolean | Enable the possibility of resuming individual file transfers between async sessions. |
|
|
8874
|
-
| resume.max_age | integer | Sets the age limit in days for temporary files that will be preserved on cleanup (usually at async's start and stop) for potential transfer resume. Temp files older than the given value will be removed regardless of whether they might be resumeable
|
|
8875
|
-
| resume.min_size | integer | This field specifies the minimum size of files that will be allowed to resume
|
|
8876
|
-
| resume_scan | boolean | Resume the scan from where the previous execution left off
|
|
8877
|
-
| scan_dir_rename | boolean | Enable the detection of renamed directories and files compared. to the previous scan, based on matching inodes |
|
|
8878
|
-
| scan_file_rename | boolean | Enable the detection of renamed files compared to the previous scan, based on matching inodes
|
|
8879
|
-
| scan_intensity | string | Scan at the set intensity. `vlow` minimizes system activity. `vhigh` maximizes system activity by continuously scanning files without rest.<br/>Allowed values: `vlow`, `low`, `medium`, `high`, `vhigh` |
|
|
8880
|
-
| sharing_retry_max | integer | Retry synchronizations up to the specified maximum number after a sharing violation
|
|
8881
|
-
| store_metadata_records | boolean | Store the acls or xattrs in the snapshot database
|
|
8882
|
-
| symbolic_links | string | Handle symbolic links with the specified method. Default is `skip` on windows, `copy` otherwise.<br/>Allowed values: `copy`, `skip`, `follow`<br/>(`--symbolic-links={enum}`) |
|
|
8883
|
-
| tags | object | User-defined metadata tags
|
|
8884
|
-
| transfer_threads | array | Use the specified number of dedicated transfer threads to process files smaller or equal to the specified size |
|
|
9101
|
+
| resume.max_age | integer | Sets the age limit in days for temporary files that will be preserved on cleanup (usually at async's start and stop) for potential transfer resume. Temp files older than the given value will be removed regardless of whether they might be resumeable.<br/>(`--resume-age-days={integer}`) |
|
|
9102
|
+
| resume.min_size | integer | This field specifies the minimum size of files that will be allowed to resume.<br/>(`--support-resume={integer}`) |
|
|
9103
|
+
| resume_scan | boolean | Resume the scan from where the previous execution left off.<br/>(`--resume-scan`) |
|
|
9104
|
+
| scan_dir_rename | boolean | Enable the detection of renamed directories and files compared. to the previous scan, based on matching inodes<br/>(`--scan-dir-rename`) |
|
|
9105
|
+
| scan_file_rename | boolean | Enable the detection of renamed files compared to the previous scan, based on matching inodes.<br/>(`--scan-file-rename`) |
|
|
9106
|
+
| scan_intensity | string | Scan at the set intensity. `vlow` minimizes system activity. `vhigh` maximizes system activity by continuously scanning files without rest.<br/>Allowed values: `vlow`, `low`, `medium`, `high`, `vhigh`<br/>(`--scan-intensity={enum}`)(-H) |
|
|
9107
|
+
| sharing_retry_max | integer | Retry synchronizations up to the specified maximum number after a sharing violation.<br/>(`--sharing-retry-max={integer}`) |
|
|
9108
|
+
| store_metadata_records | boolean | Store the acls or xattrs in the snapshot database.<br/>(`--store-metadata-records`) |
|
|
9109
|
+
| symbolic_links | string | Handle symbolic links with the specified method. Default is `skip` on windows, `copy` otherwise.<br/>Allowed values: `copy`, `skip`, `follow`<br/>(`--symbolic-links={enum}`)(-n) |
|
|
9110
|
+
| tags | object | User-defined metadata tags.<br/>(special:`--tags64={object}`) |
|
|
9111
|
+
| transfer_threads | array | Use the specified number of dedicated transfer threads to process files smaller or equal to the specified size<br/>(special:`--transfer-threads={array}`) |
|
|
9112
|
+
| transfer_threads[].size | integer | Upper limit. `-1` for infinity. |
|
|
9113
|
+
| transfer_threads[].threads | integer | The number of threads. |
|
|
8885
9114
|
| transport | object | |
|
|
8886
|
-
| transport.cipher |
|
|
8887
|
-
| transport.compression |
|
|
8888
|
-
| transport.datagram_size | integer | Specify the datagram size (MTU) for FASP. By default it uses the detected path MTU
|
|
8889
|
-
| transport.min_rate | integer | Attempt to transfer no slower than the specified rate (in bps)
|
|
8890
|
-
| transport.rate_policy |
|
|
8891
|
-
| transport.raw_options | array | Pass arbitrary arguments to `ascp
|
|
8892
|
-
| transport.read_block_size | integer | Use the specified block size (in bytes) for reading. Default is determined by `aspera.conf
|
|
8893
|
-
| transport.rexmsg_size | integer | Use the specified size (in bytes) for a retransmission request. Default is determined by `aspera.conf
|
|
8894
|
-
| transport.target_rate | integer | Transfer no faster than the specified rate (in bps)
|
|
8895
|
-
| transport.udp_port | integer | Use the specified UDP port for FASP data transfer
|
|
8896
|
-
| transport.write_block_size | integer | Use the specified block size (in bytes) for writing. Default is determined by `aspera.conf
|
|
9115
|
+
| transport.cipher | string | Specify encryption algorithm for file data.<br/>Allowed values: `none`, `aes128`, `aes192`, `aes256`, `aes128cfb`, `aes192cfb`, `aes256cfb`, `aes128gcm`, `aes192gcm`, `aes256gcm`<br/>(`--cipher={enum}`)(-c) |
|
|
9116
|
+
| transport.compression | string | Compress a file before transfer using the specified MODE.<br/>Allowed values: `none`, `zlib`<br/>(`--compression={enum}`) |
|
|
9117
|
+
| transport.datagram_size | integer | Specify the datagram size (MTU) for FASP. By default it uses the detected path MTU.<br/>(`--datagram-size={integer}`)(-Z) |
|
|
9118
|
+
| transport.min_rate | integer | Attempt to transfer no slower than the specified rate (in bps).<br/>(`--min-rate={integer}`)(-m) |
|
|
9119
|
+
| transport.rate_policy | string | Defines how `ascp` will manage the bandwidth.<br/>Allowed values: `fair`, `fixed`, `high`, `low`<br/>(`--rate-policy={enum}`)(-a) |
|
|
9120
|
+
| transport.raw_options | array | Pass arbitrary arguments to `ascp`.<br/>(special:`--raw-options={array}`) |
|
|
9121
|
+
| transport.read_block_size | integer | Use the specified block size (in bytes) for reading. Default is determined by `aspera.conf`.<br/>(`--read-block-size={integer}`)(-g) |
|
|
9122
|
+
| transport.rexmsg_size | integer | Use the specified size (in bytes) for a retransmission request. Default is determined by `aspera.conf`.<br/>(`--rexmsg-size={integer}`)(-X) |
|
|
9123
|
+
| transport.target_rate | integer | Transfer no faster than the specified rate (in bps).<br/>(`--target-rate={integer}`)(-l) |
|
|
9124
|
+
| transport.udp_port | integer | Use the specified UDP port for FASP data transfer.<br/>(`--udp-port={integer}`)(-O) |
|
|
9125
|
+
| transport.write_block_size | integer | Use the specified block size (in bytes) for writing. Default is determined by `aspera.conf`.<br/>(`--write-block-size={integer}`)(-G) |
|
|
8897
9126
|
| watchd | object | When connection is configured, `asperawatchd` is used to detect the changes on the source directory.<br/>(special:`--watchd={object}`) |
|
|
8898
|
-
| watchd.datastore |
|
|
9127
|
+
| watchd.datastore | string | Specify the type of datastore, `none` for disabled.<br/>Allowed values: `none`, `redis`, `scalekv` |
|
|
8899
9128
|
| watchd.domain | string | Specify the domain. Default is the current username. |
|
|
8900
9129
|
| watchd.host | string | Use the specified host name or address to connect to the datastore. |
|
|
8901
9130
|
| watchd.port | integer | Use the specified port. |
|
|
8902
|
-
| write_gid | string | Try to write files as the specified group
|
|
8903
|
-
| write_uid | string | Try to write files as the specified user
|
|
9131
|
+
| write_gid | string | Try to write files as the specified group.<br/>(`--write-gid={string}`) |
|
|
9132
|
+
| write_uid | string | Try to write files as the specified user.<br/>(`--write-uid={string}`) |
|
|
8904
9133
|
|
|
8905
9134
|
#### `sync_info`: `args` format
|
|
8906
9135
|
|
|
@@ -8911,13 +9140,26 @@ Technically, it allows definition of multiple sync sessions in a single command,
|
|
|
8911
9140
|
|
|
8912
9141
|
This is the mode selection if there are either keys `sessions` or `instance` in option `sync_info`.
|
|
8913
9142
|
|
|
8914
|
-
|
|
9143
|
+
The following parameters are automatically filled from mandatory arguments, and are not allowed:
|
|
9144
|
+
|
|
9145
|
+
- `direction`
|
|
9146
|
+
- `local_dir`
|
|
9147
|
+
- `remote_dir`
|
|
9148
|
+
|
|
9149
|
+
Parameter `name` is set to a default value if not provided in `sync_info`.
|
|
8915
9150
|
|
|
8916
9151
|
### Sync management and monitoring: `admin`
|
|
8917
9152
|
|
|
8918
9153
|
The `admin` command provides several sub commands that access directly the Async snap database (`snap.db`).
|
|
8919
9154
|
(With the exception of `status` which uses the utility `asyncadmin`, available only on server products.)
|
|
8920
9155
|
|
|
9156
|
+
This command does not require any communication to the server and accesses only the local database.
|
|
9157
|
+
It can be executed also from the `config` plugin:
|
|
9158
|
+
|
|
9159
|
+
```shell
|
|
9160
|
+
ascli config sync admin
|
|
9161
|
+
```
|
|
9162
|
+
|
|
8921
9163
|
To use the `admin` command, the gem `sqlite3` shall be installed:
|
|
8922
9164
|
|
|
8923
9165
|
```shell
|
|
@@ -9349,6 +9591,16 @@ If you want to use `ed25519` keys, then install the required gems:
|
|
|
9349
9591
|
gem install ed25519 bcrypt_pbkdf
|
|
9350
9592
|
```
|
|
9351
9593
|
|
|
9594
|
+
In addition, if those two gems are not installed, and if you are using Private Keys encoded using the OpenSSH format, then you'll get the message:
|
|
9595
|
+
|
|
9596
|
+
```text
|
|
9597
|
+
OpenSSH keys only supported if ED25519 is available (NotImplementedError)
|
|
9598
|
+
net-ssh requires the following gems for ed25519 support:
|
|
9599
|
+
* ed25519 (>= 1.2, < 2.0)
|
|
9600
|
+
* bcrypt_pbkdf (>= 1.0, < 2.0)
|
|
9601
|
+
See https://github.com/net-ssh/net-ssh/issues/565 for more information
|
|
9602
|
+
```
|
|
9603
|
+
|
|
9352
9604
|
In addition, if **JRuby** is used, host keys of type: `ecdsa-sha2` and `ecdh-sha2` are also deactivated by default.
|
|
9353
9605
|
To activate, set env var `ASCLI_ENABLE_ECDSHA2` to `true`.
|
|
9354
9606
|
|