aspera-cli 4.24.2 → 4.25.0.pre2
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 +1067 -758
- data/CONTRIBUTING.md +93 -120
- data/README.md +817 -510
- data/lib/aspera/agent/direct.rb +14 -12
- data/lib/aspera/agent/transferd.rb +4 -4
- 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 +55 -41
- data/lib/aspera/ascp/management.rb +9 -5
- data/lib/aspera/assert.rb +28 -6
- data/lib/aspera/cli/error.rb +4 -2
- data/lib/aspera/cli/extended_value.rb +94 -62
- data/lib/aspera/cli/formatter.rb +55 -22
- data/lib/aspera/cli/main.rb +21 -14
- data/lib/aspera/cli/manager.rb +349 -248
- data/lib/aspera/cli/plugins/alee.rb +3 -3
- data/lib/aspera/cli/plugins/aoc.rb +94 -51
- data/lib/aspera/cli/plugins/base.rb +62 -49
- data/lib/aspera/cli/plugins/config.rb +85 -96
- data/lib/aspera/cli/plugins/console.rb +15 -9
- data/lib/aspera/cli/plugins/cos.rb +1 -1
- data/lib/aspera/cli/plugins/faspex.rb +34 -27
- data/lib/aspera/cli/plugins/faspex5.rb +47 -44
- data/lib/aspera/cli/plugins/faspio.rb +7 -6
- data/lib/aspera/cli/plugins/httpgw.rb +3 -2
- data/lib/aspera/cli/plugins/node.rb +132 -120
- data/lib/aspera/cli/plugins/oauth.rb +1 -1
- data/lib/aspera/cli/plugins/orchestrator.rb +116 -33
- data/lib/aspera/cli/plugins/preview.rb +26 -46
- data/lib/aspera/cli/plugins/server.rb +9 -10
- data/lib/aspera/cli/plugins/shares.rb +77 -43
- 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 +6 -2
- data/lib/aspera/environment.rb +71 -84
- data/lib/aspera/faspex_gw.rb +1 -1
- data/lib/aspera/faspex_postproc.rb +1 -1
- data/lib/aspera/keychain/factory.rb +1 -2
- data/lib/aspera/keychain/macos_security.rb +2 -2
- data/lib/aspera/log.rb +2 -1
- 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/preview/terminal.rb +95 -29
- data/lib/aspera/preview/utils.rb +6 -5
- 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 +128 -72
- data/lib/aspera/transfer/parameters.rb +3 -4
- data/lib/aspera/transfer/spec.rb +2 -3
- data/lib/aspera/transfer/spec.schema.yaml +49 -19
- 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 +33 -6
- metadata.gz.sig +0 -0
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.beta2"
|
|
6
6
|
author: "Laurent MARTIN"
|
|
7
7
|
PANDOC_META_END
|
|
8
8
|
-->
|
|
@@ -22,7 +22,7 @@ PANDOC_META_END
|
|
|
22
22
|
|
|
23
23
|
Hootput lives in the terminal, watching over every command with wide, unblinking eyes.
|
|
24
24
|
Known for concise output and sharp insight, this owl thrives where others get lost in the dark.
|
|
25
|
-
It doesn’t chatter; it hoots
|
|
25
|
+
It doesn’t chatter; it hoots-clear, precise, and always on time.
|
|
26
26
|
|
|
27
27
|
Like `ascli`, Hootput is built for action: launching transfers, parsing options, and navigating APIs without hesitation.
|
|
28
28
|
Light on feathers but heavy on wisdom, it turns complexity into simple one-liners.
|
|
@@ -30,7 +30,7 @@ When you hear Hootput’s call, you know your data is already in flight.
|
|
|
30
30
|
|
|
31
31
|
---
|
|
32
32
|
|
|
33
|
-
"Hey, I’m `ascli`
|
|
33
|
+
"Hey, I’m `ascli` - your data’s personal courier.
|
|
34
34
|
I don’t do flashy dashboards; I’m happiest in a terminal window.
|
|
35
35
|
Hand me a command, and I’ll zip your files across the network faster than you thought possible.
|
|
36
36
|
|
|
@@ -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.beta2
|
|
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
|
|
|
@@ -76,6 +76,10 @@ For debugging, use `--log-level=debug` to view the underlying API calls.
|
|
|
76
76
|
|
|
77
77
|
### When to use and when not to use
|
|
78
78
|
|
|
79
|
+
> [!NOTE]
|
|
80
|
+
> If you are scripting or automating transfers from the command line, `ascli` is the right choice.
|
|
81
|
+
> If you are developing an application, prefer the APIs or SDKs instead.
|
|
82
|
+
|
|
79
83
|
The `ascli` tool is designed for command-line interaction with IBM Aspera products, enabling users to execute remote commands and perform file transfers efficiently.
|
|
80
84
|
It supports both interactive terminal operations (e.g., maintenance tasks on VT100-compatible terminals) and scripting use cases (e.g., batch jobs via shell scripts or cron).
|
|
81
85
|
|
|
@@ -95,7 +99,7 @@ These include:
|
|
|
95
99
|
Using these APIs is generally more suitable for long-term development and maintenance.
|
|
96
100
|
Example implementations can be found at: <https://github.com/laurent-martin/aspera-api-examples>.
|
|
97
101
|
|
|
98
|
-
For scripting and ad
|
|
102
|
+
For scripting and ad-hoc command-line tasks, `ascli` is ideal.
|
|
99
103
|
It is developer-friendly and well-suited for quickly testing and learning Aspera APIs (See [Logging, Debugging](#logging-debugging)).
|
|
100
104
|
|
|
101
105
|
Clarifying the CLI landscape:
|
|
@@ -135,7 +139,7 @@ ascli --version
|
|
|
135
139
|
```
|
|
136
140
|
|
|
137
141
|
```text
|
|
138
|
-
4.
|
|
142
|
+
4.25.0.beta2
|
|
139
143
|
```
|
|
140
144
|
|
|
141
145
|
> [!NOTE]
|
|
@@ -338,14 +342,25 @@ Download the Ruby installer executable from <https://rubyinstaller.org/downloads
|
|
|
338
342
|
rubyinstaller-devkit-3.2.2-1-x64.exe /silent /currentuser /noicons /dir=C:\aspera-cli
|
|
339
343
|
```
|
|
340
344
|
|
|
345
|
+
#### Windows: Chocolatey
|
|
346
|
+
|
|
347
|
+
If you use [Chocolatey](https://chocolatey.org/), then install Ruby with:
|
|
348
|
+
|
|
349
|
+
```powershell
|
|
350
|
+
choco install ruby
|
|
351
|
+
```
|
|
352
|
+
|
|
341
353
|
#### macOS: `brew`
|
|
342
354
|
|
|
343
|
-
|
|
355
|
+
If you use [Homebrew](https://brew.sh/), then install Ruby with:
|
|
344
356
|
|
|
345
357
|
```shell
|
|
346
358
|
brew install ruby
|
|
347
359
|
```
|
|
348
360
|
|
|
361
|
+
> [!NOTE]
|
|
362
|
+
> This is the recommended method.
|
|
363
|
+
|
|
349
364
|
> [!WARNING]
|
|
350
365
|
> **macOS** comes with Ruby 2.6.
|
|
351
366
|
> 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 +379,8 @@ export PATH="$(gem env gemdir)/bin:$PATH"
|
|
|
364
379
|
|
|
365
380
|
> [!NOTE]
|
|
366
381
|
> 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`
|
|
382
|
+
> This is what is displayed at the end of the installation of the ruby tap,
|
|
383
|
+
> same as message from: `brew info ruby`
|
|
369
384
|
|
|
370
385
|
#### Linux: Package
|
|
371
386
|
|
|
@@ -391,10 +406,11 @@ If your Linux distribution provides a standard Ruby package, you can use it prov
|
|
|
391
406
|
dnf install -y make automake gcc gcc-c++ kernel-devel
|
|
392
407
|
```
|
|
393
408
|
|
|
394
|
-
- Enable the Ruby version you
|
|
409
|
+
- Enable the Ruby version you selected:
|
|
395
410
|
|
|
396
411
|
```shell
|
|
397
|
-
dnf module -y enable ruby:3.
|
|
412
|
+
dnf module -y enable ruby:3.2
|
|
413
|
+
|
|
398
414
|
dnf install -y ruby-devel
|
|
399
415
|
```
|
|
400
416
|
|
|
@@ -417,7 +433,8 @@ apt install -y ruby ruby-dev rubygems ruby-json
|
|
|
417
433
|
One can remove all installed gems, for example to start fresh:
|
|
418
434
|
|
|
419
435
|
```shell
|
|
420
|
-
|
|
436
|
+
ls $(gem env gemdir)/gems/|sed -e 's/-[^-]*$//'|sort -u|xargs gem uninstall -axI
|
|
437
|
+
rm -f Gemfile.lock
|
|
421
438
|
```
|
|
422
439
|
|
|
423
440
|
#### Unix-like: RVM: Single user installation (not root)
|
|
@@ -575,23 +592,24 @@ Those are not installed as part of dependencies because they involve compilation
|
|
|
575
592
|
See [Gemfile](Gemfile):
|
|
576
593
|
|
|
577
594
|
| name | version | comment |
|
|
578
|
-
|
|
595
|
+
|----------------------|---------|-----------------------------------------------------|
|
|
579
596
|
| grpc | ~> 1.71 | (no jruby) for Aspera Transfer Daemon |
|
|
580
|
-
|
|
|
597
|
+
| marcel | ~> 1.1 | for preview |
|
|
581
598
|
| rmagick | ~> 6.1 | (no jruby) for terminal view |
|
|
582
599
|
| symmetric-encryption | ~> 4.6 | for encrypted hash file secrets |
|
|
583
600
|
| bigdecimal | ~> 3.1 | if RUBY_VERSION >= '3.4' for symmetric-encryption ? |
|
|
584
601
|
| sqlite3 | ~> 2.7 | (no jruby) for async DB |
|
|
585
602
|
| jdbc-sqlite3 | ~> 3.46 | (jruby) for async DB |
|
|
586
603
|
| sequel | ~> 5.96 | (jruby) for async DB |
|
|
587
|
-
| ed25519 | ~> 1.4 | (no jruby) for ed25519 |
|
|
588
|
-
| bcrypt_pbkdf | ~> 1.1 | (no jruby) for ed25519 |
|
|
604
|
+
| ed25519 | ~> 1.4 | (no jruby) for ed25519 and OpenSSH file format |
|
|
605
|
+
| bcrypt_pbkdf | ~> 1.1 | (no jruby) for ed25519 and OpenSSH file format |
|
|
606
|
+
| syslog | ~> 0.3 | (no jruby) for logger=syslog |
|
|
589
607
|
|
|
590
608
|
Install like this:
|
|
591
609
|
|
|
592
610
|
```shell
|
|
593
611
|
gem install grpc -v '~> 1.71'
|
|
594
|
-
gem install
|
|
612
|
+
gem install marcel -v '~> 1.1'
|
|
595
613
|
gem install rmagick -v '~> 6.1'
|
|
596
614
|
gem install symmetric-encryption -v '~> 4.6'
|
|
597
615
|
gem install bigdecimal -v '~> 3.1'
|
|
@@ -600,6 +618,7 @@ gem install jdbc-sqlite3 -v '~> 3.46'
|
|
|
600
618
|
gem install sequel -v '~> 5.96'
|
|
601
619
|
gem install ed25519 -v '~> 1.4'
|
|
602
620
|
gem install bcrypt_pbkdf -v '~> 1.1'
|
|
621
|
+
gem install syslog -v '~> 0.3'
|
|
603
622
|
```
|
|
604
623
|
|
|
605
624
|
### Ruby Gem: `aspera-cli`
|
|
@@ -607,7 +626,7 @@ gem install bcrypt_pbkdf -v '~> 1.1'
|
|
|
607
626
|
Once you have Ruby and rights to install gems, install the `aspera-cli` gem and its dependencies:
|
|
608
627
|
|
|
609
628
|
```shell
|
|
610
|
-
gem install aspera-cli
|
|
629
|
+
gem install aspera-cli --pre
|
|
611
630
|
```
|
|
612
631
|
|
|
613
632
|
To upgrade to the latest version:
|
|
@@ -667,12 +686,12 @@ To execute an Aspera transfer, only two additional files are required, both incl
|
|
|
667
686
|
|
|
668
687
|
- `aspera-license` - the license file (located in the same directory as `ascp` or in `../etc`)
|
|
669
688
|
|
|
670
|
-
These components can be installed either by installing the Aspera transfer software or by
|
|
689
|
+
These components can be installed either by installing the Aspera transfer software or by running the `ascli` command.
|
|
671
690
|
|
|
672
691
|
#### Installation of `ascp` through `transferd`
|
|
673
692
|
|
|
674
693
|
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:
|
|
694
|
+
Install it using `ascli` (for the current platform) with:
|
|
676
695
|
|
|
677
696
|
```shell
|
|
678
697
|
ascli config transferd install
|
|
@@ -738,6 +757,7 @@ If the embedded method is not used, the following packages are also suitable:
|
|
|
738
757
|
|
|
739
758
|
- IBM Aspera Connect Client (Free)
|
|
740
759
|
- IBM Aspera Desktop Client (Free)
|
|
760
|
+
- IBM Aspera for Desktop (Free)
|
|
741
761
|
- IBM Aspera High Speed Transfer Server (Licensed)
|
|
742
762
|
- IBM Aspera High Speed Transfer Endpoint (Licensed)
|
|
743
763
|
|
|
@@ -758,14 +778,15 @@ Refer to section: [Transfer Agents](#transfer-clients-agents)
|
|
|
758
778
|
|
|
759
779
|
#### Gem files and dependencies
|
|
760
780
|
|
|
761
|
-
|
|
781
|
+
Necessary gems can be packed in a `tar.gz` like this:
|
|
762
782
|
|
|
763
|
-
```
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
783
|
+
```bash
|
|
784
|
+
mkdir temp_folder
|
|
785
|
+
gem install aspera-cli:4.25.0.beta2 --no-document --install-dir temp_folder
|
|
786
|
+
find temp_folder
|
|
787
|
+
mv temp_folder/cache aspera-cli-4.25.0.beta2-gems
|
|
788
|
+
rm -fr temp_folder
|
|
789
|
+
tar zcvf aspera-cli-4.25.0.beta2-gems aspera-cli-4.25.0.beta2-gems.tgz
|
|
769
790
|
```
|
|
770
791
|
|
|
771
792
|
#### Unix-like
|
|
@@ -845,7 +866,7 @@ ascli config ascp install --sdk-url=file:///sdk.zip
|
|
|
845
866
|
```
|
|
846
867
|
|
|
847
868
|
> [!NOTE]
|
|
848
|
-
>
|
|
869
|
+
> A beta version of a packaged installed is available.
|
|
849
870
|
|
|
850
871
|
### Container
|
|
851
872
|
|
|
@@ -888,7 +909,7 @@ That is simple, but there are limitations:
|
|
|
888
909
|
|
|
889
910
|
#### Container: Details
|
|
890
911
|
|
|
891
|
-
The container image is built from this [Dockerfile](container/Dockerfile.tmpl.erb).
|
|
912
|
+
The container image is built from this [Dockerfile](build/container/Dockerfile.tmpl.erb).
|
|
892
913
|
The entry point is `ascli` and the default command is `help`.
|
|
893
914
|
|
|
894
915
|
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 +931,7 @@ ascli -v
|
|
|
910
931
|
```
|
|
911
932
|
|
|
912
933
|
```text
|
|
913
|
-
4.
|
|
934
|
+
4.25.0.beta2
|
|
914
935
|
```
|
|
915
936
|
|
|
916
937
|
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 +1371,86 @@ Details can be found here:
|
|
|
1350
1371
|
|
|
1351
1372
|
- [quoting rules](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules)
|
|
1352
1373
|
|
|
1353
|
-
|
|
1374
|
+
##### PowerShell 5
|
|
1354
1375
|
|
|
1355
1376
|
- Check your powershell version:
|
|
1356
1377
|
|
|
1357
1378
|
```powershell
|
|
1358
|
-
|
|
1379
|
+
$psversiontable.psversion.Major
|
|
1380
|
+
```
|
|
1359
1381
|
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1382
|
+
```text
|
|
1383
|
+
5
|
|
1384
|
+
```
|
|
1385
|
+
|
|
1386
|
+
The following examples give the same result on Windows using PowerShell 5:
|
|
1387
|
+
|
|
1388
|
+
```text
|
|
1389
|
+
╭───────┬───────╮
|
|
1390
|
+
│ field │ value │
|
|
1391
|
+
╞═══════╪═══════╡
|
|
1392
|
+
│ x │ true │
|
|
1393
|
+
│ k │ v │
|
|
1394
|
+
╰───────┴───────╯
|
|
1363
1395
|
```
|
|
1364
1396
|
|
|
1365
1397
|
- Use PowerShell argument `--%` to place PowerShell in "stop-parsing" mode.
|
|
1366
1398
|
|
|
1367
1399
|
```powershell
|
|
1368
|
-
|
|
1400
|
+
ascli config echo --% @json:'{"k":"v","x":true}'
|
|
1369
1401
|
```
|
|
1370
1402
|
|
|
1371
1403
|
- Triple double quotes are replaced with a single double quote in normal mode:
|
|
1372
1404
|
|
|
1373
1405
|
```powershell
|
|
1374
|
-
|
|
1406
|
+
ascli config echo @json:'{"""k""":"""v""","""x""":true}'
|
|
1407
|
+
```
|
|
1408
|
+
|
|
1409
|
+
- To insert PowerShell variables in the JSON string, one can do:
|
|
1410
|
+
|
|
1411
|
+
```powershell
|
|
1412
|
+
$var="v"
|
|
1413
|
+
ascli conf echo $('@json:{"""k""":"""' + $var + '""","""x""":true}')
|
|
1414
|
+
```
|
|
1415
|
+
|
|
1416
|
+
##### PowerShell 7
|
|
1417
|
+
|
|
1418
|
+
- Check your PowerShell version:
|
|
1419
|
+
|
|
1420
|
+
```powershell
|
|
1421
|
+
$psversiontable.psversion.Major
|
|
1422
|
+
```
|
|
1423
|
+
|
|
1424
|
+
```text
|
|
1425
|
+
7
|
|
1426
|
+
```
|
|
1427
|
+
|
|
1428
|
+
The following examples give the same result on Windows using PowerShell 7:
|
|
1429
|
+
|
|
1430
|
+
- Use PowerShell argument `--%` to place PowerShell in "stop-parsing" mode.
|
|
1431
|
+
|
|
1432
|
+
```powershell
|
|
1433
|
+
ascli config echo --% @json:{"k":"v","x":true}
|
|
1434
|
+
```
|
|
1435
|
+
|
|
1436
|
+
- Single quote protects double quote in normal mode:
|
|
1437
|
+
|
|
1438
|
+
```powershell
|
|
1439
|
+
ascli config echo @json:'{"k":"v","x":true}'
|
|
1375
1440
|
```
|
|
1376
1441
|
|
|
1377
1442
|
- To insert PowerShell variables in the JSON string, one can do:
|
|
1378
1443
|
|
|
1379
1444
|
```powershell
|
|
1380
|
-
$
|
|
1381
|
-
ascli conf echo $('@json:{""
|
|
1445
|
+
$var="v"
|
|
1446
|
+
ascli conf echo $('@json:{"k":"' + $var + '","x":true}')
|
|
1447
|
+
```
|
|
1448
|
+
|
|
1449
|
+
- Use PowerShell structure and then convert to JSON string:
|
|
1450
|
+
|
|
1451
|
+
```powershell
|
|
1452
|
+
$var="v"
|
|
1453
|
+
ascli conf echo "@json:$(@{ k = $var; x = $true } | ConvertTo-Json -Compress)"
|
|
1382
1454
|
```
|
|
1383
1455
|
|
|
1384
1456
|
#### Extended Values (JSON, Ruby, ...)
|
|
@@ -1603,7 +1675,7 @@ The value of **Options** and **Positional Arguments** is evaluated with the [Ext
|
|
|
1603
1675
|
- **Commands**, typically at the beginning
|
|
1604
1676
|
- **Command Parameters**, mandatory arguments, e.g. creation data or entity identifier
|
|
1605
1677
|
|
|
1606
|
-
When options are removed from the command line, the remaining arguments are typically **Positional Arguments** with a pre-defined order.
|
|
1678
|
+
When options are removed from the command line, the remaining arguments are typically **Positional Arguments** with a significant, pre-defined order.
|
|
1607
1679
|
|
|
1608
1680
|
**Commands** are typically entity types (e.g. `users`) or verbs (e.g. `create`) to act on those entities.
|
|
1609
1681
|
Its value is a `String` that must belong to a fixed list of values in a given context.
|
|
@@ -1617,17 +1689,16 @@ ascli config ascp info
|
|
|
1617
1689
|
- `ascli` is the executable executed by the shell
|
|
1618
1690
|
- `conf` is the first level command: name of the plugin to be used
|
|
1619
1691
|
- `ascp` is the second level command: name of the component (singleton)
|
|
1620
|
-
- `info` is the third level command: action to be performed
|
|
1692
|
+
- `info` is the third level command: action to be performed (verb)
|
|
1621
1693
|
|
|
1622
1694
|
Typically, **Commands** are located at the **beginning** of the command line.
|
|
1623
|
-
Order is significant.
|
|
1624
1695
|
The provided command must match one of the supported commands in the given context.
|
|
1625
1696
|
If wrong, or no command is provided when expected, an error message is displayed and the list of supported commands is displayed.
|
|
1626
1697
|
|
|
1627
1698
|
Standard **Commands** are: `create`, `show`, `list`, `modify`, `delete`.
|
|
1628
|
-
Some entities also support additional commands.
|
|
1699
|
+
Some entities also support additional commands, especially to select sub-entities.
|
|
1629
1700
|
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
|
|
1701
|
+
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
1702
|
|
|
1632
1703
|
**Command Parameters** are typically mandatory values for a command, such as entity creation data or entity identifier.
|
|
1633
1704
|
|
|
@@ -1642,6 +1713,41 @@ If a **Command Parameter** begins with `-`, then either use the `@val:` syntax (
|
|
|
1642
1713
|
|
|
1643
1714
|
A few **Command Parameters** are optional, they are always located at the end of the command line.
|
|
1644
1715
|
|
|
1716
|
+
A special Extended Value `@:` has the following meaning:
|
|
1717
|
+
|
|
1718
|
+
- Take all remaining positional arguments
|
|
1719
|
+
- Expect each of them to have the format: `<path>=<value>`
|
|
1720
|
+
- `<path>` designates a path in a complex structure such as Hash or Array.
|
|
1721
|
+
`.` is the path separator.
|
|
1722
|
+
Each segment separated by a dot represents a key in a nested structure.
|
|
1723
|
+
Integer index denote Array, and other denote Hash index.
|
|
1724
|
+
- `ascli` tries to convert `<value>` to the simplest type (bool, int, float, string).
|
|
1725
|
+
If a specific type is required, it can be specified using the `@json:` or `@ruby:` syntax.
|
|
1726
|
+
For example, `--a.b.c=1` is equivalent to `--a=@json'{"b":{"c":1}}'`.
|
|
1727
|
+
This allows specifying nested keys directly on the command line using a concise **dot-separated** syntax.
|
|
1728
|
+
|
|
1729
|
+
Example:
|
|
1730
|
+
|
|
1731
|
+
```bash
|
|
1732
|
+
ascli conf echo @: a.b=1 a.c=2 a.d.0=hello a.d.1=world --format=json
|
|
1733
|
+
```
|
|
1734
|
+
|
|
1735
|
+
```json
|
|
1736
|
+
{"a":{"b":1,"c":2,"d":["hello","world"]}}
|
|
1737
|
+
```
|
|
1738
|
+
|
|
1739
|
+
The general structure of positional arguments is:
|
|
1740
|
+
|
|
1741
|
+
```text
|
|
1742
|
+
ascli <plugin> <entity> <command> [<ID>] [<parameters>]
|
|
1743
|
+
```
|
|
1744
|
+
|
|
1745
|
+
If a sub-entity is used:
|
|
1746
|
+
|
|
1747
|
+
```text
|
|
1748
|
+
ascli <plugin> <entity1> <sub-entity> [<ID>1] <command2> [<ID2>] [<parameters>]
|
|
1749
|
+
```
|
|
1750
|
+
|
|
1645
1751
|
#### Options
|
|
1646
1752
|
|
|
1647
1753
|
Command-line options, such as `--log-level=debug`, follow these conventions:
|
|
@@ -1673,13 +1779,17 @@ Exceptions and Special Cases:
|
|
|
1673
1779
|
- **Option Terminator**:
|
|
1674
1780
|
The special option `--` ends option parsing.
|
|
1675
1781
|
All subsequent arguments, including those starting with `-`, are treated as positional arguments.
|
|
1676
|
-
- **Dot Notation for
|
|
1782
|
+
- **Dot Notation for Hash and Array**:
|
|
1677
1783
|
If an option name contains a dot (`.`), it is interpreted as a `Hash`.
|
|
1678
1784
|
Each segment separated by a dot represents a key in a nested structure.
|
|
1679
1785
|
`ascli` tries to convert the value to the simplest type (bool, int, float, string).
|
|
1680
1786
|
If a specific type is required, it can be specified using the `@json:` or `@ruby:` syntax.
|
|
1681
1787
|
For example, `--a.b.c=1` is equivalent to `--a=@json'{"b":{"c":1}}'`.
|
|
1682
1788
|
This allows specifying nested keys directly on the command line using a concise **dot-separated** syntax.
|
|
1789
|
+
- **Cumulative Hashes**:
|
|
1790
|
+
When an option of type `Hash` is set, the value is deep-merged to an existing or default value.
|
|
1791
|
+
Setting to `@none:` is equivalent to setting to `@json:{}`, i.e. an empty `Hash`.
|
|
1792
|
+
This can be used to start from an empty value, and not used existing default value.
|
|
1683
1793
|
|
|
1684
1794
|
Example:
|
|
1685
1795
|
|
|
@@ -1785,17 +1895,17 @@ ascli config echo @json:'{"ni":null,"es":"","ea":[],"eh":{}}'
|
|
|
1785
1895
|
|
|
1786
1896
|
The style of output can be set using the `format` option:
|
|
1787
1897
|
|
|
1788
|
-
| `format` | Output formatting
|
|
1789
|
-
|
|
1790
|
-
| `table` | Text table (default)
|
|
1791
|
-
| `text` | Value as `String`
|
|
1792
|
-
| `ruby` | Ruby code
|
|
1793
|
-
| `json` | JSON code
|
|
1794
|
-
| `jsonpp` | JSON pretty printed
|
|
1795
|
-
| `yaml` | YAML
|
|
1796
|
-
| `csv` | Comma Separated Values
|
|
1797
|
-
| `image` |
|
|
1798
|
-
| `nagios` | Suitable for Nagios
|
|
1898
|
+
| `format` | Output formatting |
|
|
1899
|
+
|----------|---------------------------|
|
|
1900
|
+
| `table` | Text table (default) |
|
|
1901
|
+
| `text` | Value as `String` |
|
|
1902
|
+
| `ruby` | Ruby code |
|
|
1903
|
+
| `json` | JSON code |
|
|
1904
|
+
| `jsonpp` | JSON pretty printed |
|
|
1905
|
+
| `yaml` | YAML |
|
|
1906
|
+
| `csv` | Comma Separated Values |
|
|
1907
|
+
| `image` | URL or data for a [picture/video](#image-and-video-thumbnails) |
|
|
1908
|
+
| `nagios` | Suitable for Nagios |
|
|
1799
1909
|
|
|
1800
1910
|
By default, result of type `single_object` and `object_list` are displayed using format `table`.
|
|
1801
1911
|
|
|
@@ -2085,36 +2195,39 @@ The following decoders are supported:
|
|
|
2085
2195
|
|
|
2086
2196
|
| Decoder | Parameter| Returns | Description |
|
|
2087
2197
|
|----------|----------|----------|------------------------------------------------------------------------------------------|
|
|
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
|
|
2198
|
+
| `base64` | `String` | `String` | Decode a base64 encoded string. |
|
|
2199
|
+
| `csvt` | `String` | `Array` | Decode a titled CSV value. |
|
|
2200
|
+
| `env` | `String` | `String` | Read from a named env var name. e.g. `--password=@env:MYPASSVAR` |
|
|
2201
|
+
| `file` | `String` | `String` | Read value from specified file (prefix `~/` is replaced with the users home folder). e.g. `--key=@file:~/.ssh/mykey` |
|
|
2202
|
+
| `json` | `String` | Any | Decode JSON values. Convenient to provide complex structures. |
|
|
2203
|
+
| `lines` | `String` | `Array` | Split a string in multiple lines and return an `Array`. |
|
|
2204
|
+
| `list` | `String` | `Array` | Split a string in multiple items taking first character as separator and return an `Array`. |
|
|
2205
|
+
| `none` | None | Nil | A `null` value. |
|
|
2206
|
+
| `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
2207
|
| `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 |
|
|
2208
|
+
| `extend` | `String` | `String` | Evaluates embedded extended value syntax in string. |
|
|
2099
2209
|
| `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 (
|
|
2103
|
-
| `
|
|
2104
|
-
| `uri` | `String` | `String` | Read value from specified URL, e.g. `--fpac=@uri:http://serv/f.pac` |
|
|
2210
|
+
| `ruby` | `String` | Any | Execute specified Ruby code. |
|
|
2211
|
+
| `secret` | None | `String` | Ask password interactively (hides input). |
|
|
2212
|
+
| `stdin` | None | `String` | Read from stdin in text mode (with arg: empty, `bin` or `chomp`). |
|
|
2213
|
+
| `uri` | `String` | `String` | Read value from specified URL. e.g. `--fpac=@uri:http://serv/f.pac` |
|
|
2105
2214
|
| `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 |
|
|
2215
|
+
| `yaml` | `String` | Any | Decode YAML. |
|
|
2216
|
+
| `zlib` | `String` | `String` | Decompress data using zlib. |
|
|
2217
|
+
| `p` | None | Any | Parses remaining arguments as `Hash` or `Array`. |
|
|
2108
2218
|
|
|
2109
2219
|
> [!NOTE]
|
|
2110
2220
|
> 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`.
|
|
2221
|
+
> 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
2222
|
|
|
2113
2223
|
To display the result of an extended value, use the `config echo` command.
|
|
2114
2224
|
|
|
2115
2225
|
The `extend` decoder is useful to evaluate embedded extended value syntax in a string.
|
|
2116
2226
|
It expects a `@` to close the embedded extended value syntax.
|
|
2117
2227
|
|
|
2228
|
+
Option `parser` allows definition of a default parser when the positional parameter or option expects a `Hash` or `Array`.
|
|
2229
|
+
For example, with `--parser=json`, the parameter `{}` will be parsed as an empty JSON Hash, even without prefix `@json:`.
|
|
2230
|
+
|
|
2118
2231
|
Example: Create a `Hash` value with the convenient `@json:` decoder:
|
|
2119
2232
|
|
|
2120
2233
|
```shell
|
|
@@ -2191,15 +2304,17 @@ EOF
|
|
|
2191
2304
|
{"key1":"value1","key2":["item1","item2"],"key3":{"key4":"value4","key5":"value5"}}
|
|
2192
2305
|
```
|
|
2193
2306
|
|
|
2194
|
-
###
|
|
2307
|
+
### Main, configuration and Persistency Folder
|
|
2195
2308
|
|
|
2196
|
-
`ascli` configuration and persistency files (token cache, file lists, persistency files)
|
|
2309
|
+
`ascli` looks for configuration and persistency files (token cache, file lists, persistency files) in the folder specified using option `home`.
|
|
2310
|
+
The default value is `[User's home folder]/.aspera/ascli`.
|
|
2197
2311
|
|
|
2198
2312
|
> [!NOTE]
|
|
2199
|
-
> `[User's home folder]` is
|
|
2200
|
-
>
|
|
2201
|
-
>
|
|
2202
|
-
>
|
|
2313
|
+
> The `[User's home folder]` is determined using Ruby’s `Dir.home` method.
|
|
2314
|
+
> Primary source: The HOME environment variable.
|
|
2315
|
+
> On Windows: Ruby also checks `%HOMEDRIVE%%HOMEPATH%` and `%USERPROFILE%` (via `rb_w32_home_dir`).
|
|
2316
|
+
> Additionally, `ascli` sets the `%HOME%` environment variable to the value of `%USERPROFILE%` if it exists and is valid.
|
|
2317
|
+
> Therefore, on Windows, `%USERPROFILE%` is preferred because it is generally more reliable than `%HOMEDRIVE%%HOMEPATH%`.
|
|
2203
2318
|
|
|
2204
2319
|
The configuration folder can be displayed using :
|
|
2205
2320
|
|
|
@@ -2212,9 +2327,11 @@ ascli config folder
|
|
|
2212
2327
|
```
|
|
2213
2328
|
|
|
2214
2329
|
> [!NOTE]
|
|
2215
|
-
> This is equivalent to
|
|
2330
|
+
> This is equivalent to display the value of the `home` option.
|
|
2216
2331
|
|
|
2217
|
-
|
|
2332
|
+
```shell
|
|
2333
|
+
ascli --show-config --fields=home
|
|
2334
|
+
```
|
|
2218
2335
|
|
|
2219
2336
|
Example (Windows):
|
|
2220
2337
|
|
|
@@ -2226,11 +2343,28 @@ ascli config folder
|
|
|
2226
2343
|
C:\Users\Kenji\.aspera\ascli
|
|
2227
2344
|
```
|
|
2228
2345
|
|
|
2229
|
-
When OAuth is used (AoC, Faspex5) `ascli` keeps a cache of generated bearer tokens in folder `persist_store` in configuration folder by default.
|
|
2346
|
+
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
2347
|
Option `cache_tokens` (**yes**/no) allows controlling if OAuth tokens are cached on file system, or generated for each request.
|
|
2231
2348
|
The command `config tokens flush` clears that cache.
|
|
2232
2349
|
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.
|
|
2350
|
+
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.
|
|
2351
|
+
|
|
2352
|
+
### Configuration file
|
|
2353
|
+
|
|
2354
|
+
On the first execution of `ascli`, an empty configuration file is created in the configuration folder (`ascli config folder`).
|
|
2355
|
+
There is no mandatory information required in this file.
|
|
2356
|
+
The use of it is optional as any option can be provided on the command line.
|
|
2357
|
+
|
|
2358
|
+
Although the file is a standard `YAML` file, `ascli` provides commands to read and modify it using the `config` command.
|
|
2359
|
+
|
|
2360
|
+
All options for `ascli` can be set on command line, or by env vars, or using [Option Preset](#option-preset) in the configuration file.
|
|
2361
|
+
|
|
2362
|
+
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.
|
|
2363
|
+
|
|
2364
|
+
The default configuration file is: `$HOME/.aspera/ascli/config.yaml` (this can be overridden with option `--config-file=path` or its env var).
|
|
2365
|
+
|
|
2366
|
+
The configuration file is a catalog of named lists of options, called: [Option Preset](#option-preset).
|
|
2367
|
+
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
2368
|
|
|
2235
2369
|
### Invalid Filename Characters
|
|
2236
2370
|
|
|
@@ -2239,7 +2373,7 @@ The option `invalid_characters` allows specifying a replacement character for a
|
|
|
2239
2373
|
|
|
2240
2374
|
The first character specifies the replacement character, and the following characters are the invalid ones.
|
|
2241
2375
|
This is used when a folder or file is created from a value that potentially contains invalid characters.
|
|
2242
|
-
For example, using the option `package_folder
|
|
2376
|
+
For example, using the option `package_folder`, a package name may contain characters not allowed, such as `/`.
|
|
2243
2377
|
The default value is `_<>:"/\|?*`, corresponding to replacement character `_` and characters not allowed on Windows.
|
|
2244
2378
|
|
|
2245
2379
|
> [!NOTE]
|
|
@@ -2253,23 +2387,6 @@ Temporary files are deleted at the end of execution unless option: `clean_temp`
|
|
|
2253
2387
|
By default (`@sys`), the temporary folder is the system's temporary folder for the current user (Ruby `Etc.systmpdir`).
|
|
2254
2388
|
A special value of `@env` will set the folder to Ruby `Dir.tmpdir` which uses regular env var to set the temp folder.
|
|
2255
2389
|
|
|
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
2390
|
#### Option Preset
|
|
2274
2391
|
|
|
2275
2392
|
An [Option Preset](#option-preset) is a collection of options and their associated values in a named section in the configuration file.
|
|
@@ -2367,7 +2484,7 @@ ascli config preset get default _plugin_name_
|
|
|
2367
2484
|
"_default_preset_for_plugin_"
|
|
2368
2485
|
```
|
|
2369
2486
|
|
|
2370
|
-
|
|
2487
|
+
### Plugin: `config`: Configuration
|
|
2371
2488
|
|
|
2372
2489
|
Plugin `config` provides general commands for `ascli`:
|
|
2373
2490
|
|
|
@@ -2413,7 +2530,7 @@ ascli config preset set GLOBAL version_check_days 0
|
|
|
2413
2530
|
ascli config preset set default config my_common_defaults
|
|
2414
2531
|
```
|
|
2415
2532
|
|
|
2416
|
-
|
|
2533
|
+
#### Tested commands for `config`
|
|
2417
2534
|
|
|
2418
2535
|
> [!NOTE]
|
|
2419
2536
|
> Add `ascli config` in front of the following commands:
|
|
@@ -2436,6 +2553,7 @@ ascp show
|
|
|
2436
2553
|
ascp spec
|
|
2437
2554
|
check_update
|
|
2438
2555
|
coffee
|
|
2556
|
+
coffee --log-level=trace2 --log-format=caller
|
|
2439
2557
|
coffee --ui=text
|
|
2440
2558
|
coffee --ui=text --image=@json:'{"text":true,"double":false}'
|
|
2441
2559
|
coffee --ui=text --image=@json:'{"text":true}'
|
|
@@ -2449,7 +2567,7 @@ detect https://tst.example.com/path httpgw
|
|
|
2449
2567
|
detect my_org aoc
|
|
2450
2568
|
doc
|
|
2451
2569
|
doc transfer-parameters
|
|
2452
|
-
echo '<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50" fill="#
|
|
2570
|
+
echo '<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50" fill="#069"/></svg>' --format=image --image.text=true
|
|
2453
2571
|
echo -- --special-string
|
|
2454
2572
|
echo @base64:SGVsbG8gV29ybGQK
|
|
2455
2573
|
echo @csvt:@stdin:
|
|
@@ -2459,11 +2577,12 @@ echo @json:'[{"user":{"id":1,"name":"foo"},"project":"bar"}]' --multi-single=yes
|
|
|
2459
2577
|
echo @lines:@stdin:
|
|
2460
2578
|
echo @list:,1,2,3
|
|
2461
2579
|
echo @secret:
|
|
2462
|
-
echo @
|
|
2580
|
+
echo @stdin:bin
|
|
2463
2581
|
echo @uri:/etc/hosts
|
|
2464
2582
|
echo @uri:file:/etc/hosts
|
|
2465
2583
|
echo @uri:http://ifconfig.me
|
|
2466
2584
|
echo @uri:https://ifconfig.me
|
|
2585
|
+
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
2586
|
echo @vault:my_preset.password
|
|
2468
2587
|
echo @zlib:@stdin:
|
|
2469
2588
|
echo hello
|
|
@@ -2482,7 +2601,7 @@ genkey my_key 4096
|
|
|
2482
2601
|
image https://eudemo.asperademo.com/wallpaper.jpg
|
|
2483
2602
|
initdemo
|
|
2484
2603
|
open
|
|
2485
|
-
plugins create my_command
|
|
2604
|
+
plugins create my_command .
|
|
2486
2605
|
plugins list
|
|
2487
2606
|
preset delete conf_name
|
|
2488
2607
|
preset initialize conf_name @json:'{"p1":"v1","p2":"v2"}'
|
|
@@ -2503,7 +2622,6 @@ smtp_settings
|
|
|
2503
2622
|
sync spec
|
|
2504
2623
|
tokens flush
|
|
2505
2624
|
tokens list
|
|
2506
|
-
tokens show foobar
|
|
2507
2625
|
transferd install
|
|
2508
2626
|
transferd list
|
|
2509
2627
|
vault create @json:'{"label":"my_label","password":"my_password_here","description":"my secret"}'
|
|
@@ -2523,7 +2641,7 @@ wizard my_org aoc --key-path=my_private_key --username=my_user_email --use-gener
|
|
|
2523
2641
|
wizard my_org aoc mypreset --key-path=my_private_key --username=my_user_email
|
|
2524
2642
|
```
|
|
2525
2643
|
|
|
2526
|
-
#### Format of file
|
|
2644
|
+
#### Format of configuration file
|
|
2527
2645
|
|
|
2528
2646
|
The configuration file is a `Hash` in a YAML file.
|
|
2529
2647
|
Example:
|
|
@@ -2858,7 +2976,16 @@ It consists in using a pair of associated keys: a private key and a public key.
|
|
|
2858
2976
|
The same pair can be used for multiple applications.
|
|
2859
2977
|
The file containing the private key (key pair) can optionally be protected by a passphrase.
|
|
2860
2978
|
If the key is protected by a passphrase, then it will be prompted when used.
|
|
2861
|
-
|
|
2979
|
+
Some plugins support option `passphrase`.
|
|
2980
|
+
|
|
2981
|
+
By default, `ascli` does not support `ed25519` type, nor OpenSSH encoded keys.
|
|
2982
|
+
See section: [Private key type ed25519](#private-key-type-ed25519-not-supported-by-default).
|
|
2983
|
+
It requires PEM encoded keys.
|
|
2984
|
+
To support `ed25519` and OpenSSH format (default on modern Linux), install those gems:
|
|
2985
|
+
|
|
2986
|
+
```shell
|
|
2987
|
+
gem install ed25519 bcrypt_pbkdf
|
|
2988
|
+
```
|
|
2862
2989
|
|
|
2863
2990
|
The following sample commands use the shell variable `KEY_PAIR_PATH`.
|
|
2864
2991
|
Set it to the desired safe location of the private key.
|
|
@@ -2879,6 +3006,7 @@ If another format is used, such as `DER`, it can be converted to `PEM`, e.g. usi
|
|
|
2879
3006
|
|
|
2880
3007
|
The generated key is of type `RSA`, by default: **4096** bit.
|
|
2881
3008
|
For convenience, the public key is also extracted with extension `.pub`.
|
|
3009
|
+
Files are PEM encoded.
|
|
2882
3010
|
The key is not passphrase protected.
|
|
2883
3011
|
|
|
2884
3012
|
```shell
|
|
@@ -2955,33 +3083,42 @@ Parameter `url` (base URL) defines:
|
|
|
2955
3083
|
|
|
2956
3084
|
### Image and video thumbnails
|
|
2957
3085
|
|
|
2958
|
-
`ascli` can display thumbnails for images and videos in the terminal.
|
|
2959
|
-
|
|
3086
|
+
`ascli` can display thumbnails for images and videos in the **terminal**, using [iTerm2 inline image protocol](https://iterm2.com/documentation-images.html) or through colorized text.
|
|
3087
|
+
|
|
3088
|
+
This feature can be used:
|
|
2960
3089
|
|
|
2961
3090
|
- In the `thumbnail` command of `node` when using **gen4/access key** API.
|
|
2962
3091
|
- When using the `show` command of `preview` plugin.
|
|
2963
3092
|
- `coffee` and `image` commands of `config` plugin.
|
|
2964
3093
|
- Any displayed value which is a URL to image can be displayed with option `format` set to `image`
|
|
2965
3094
|
|
|
2966
|
-
The following options can be specified in the
|
|
3095
|
+
The following options can be specified in the `image` option:
|
|
2967
3096
|
|
|
2968
|
-
| Option | Type | Description
|
|
3097
|
+
| Option | Type | Description |
|
|
2969
3098
|
|------------|-----------|---------------------------------------------------|
|
|
2970
|
-
| reserve | `Integer` | Lines reserved to display a status
|
|
2971
|
-
| text | `Bool` | Display text instead of image
|
|
2972
|
-
| double | `Bool` | Display double text resolution (half characters)
|
|
2973
|
-
| font_ratio | `Float` | Font height/width ratio in terminal.
|
|
3099
|
+
| reserve | `Integer` | Lines reserved to display a status.<br/>Default: `3` |
|
|
3100
|
+
| text | `Bool` | Display text instead of image (iTerm).<br/>Default: `false` |
|
|
3101
|
+
| double | `Bool` | Display double text resolution (half characters).<br/>Default: `true` |
|
|
3102
|
+
| font_ratio | `Float` | Font height/width ratio in terminal.<br/>Default: `2.3` |
|
|
3103
|
+
|
|
3104
|
+
Examples:
|
|
3105
|
+
|
|
3106
|
+
- Display image as colorized text (requires `rmagick`)
|
|
2974
3107
|
|
|
2975
3108
|
```shell
|
|
2976
|
-
ascli config image https://eudemo.asperademo.com/wallpaper.jpg --ui=text --image
|
|
3109
|
+
ascli config image https://eudemo.asperademo.com/wallpaper.jpg --ui=text --image.text=true
|
|
2977
3110
|
```
|
|
2978
3111
|
|
|
3112
|
+
- Display image from byte stream as image in terminal (requires iTerm2-compatible terminal)
|
|
3113
|
+
|
|
2979
3114
|
```shell
|
|
2980
|
-
curl -so - https://eudemo.asperademo.com/wallpaper.jpg | ascli config image @
|
|
3115
|
+
curl -so - https://eudemo.asperademo.com/wallpaper.jpg | ascli config image @stdin:bin
|
|
2981
3116
|
```
|
|
2982
3117
|
|
|
3118
|
+
- Display image from file (requires iTerm2-compatible terminal)
|
|
3119
|
+
|
|
2983
3120
|
```shell
|
|
2984
|
-
|
|
3121
|
+
ascli config image @stdin:bin < A-team.jpg
|
|
2985
3122
|
```
|
|
2986
3123
|
|
|
2987
3124
|
### Graphical Interactions: Browser and Text Editor
|
|
@@ -3000,38 +3137,47 @@ It is also possible to force the graphical mode with option `--ui` :
|
|
|
3000
3137
|
### Logging, Debugging
|
|
3001
3138
|
|
|
3002
3139
|
The gem is equipped with traces, mainly for debugging and learning APIs.
|
|
3140
|
+
The following options control logging:
|
|
3141
|
+
|
|
3142
|
+
| Option | Values | Description |
|
|
3143
|
+
|---------------|--------|-------------------------------------------------------------------------|
|
|
3144
|
+
| `logger` | `stdout`<br/>`stderr`<br/>`syslog` | Type of output.<br/>Default: `stderr` |
|
|
3145
|
+
| `log_level` | `trace2`<br/>`trace1`<br/>`debug`<br/>`info`<br/>`warn`<br/>`error` | Minimum level displayed.<br/>Default: `warn` |
|
|
3146
|
+
| `log_secrets` | `yes`<br/>`no` | Show or hide secrets in logs.<br/>Default: `no` (Hide) |
|
|
3147
|
+
| `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` |
|
|
3148
|
+
|
|
3149
|
+
Option `logger` defines the destination of logs.
|
|
3150
|
+
|
|
3151
|
+
#### `log_level` and `log_secrets`
|
|
3003
3152
|
|
|
3004
3153
|
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
3154
|
|
|
3006
3155
|
> [!NOTE]
|
|
3007
|
-
> When using the `direct` agent (`ascp`), additional transfer logs can be activated using `ascp` options and `ascp_args`, see [`direct`](#agent-direct).
|
|
3156
|
+
> 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
3157
|
|
|
3009
3158
|
By default, passwords and secrets are redacted from logs.
|
|
3010
3159
|
Set option `log_secrets` to `yes` to include secrets in logs.
|
|
3011
3160
|
|
|
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` |
|
|
3161
|
+
#### `log_format`
|
|
3018
3162
|
|
|
3019
|
-
Option `log_format`
|
|
3020
|
-
|
|
3163
|
+
Option `log_format` support a few pre-defined formatters or a custom one using `@ruby:`.
|
|
3164
|
+
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
3165
|
The default formatter is:
|
|
3022
3166
|
|
|
3023
3167
|
```ruby
|
|
3024
|
-
->(s, _d, _p, m){"#{s[0..2]} #{m}\n"}
|
|
3168
|
+
->(s, _d, _p, m){"#{s[0..2]}#{s[-1]} #{m}\n"}
|
|
3025
3169
|
```
|
|
3026
3170
|
|
|
3027
3171
|
Available formatters for `log_format`:
|
|
3028
3172
|
|
|
3029
|
-
| Name | Description
|
|
3030
|
-
|
|
3031
|
-
| `default` | Default formatter.
|
|
3032
|
-
| `standard`| Standard Ruby formatter.
|
|
3173
|
+
| Name | Description |
|
|
3174
|
+
|-----------|----------------------------------------------------------------------------------|
|
|
3175
|
+
| `default` | Default formatter: Colorized 4 level level followed by message on the same line. |
|
|
3176
|
+
| `standard`| Standard Ruby formatter. |
|
|
3177
|
+
| `caller` | Colorized 4 level level followed by caller, and then on next line: message. |
|
|
3178
|
+
| `Proc` | Custom lambda. |
|
|
3033
3179
|
|
|
3034
|
-
|
|
3180
|
+
#### Logging examples
|
|
3035
3181
|
|
|
3036
3182
|
- Display debugging log on `stdout`:
|
|
3037
3183
|
|
|
@@ -3072,22 +3218,22 @@ To disable this warning, set the option `warn_insecure` to `no`.
|
|
|
3072
3218
|
|
|
3073
3219
|
HTTP connection parameters (not `ascp` WSS) can be adjusted using option `http_options`:
|
|
3074
3220
|
|
|
3075
|
-
| Parameter | Type | Default | Handler
|
|
3221
|
+
| Parameter | Type | Default | Handler |
|
|
3076
3222
|
|-------------------------|---------|---------------|---------------|
|
|
3077
|
-
| `read_timeout` | `Integer` | `60` | Ruby
|
|
3078
|
-
| `write_timeout` | `Integer` | `60` | Ruby
|
|
3079
|
-
| `open_timeout` | `Integer` | `60` | Ruby
|
|
3080
|
-
| `keep_alive_timeout` | `Integer` | `2` | Ruby
|
|
3081
|
-
| `ssl_options` | `Array` | See below | Ruby
|
|
3082
|
-
| `user_agent` | `Integer` | `ascli` | `
|
|
3083
|
-
| `download_partial_suffix` | `Integer` | `.http_partial` | `
|
|
3084
|
-
| `retry_on_error` | `Bool` | `false` | `
|
|
3085
|
-
| `retry_on_timeout` | `Bool` | `true` | `
|
|
3086
|
-
| `retry_on_unavailable` | `Bool` | `true` | `
|
|
3087
|
-
| `retry_max` | `Integer` | `1` | `
|
|
3088
|
-
| `retry_sleep` | `Integer` | `4` | `
|
|
3089
|
-
| `token_cache_max_age` | `Integer` | `1800` | `
|
|
3090
|
-
| `token_refresh_threshold` | `Integer` | `120` | `
|
|
3223
|
+
| `read_timeout` | `Integer` | `60` | Ruby |
|
|
3224
|
+
| `write_timeout` | `Integer` | `60` | Ruby |
|
|
3225
|
+
| `open_timeout` | `Integer` | `60` | Ruby |
|
|
3226
|
+
| `keep_alive_timeout` | `Integer` | `2` | Ruby |
|
|
3227
|
+
| `ssl_options` | `Array` | See below | Ruby |
|
|
3228
|
+
| `user_agent` | `Integer` | `ascli` | `Rest` class |
|
|
3229
|
+
| `download_partial_suffix` | `Integer` | `.http_partial` | `Rest` class |
|
|
3230
|
+
| `retry_on_error` | `Bool` | `false` | `Rest` class |
|
|
3231
|
+
| `retry_on_timeout` | `Bool` | `true` | `Rest` class |
|
|
3232
|
+
| `retry_on_unavailable` | `Bool` | `true` | `Rest` class |
|
|
3233
|
+
| `retry_max` | `Integer` | `1` | `Rest` class |
|
|
3234
|
+
| `retry_sleep` | `Integer` | `4` | `Rest` class |
|
|
3235
|
+
| `token_cache_max_age` | `Integer` | `1800` | `OAuth` class |
|
|
3236
|
+
| `token_refresh_threshold` | `Integer` | `120` | `OAuth` class |
|
|
3091
3237
|
|
|
3092
3238
|
Time values are in set **seconds** and can be of type either `Integer` or `Float`.
|
|
3093
3239
|
Default values are the ones of Ruby:
|
|
@@ -3229,11 +3375,6 @@ This is the reason why it is advised to install the Aspera Transfer Daemon durin
|
|
|
3229
3375
|
|
|
3230
3376
|
By default, `ascli` uses the `ascp` binary found in **well known locations**, i.e. typical Aspera product installation paths.
|
|
3231
3377
|
|
|
3232
|
-
The way to specify the location of `ascp` is to use either options:
|
|
3233
|
-
|
|
3234
|
-
- `ascp_path`
|
|
3235
|
-
- `use_product`
|
|
3236
|
-
|
|
3237
3378
|
The `config` plugin allows finding and specifying the location of `ascp`.
|
|
3238
3379
|
It provides the following commands for `ascp` sub-command:
|
|
3239
3380
|
|
|
@@ -3242,32 +3383,11 @@ It provides the following commands for `ascp` sub-command:
|
|
|
3242
3383
|
- `products` : list Aspera transfer products available locally
|
|
3243
3384
|
- `connect` : list and download connect client versions available on internet
|
|
3244
3385
|
|
|
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
3386
|
#### Selection of `ascp` location for [`direct`](#agent-direct) agent
|
|
3269
3387
|
|
|
3270
|
-
|
|
3388
|
+
Option: `ascp_path` is used to specify the location of `ascp`.
|
|
3389
|
+
The default value is: `product:FIRST`.
|
|
3390
|
+
By default, `ascli` uses any found local product with `ascp`, including Transfer Daemon (SDK).
|
|
3271
3391
|
|
|
3272
3392
|
To override and use an alternate `ascp` path use option `ascp_path` (`--ascp-path=`)
|
|
3273
3393
|
|
|
@@ -3299,10 +3419,9 @@ Saved to default global preset global_common_defaults
|
|
|
3299
3419
|
|
|
3300
3420
|
If the path has spaces, read section: [Shell and Command line parsing](#command-line-parsing-special-characters).
|
|
3301
3421
|
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
this is equivalent to using option: `--use-product=FIRST`.
|
|
3422
|
+
A special value `product:<product name>` can be used for option `ascp_path`.
|
|
3423
|
+
It specifies to use `ascp` from the given product name.
|
|
3424
|
+
A special value for product name is `FIRST`, which means: use the first found.
|
|
3306
3425
|
|
|
3307
3426
|
Locally installed Aspera products can be listed with:
|
|
3308
3427
|
|
|
@@ -3321,13 +3440,42 @@ ascli config ascp products list
|
|
|
3321
3440
|
+---------------------------------------+----------------------------------------+
|
|
3322
3441
|
```
|
|
3323
3442
|
|
|
3324
|
-
Using the option `use_product` finds the `ascp` binary of the selected product.
|
|
3325
|
-
|
|
3326
3443
|
To permanently use the `ascp` of a product:
|
|
3327
3444
|
|
|
3328
3445
|
```shell
|
|
3329
|
-
ascli config ascp products use 'Aspera Connect'
|
|
3330
|
-
|
|
3446
|
+
ascli config ascp products use 'IBM Aspera Connect'
|
|
3447
|
+
Updated: default: config <- global_common_defaults
|
|
3448
|
+
Updated: global_common_defaults: ascp_path <- product:IBM Aspera Connect
|
|
3449
|
+
Saving config file.
|
|
3450
|
+
```
|
|
3451
|
+
|
|
3452
|
+
It is the same as executing:
|
|
3453
|
+
|
|
3454
|
+
```shell
|
|
3455
|
+
ascli config preset set GLOBAL ascp_path 'product:IBM Aspera Connect'
|
|
3456
|
+
```
|
|
3457
|
+
|
|
3458
|
+
To show the path of currently used `ascp`:
|
|
3459
|
+
|
|
3460
|
+
```shell
|
|
3461
|
+
ascli config ascp show
|
|
3462
|
+
```
|
|
3463
|
+
|
|
3464
|
+
```text
|
|
3465
|
+
/Users/laurent/.aspera/ascli/sdk/ascp
|
|
3466
|
+
```
|
|
3467
|
+
|
|
3468
|
+
```shell
|
|
3469
|
+
ascli config ascp info
|
|
3470
|
+
```
|
|
3471
|
+
|
|
3472
|
+
```text
|
|
3473
|
+
╭─────────┬──────────────────────────────────────────────────╮
|
|
3474
|
+
│ field │ value │
|
|
3475
|
+
╞═════════╪══════════════════════════════════════════════════╡
|
|
3476
|
+
│ ascp │ /Users/john/.aspera/sdk/ascp │
|
|
3477
|
+
...
|
|
3478
|
+
╰─────────┴──────────────────────────────────────────────────╯
|
|
3331
3479
|
```
|
|
3332
3480
|
|
|
3333
3481
|
#### Installation of Connect Client on command line
|
|
@@ -3415,15 +3563,15 @@ The `transfer_info` option accepts the following optional parameters to control
|
|
|
3415
3563
|
| Name | Type | Description |
|
|
3416
3564
|
|------------------------|-----------|-----------------------------------------------------------------------------|
|
|
3417
3565
|
| `wss` | `Bool` | Web Socket Session<br/>Enable use of web socket session in case it is available<br/>Default: `true` |
|
|
3418
|
-
| `quiet` | `Bool` | If `true`, then `ascp` progress bar is not shown.<br/>Default: `false`
|
|
3419
|
-
| `trusted_certs` | `Array` | List of repositories for trusted certificates.
|
|
3566
|
+
| `quiet` | `Bool` | If `true`, then `ascp` progress bar is not shown.<br/>Default: `false` |
|
|
3567
|
+
| `trusted_certs` | `Array` | List of repositories for trusted certificates. |
|
|
3420
3568
|
| `client_ssh_key` | `String` | SSH Keys to use for token-based transfers.<br/>One of: `dsa_rsa`, `rsa`, `per_client`.<br/>Default: `rsa` |
|
|
3421
|
-
| `ascp_args` | `Array` | `Array` of strings with native `ascp` arguments.<br/>Default: `[]`
|
|
3569
|
+
| `ascp_args` | `Array` | `Array` of strings with native `ascp` arguments.<br/>Default: `[]` |
|
|
3422
3570
|
| `spawn_timeout_sec` | `Float` | Multi session<br/>Verification time that `ascp` is running<br/>Default: `3` |
|
|
3423
|
-
| `spawn_delay_sec` | `Float` | Multi session<br/>Delay between startup of sessions<br/>Default: `2`
|
|
3571
|
+
| `spawn_delay_sec` | `Float` | Multi session<br/>Delay between startup of sessions<br/>Default: `2` |
|
|
3424
3572
|
| `multi_incr_udp` | `Bool` | Multi Session<br/>Increment UDP port on multi-session<br/>If `true`, each session will have a different UDP port starting at `fasp_port` (or default 33001)<br/>Else, each session will use `fasp_port` (or `ascp` default)<br/>Default: `true` on Windows, else `false` |
|
|
3425
|
-
| `resume` | `Hash` | Resume parameters. See below.
|
|
3426
|
-
| `resume.iter_max` | `Integer` | Max number of retry on error<br/>Default: `7`
|
|
3573
|
+
| `resume` | `Hash` | Resume parameters. See below. |
|
|
3574
|
+
| `resume.iter_max` | `Integer` | Max number of retry on error<br/>Default: `7` |
|
|
3427
3575
|
| `resume.sleep_initial` | `Integer` | First Sleep before retry<br/>Default: `2` |
|
|
3428
3576
|
| `resume.sleep_factor` | `Integer` | Multiplier of sleep period between attempts<br/>Default: `2` |
|
|
3429
3577
|
| `resume.sleep_max` | `Integer` | Default: `60` |
|
|
@@ -3505,12 +3653,12 @@ In addition to standard methods described in section [File List](#list-of-files-
|
|
|
3505
3653
|
##### Agent: Direct: Management messages
|
|
3506
3654
|
|
|
3507
3655
|
By default, `ascli` gets notification from `ascp` on its management port.
|
|
3508
|
-
This can be
|
|
3656
|
+
This can be disabled with parameter: `monitor=false` of `transfer_info`.
|
|
3509
3657
|
|
|
3510
|
-
It is also possible to send
|
|
3658
|
+
It is also possible to send messages to `ascp` using this management port.
|
|
3511
3659
|
A typical use is to change the target rate of a running transfer.
|
|
3512
3660
|
|
|
3513
|
-
The communication is done through a
|
|
3661
|
+
The communication is done through a JSON file that shall be created in `ascli`'s config folder as displayed with:
|
|
3514
3662
|
|
|
3515
3663
|
```shell
|
|
3516
3664
|
ascli config folder
|
|
@@ -3518,13 +3666,24 @@ ascli config folder
|
|
|
3518
3666
|
|
|
3519
3667
|
The name of the file shall be: `send_<PID>`, where `<PID>` is the process id of the running `ascli`.
|
|
3520
3668
|
|
|
3669
|
+
If there is only one `ascli` running, one can get the PID like this:
|
|
3670
|
+
|
|
3671
|
+
```shell
|
|
3672
|
+
ps -axo pid,command|grep ascli|grep -v grep|cut -f1 -d' '
|
|
3673
|
+
```
|
|
3674
|
+
|
|
3521
3675
|
Example to change the target rate:
|
|
3522
3676
|
|
|
3523
3677
|
```shell
|
|
3524
3678
|
echo '{"type":"RATE","Rate":300000}' > ~/.aspera/ascli/send_67470
|
|
3525
3679
|
```
|
|
3526
3680
|
|
|
3527
|
-
When `ascli` detects this file, it uses it and then deletes it.
|
|
3681
|
+
When `ascli` detects this file, it uses it during a transfer and then deletes it.
|
|
3682
|
+
|
|
3683
|
+
> [!NOTE]
|
|
3684
|
+
> The JSON's keys use **snake case**, i.e. lower case with `_` as word separator.
|
|
3685
|
+
> The list of message `type` can be found in `aspera/ascp/management.rb` : `OPERATIONS`.
|
|
3686
|
+
> The list of parameters (capitalized) is `PARAMETERS`.
|
|
3528
3687
|
|
|
3529
3688
|
##### Agent: Direct: `aspera.conf`: Virtual Links
|
|
3530
3689
|
|
|
@@ -3533,8 +3692,8 @@ This agent supports a local configuration file: `aspera.conf` where Virtual link
|
|
|
3533
3692
|
On a server (HSTS), the following commands can be used to set a global virtual link:
|
|
3534
3693
|
|
|
3535
3694
|
```shell
|
|
3536
|
-
asconfigurator -x 'set_trunk_data;id,1;trunk_name,in;trunk_capacity,
|
|
3537
|
-
asconfigurator -x 'set_trunk_data;id,2;trunk_name,out;trunk_capacity,
|
|
3695
|
+
asconfigurator -x 'set_trunk_data;id,1;trunk_name,in;trunk_capacity,100000;trunk_on,true'
|
|
3696
|
+
asconfigurator -x 'set_trunk_data;id,2;trunk_name,out;trunk_capacity,100000;trunk_on,true'
|
|
3538
3697
|
asconfigurator -x 'set_node_data;transfer_in_bandwidth_aggregate_trunk_id,1'
|
|
3539
3698
|
asconfigurator -x 'set_node_data;transfer_out_bandwidth_aggregate_trunk_id,2'
|
|
3540
3699
|
```
|
|
@@ -3799,7 +3958,18 @@ ascli config ascp info --fields=ts --flat-hash=no
|
|
|
3799
3958
|
```
|
|
3800
3959
|
|
|
3801
3960
|
It is possible to specify `ascp` options when the `transfer` option is set to [`direct`](#agent-direct) using `transfer_info` option parameter: `ascp_args`.
|
|
3802
|
-
Example:
|
|
3961
|
+
Example:
|
|
3962
|
+
|
|
3963
|
+
```json
|
|
3964
|
+
--transfer-info=@json:'{"ascp_args":["-l","100m"]}'
|
|
3965
|
+
```
|
|
3966
|
+
|
|
3967
|
+
Or an equivalent (using dotted expression):
|
|
3968
|
+
|
|
3969
|
+
```json
|
|
3970
|
+
--transfer-info.ascp_args=@list:' -l 100m'
|
|
3971
|
+
```
|
|
3972
|
+
|
|
3803
3973
|
This is especially useful for `ascp` command line parameters not supported in the transfer spec.
|
|
3804
3974
|
|
|
3805
3975
|
The use of a [**transfer-spec**](#transfer-specification) instead of `ascp` command line arguments has the advantage of:
|
|
@@ -3807,7 +3977,7 @@ The use of a [**transfer-spec**](#transfer-specification) instead of `ascp` comm
|
|
|
3807
3977
|
- Common to all [Transfer Agent](#transfer-clients-agents)
|
|
3808
3978
|
- Not dependent on command line limitations (special characters...)
|
|
3809
3979
|
|
|
3810
|
-
|
|
3980
|
+
#### Transfer Parameters
|
|
3811
3981
|
|
|
3812
3982
|
All standard [**transfer-spec**](#transfer-specification) parameters can be specified.
|
|
3813
3983
|
A [**transfer-spec**](#transfer-specification) can also be saved/overridden in the configuration file.
|
|
@@ -3839,8 +4009,10 @@ ascli config ascp schema transferd --format=jsonpp
|
|
|
3839
4009
|
|
|
3840
4010
|
`ascp` argument or environment variable is provided in description.
|
|
3841
4011
|
|
|
4012
|
+
#### Transfer Specification Reference
|
|
4013
|
+
|
|
3842
4014
|
| ID | Name |
|
|
3843
|
-
|
|
4015
|
+
|----|-----------|
|
|
3844
4016
|
| A | Direct |
|
|
3845
4017
|
| C | Connect |
|
|
3846
4018
|
| D | Desktop |
|
|
@@ -3849,15 +4021,15 @@ ascli config ascp schema transferd --format=jsonpp
|
|
|
3849
4021
|
| T | Transferd |
|
|
3850
4022
|
|
|
3851
4023
|
| Field | Type | Description |
|
|
3852
|
-
|
|
4024
|
+
|--------------------------------|---------|----------------------------------------------------------------------------------|
|
|
3853
4025
|
| apply_local_docroot | boolean | Apply local docroot to source paths.<br/>(A, T)<br/>(`--apply-local-docroot`) |
|
|
3854
4026
|
| authentication | string | Set to `token` for SSH bypass keys, else password asked if not provided.<br/>(C) |
|
|
3855
4027
|
| 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
4028
|
| 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 |
|
|
4029
|
+
| 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}`) |
|
|
4030
|
+
| content_protection_password | string | Password for encryption/decryption of transferred assets.<br/>(env:`ASPERA_SCP_FILEPASS`) |
|
|
3859
4031
|
| cookie | string | Metadata for transfer specified by application.<br/>(env:`ASPERA_SCP_COOKIE`) |
|
|
3860
|
-
| create_dir | boolean |
|
|
4032
|
+
| 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
4033
|
| 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
4034
|
| 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
4035
|
| destination_root | string | Destination root directory. |
|
|
@@ -3924,7 +4096,7 @@ ascli config ascp schema transferd --format=jsonpp
|
|
|
3924
4096
|
| src_base64 | string | The folder name below which the directory structure is preserved (base64 encoded).<br/>(A, T)<br/>(`--src-base64={string}`) |
|
|
3925
4097
|
| 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
4098
|
| 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
|
|
4099
|
+
| 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
4100
|
| 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
4101
|
| ssh_private_key_path | string | Path to private key for SSH.<br/>(A, T)<br/>(`-i {string}`) |
|
|
3930
4102
|
| sshfp | string | Check it against server SSH host key fingerprint.<br/>(`--check-sshfp={string}`) |
|
|
@@ -3936,10 +4108,10 @@ ascli config ascp schema transferd --format=jsonpp
|
|
|
3936
4108
|
| title | string | Title of the transfer.<br/>(C, N, T) |
|
|
3937
4109
|
| token | string | Authorization token. Type: Bearer, Basic or ATM. (Also arg -W)<br/>(env:`ASPERA_SCP_TOKEN`) |
|
|
3938
4110
|
| use_ascp4 | boolean | Specify version of protocol. Do not use `ascp4`.<br/>(A, N, T) |
|
|
3939
|
-
| use_system_ssh |
|
|
4111
|
+
| 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
4112
|
| wss_enabled | boolean | Server has Web Socket service enabled.<br/>(special:`--ws-connect`) |
|
|
3941
4113
|
| wss_port | integer | TCP port used for Web Socket service feed. |
|
|
3942
|
-
| 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) |
|
|
4114
|
+
| xfer_max_retries | integer | Maximum number of retries, for node API initiated transfers. Shall not exceed `aspera.conf` parameter `transfer_manager_max_retries` (default 5).<br/>(N) |
|
|
3943
4115
|
|
|
3944
4116
|
#### Destination folder for transfers
|
|
3945
4117
|
|
|
@@ -4132,8 +4304,13 @@ When multi-session is used, one separate UDP port is used per session (refer to
|
|
|
4132
4304
|
|
|
4133
4305
|
#### Content protection
|
|
4134
4306
|
|
|
4135
|
-
|
|
4136
|
-
|
|
4307
|
+
Content protection (Client-Side Encryption at REST, CSEAR)) ensures that files remain encrypted while stored on the server.
|
|
4308
|
+
With CSEAR, the client encrypts files during upload and decrypts files during download, using a passphrase known only to the users sharing the files.
|
|
4309
|
+
|
|
4310
|
+
- Upload: Files are encrypted on the client side before being sent to the server.
|
|
4311
|
+
- Download: Files are decrypted on the client side as they are retrieved from the server.
|
|
4312
|
+
|
|
4313
|
+
At all times, files remain encrypted on the server; encryption and decryption occur exclusively on the client side.
|
|
4137
4314
|
|
|
4138
4315
|
Activating CSEAR consists in using transfer spec parameters:
|
|
4139
4316
|
|
|
@@ -4146,6 +4323,11 @@ Example: parameter to download a Faspex package and decrypt on the fly
|
|
|
4146
4323
|
--ts=@json:'{"content_protection":"decrypt","content_protection_password":"my_password_here"}'
|
|
4147
4324
|
```
|
|
4148
4325
|
|
|
4326
|
+
> [!NOTE]
|
|
4327
|
+
> Faspex 5 requires package parameter `ear_enabled` set to `true` for CSEAR.
|
|
4328
|
+
> In that case the transfer spec parameter `content_protection` is automatically set.
|
|
4329
|
+
> `content_protection_password` is then required in all cases.
|
|
4330
|
+
|
|
4149
4331
|
#### Transfer Spec Examples
|
|
4150
4332
|
|
|
4151
4333
|
- Change target rate
|
|
@@ -4454,7 +4636,7 @@ ascli server upload "faux:///mydir?file=testfile&count=1000&size=1" --to-folder=
|
|
|
4454
4636
|
```text
|
|
4455
4637
|
ascli -h
|
|
4456
4638
|
NAME
|
|
4457
|
-
ascli -- a command line tool for Aspera Applications (v4.
|
|
4639
|
+
ascli -- a command line tool for Aspera Applications (v4.25.0.beta2)
|
|
4458
4640
|
|
|
4459
4641
|
SYNOPSIS
|
|
4460
4642
|
ascli COMMANDS [OPTIONS] [ARGS]
|
|
@@ -4476,7 +4658,7 @@ COMMANDS
|
|
|
4476
4658
|
OPTIONS
|
|
4477
4659
|
Options begin with a '-' (minus), and value is provided on command line.
|
|
4478
4660
|
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,
|
|
4661
|
+
val, base64, csvt, env, file, uri, json, lines, list, none, path, re, ruby, secret, stdin, yaml, zlib, extend, preset, vault,
|
|
4480
4662
|
Dates format is 'DD-MM-YY HH:MM:SS', or 'now' or '-<num>h'
|
|
4481
4663
|
|
|
4482
4664
|
ARGS
|
|
@@ -4485,11 +4667,10 @@ ARGS
|
|
|
4485
4667
|
OPTIONS: global
|
|
4486
4668
|
--interactive=ENUM Use interactive input of missing params: [no], yes
|
|
4487
4669
|
--ask-options=ENUM Ask even optional options: [no], yes
|
|
4488
|
-
--struct-parser=ENUM Default parser when expected value is a struct: json, ruby
|
|
4489
4670
|
--format=ENUM Output format: text, nagios, ruby, json, jsonpp, yaml, [table], csv, image
|
|
4490
|
-
--output=VALUE Destination for results
|
|
4671
|
+
--output=VALUE Destination for results
|
|
4491
4672
|
--display=ENUM Output only some information: [info], data, error
|
|
4492
|
-
--fields=VALUE Comma separated list of: fields, or ALL, or DEF (
|
|
4673
|
+
--fields=VALUE Comma separated list of: fields, or ALL, or DEF (Array, Regexp, Proc)
|
|
4493
4674
|
--select=VALUE Select only some items in lists: column, value (Hash, Proc)
|
|
4494
4675
|
--table-style=VALUE (Table) Display style (Hash)
|
|
4495
4676
|
--flat-hash=ENUM (Table) Display deep values as additional keys: no, [yes]
|
|
@@ -4503,15 +4684,16 @@ OPTIONS: global
|
|
|
4503
4684
|
--ui=ENUM Method to start browser: text, [graphical]
|
|
4504
4685
|
--invalid-characters=VALUE Replacement character and invalid filename characters
|
|
4505
4686
|
--log-level=ENUM Log level: trace2, trace1, debug, info, [warn], error, fatal, unknown
|
|
4506
|
-
--log-format=VALUE Log formatter (Proc, Logger::Formatter
|
|
4687
|
+
--log-format=VALUE Log formatter (Proc, Logger::Formatter)
|
|
4507
4688
|
--logger=ENUM Logging method: [stderr], stdout, syslog
|
|
4508
4689
|
--lock-port=VALUE Prevent dual execution of a command, e.g. in cron (Integer)
|
|
4509
4690
|
--once-only=ENUM Process only new items (some commands): [no], yes
|
|
4510
4691
|
--log-secrets=ENUM Show passwords in logs: [no], yes
|
|
4511
4692
|
--clean-temp=ENUM Cleanup temporary files on exit: no, [yes]
|
|
4512
4693
|
--temp-folder=VALUE Temporary folder
|
|
4513
|
-
--pid-file=VALUE Write process identifier to file, delete on exit
|
|
4514
|
-
--
|
|
4694
|
+
--pid-file=VALUE Write process identifier to file, delete on exit
|
|
4695
|
+
--parser=ENUM Default parser for structured parameters and options: none, json, ruby, yaml
|
|
4696
|
+
--home=VALUE Home folder for tool
|
|
4515
4697
|
--config-file=VALUE Path to YAML file with preset configuration
|
|
4516
4698
|
--secret=VALUE Secret for access keys
|
|
4517
4699
|
--vault=VALUE Vault for secrets (Hash)
|
|
@@ -4522,16 +4704,15 @@ OPTIONS: global
|
|
|
4522
4704
|
--bfail=ENUM Bulk operation error handling: no, [yes]
|
|
4523
4705
|
-N, --no-default Do not load default configuration for plugin
|
|
4524
4706
|
-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)
|
|
4707
|
+
--version-check-days=VALUE Period in days to check new version (zero to disable) (Integer)
|
|
4526
4708
|
--plugin-folder=VALUE Folder where to find additional plugins
|
|
4527
4709
|
--override=ENUM Wizard: override existing value: [no], yes
|
|
4528
4710
|
--default=ENUM Wizard: set as default configuration for specified plugin (also: update): no, [yes]
|
|
4529
4711
|
--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
4712
|
--sdk-url=VALUE Ascp: URL to get Aspera Transfer Executables
|
|
4533
|
-
--
|
|
4534
|
-
--
|
|
4713
|
+
--ascp-path=VALUE Ascp: Path to ascp (or product with "product:")
|
|
4714
|
+
--locations-url=VALUE Ascp: URL to get download locations of Aspera Transfer Daemon
|
|
4715
|
+
--sdk-folder=VALUE Ascp: SDK installation folder path
|
|
4535
4716
|
--progress-bar=ENUM Display progress bar: [no], yes
|
|
4536
4717
|
--smtp=VALUE Email: SMTP configuration (Hash)
|
|
4537
4718
|
--notify-to=VALUE Email: Recipient for notification of transfers
|
|
@@ -4539,9 +4720,9 @@ OPTIONS: global
|
|
|
4539
4720
|
--insecure=ENUM HTTP/S: Do not validate any certificate: [no], yes
|
|
4540
4721
|
--ignore-certificate=VALUE HTTP/S: Do not validate certificate for these URLs (Array)
|
|
4541
4722
|
--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
|
|
4723
|
+
--cert-stores=VALUE HTTP/S: List of folder with trusted certificates (Array)
|
|
4543
4724
|
--http-options=VALUE HTTP/S: Options for HTTP/S socket (Hash)
|
|
4544
|
-
--http-proxy=VALUE HTTP/S: URL for proxy with optional credentials
|
|
4725
|
+
--http-proxy=VALUE HTTP/S: URL for proxy with optional credentials
|
|
4545
4726
|
--cache-tokens=ENUM Save and reuse OAuth tokens: no, [yes]
|
|
4546
4727
|
--fpac=VALUE Proxy auto configuration script
|
|
4547
4728
|
--proxy-credentials=VALUE HTTP proxy credentials for fpac: user, password (Array)
|
|
@@ -4565,7 +4746,7 @@ OPTIONS:
|
|
|
4565
4746
|
|
|
4566
4747
|
|
|
4567
4748
|
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
|
|
4749
|
+
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
4750
|
OPTIONS:
|
|
4570
4751
|
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4571
4752
|
--username=VALUE User's identifier
|
|
@@ -4591,7 +4772,7 @@ OPTIONS:
|
|
|
4591
4772
|
|
|
4592
4773
|
|
|
4593
4774
|
COMMAND: orchestrator
|
|
4594
|
-
SUBCOMMANDS: health info plugins processes
|
|
4775
|
+
SUBCOMMANDS: health info monitors plugins processes workflows workorders workstep
|
|
4595
4776
|
OPTIONS:
|
|
4596
4777
|
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4597
4778
|
--username=VALUE User's identifier
|
|
@@ -4677,11 +4858,11 @@ OPTIONS:
|
|
|
4677
4858
|
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4678
4859
|
--username=VALUE User's identifier
|
|
4679
4860
|
--password=VALUE User's password
|
|
4680
|
-
--skip-format=ENUM Skip this preview format
|
|
4861
|
+
--skip-format=ENUM Skip this preview format: png, mp4
|
|
4681
4862
|
--folder-reset-cache=ENUM Force detection of generated preview by refresh cache: [no], header, read
|
|
4682
|
-
--skip-types=VALUE Skip types
|
|
4863
|
+
--skip-types=VALUE Skip generation for those types of files (Array)
|
|
4683
4864
|
--previews-folder=VALUE Preview folder in storage root
|
|
4684
|
-
--skip-folders=VALUE List of folder to skip
|
|
4865
|
+
--skip-folders=VALUE List of folder to skip (Array)
|
|
4685
4866
|
--base=VALUE Basename of output for for test
|
|
4686
4867
|
--scan-path=VALUE Subpath in folder id to start scan in (default=/)
|
|
4687
4868
|
--scan-id=VALUE Folder id in storage to start scan in, default is access key main folder id
|
|
@@ -4719,10 +4900,10 @@ OPTIONS:
|
|
|
4719
4900
|
--private-key=VALUE OAuth (JWT) RSA private key PEM value (prefix file path with @file:)
|
|
4720
4901
|
--passphrase=VALUE OAuth (JWT) RSA private key passphrase
|
|
4721
4902
|
--scope=VALUE OAuth scope for API calls
|
|
4722
|
-
--workspace=VALUE Name of workspace
|
|
4903
|
+
--workspace=VALUE Name of workspace
|
|
4723
4904
|
--new-user-option=VALUE New user creation option for unknown package recipients (Hash)
|
|
4724
4905
|
--validate-metadata=ENUM Validate shared inbox metadata: no, [yes]
|
|
4725
|
-
--package-folder=VALUE
|
|
4906
|
+
--package-folder=VALUE Handling of reception of packages in folders (Hash)
|
|
4726
4907
|
|
|
4727
4908
|
|
|
4728
4909
|
COMMAND: server
|
|
@@ -4731,7 +4912,7 @@ OPTIONS:
|
|
|
4731
4912
|
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4732
4913
|
--username=VALUE User's identifier
|
|
4733
4914
|
--password=VALUE User's password
|
|
4734
|
-
--ssh-keys=VALUE SSH key path list (Array
|
|
4915
|
+
--ssh-keys=VALUE SSH key path list (Array)
|
|
4735
4916
|
--passphrase=VALUE SSH private key passphrase
|
|
4736
4917
|
--ssh-options=VALUE SSH options (Hash)
|
|
4737
4918
|
|
|
@@ -4758,18 +4939,17 @@ This option is available only for some resources: if you need it: try and see if
|
|
|
4758
4939
|
### Option: `query`
|
|
4759
4940
|
|
|
4760
4941
|
The `query` option can generally be used to add URL parameters to commands that list resources.
|
|
4761
|
-
It takes either a `Hash
|
|
4942
|
+
It takes either a `Hash`, corresponding to key/value pairs that appear in the query part of request.
|
|
4762
4943
|
|
|
4763
4944
|
For example: `--query=@json:'{"p1":"v1","p2":"v2"}'` leads to query: `?p1=v1&p2=v2`.
|
|
4764
4945
|
|
|
4765
|
-
If the same parameter needs to be provided several times, then it's possible as well to provide an `Array
|
|
4946
|
+
If the same parameter needs to be provided several times, then it's possible as well to provide an `Array`.
|
|
4766
4947
|
|
|
4767
|
-
|
|
4948
|
+
For example: `--query=@json:'{"p":["v1","v2"]}'` leads to query: `?p=v1&p=v2`.
|
|
4768
4949
|
|
|
4769
|
-
|
|
4770
|
-
- `--query=@json:'[["a[]","v1"],["a[]","v2"]]'`
|
|
4950
|
+
If PHP's style array is expected in the API, then just add `[]` to the name of the parameter.
|
|
4771
4951
|
|
|
4772
|
-
|
|
4952
|
+
For example: `--query=@json:'{"p[]":["v1","v2"]}'` leads to query: `?p[]=v1&p[]=v2`.
|
|
4773
4953
|
|
|
4774
4954
|
### Plugins
|
|
4775
4955
|
|
|
@@ -5138,7 +5318,7 @@ ascli aoc files bearer_token_node /
|
|
|
5138
5318
|
```
|
|
5139
5319
|
|
|
5140
5320
|
```shell
|
|
5141
|
-
ascli aoc admin node v4
|
|
5321
|
+
ascli aoc admin node v4 <node_id> --secret=_ak_secret_here_ bearer_token_node /
|
|
5142
5322
|
```
|
|
5143
5323
|
|
|
5144
5324
|
### Administration
|
|
@@ -5741,13 +5921,13 @@ ascli aoc packages send @json:'{"name":"my title","note":"my note","recipients":
|
|
|
5741
5921
|
##### Example: Send a package to a shared inbox with metadata
|
|
5742
5922
|
|
|
5743
5923
|
```shell
|
|
5744
|
-
ascli aoc packages send --workspace="
|
|
5924
|
+
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
5925
|
```
|
|
5746
5926
|
|
|
5747
5927
|
It is also possible to use identifiers and API parameters:
|
|
5748
5928
|
|
|
5749
5929
|
```shell
|
|
5750
|
-
ascli aoc packages send --workspace="
|
|
5930
|
+
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
5931
|
```
|
|
5752
5932
|
|
|
5753
5933
|
##### Example: Send a package with files from the Files app
|
|
@@ -5789,39 +5969,38 @@ Option `once_only` is supported, see below.
|
|
|
5789
5969
|
To download only some files from the package, just add the path of the files on the command line: `[<file> ...]`, see option `sources`.
|
|
5790
5970
|
By default, all files in the package are downloaded, i.e. `.` is used as the file list.
|
|
5791
5971
|
|
|
5792
|
-
Option `package_folder`
|
|
5793
|
-
The following syntax is supported
|
|
5972
|
+
##### Option `package_folder`
|
|
5794
5973
|
|
|
5795
|
-
|
|
5796
|
-
|
|
5797
|
-
| `@none:` | No subfolder is created, files are downloaded directly into the specified `to_folder`. |
|
|
5798
|
-
| `<field>` | A subfolder named after the package's specified field is created inside `to_folder`. |
|
|
5799
|
-
| `<field1>+<field2>` | A subfolder named after the combination of two package fields with a `.` is created inside `to_folder`. |
|
|
5800
|
-
| `<field1>+<field2>?` | A subfolder named after the package's specified field1 is created, unless it already exists.<br/>Else it falls back to the combination of both fields with `.`. |
|
|
5974
|
+
The option `package_folder` (Hash) allows downloading packages in sub-folders of the `to_folder` path (see description earlier).
|
|
5975
|
+
If this option is not specified (or Hash is empty), then packages are downloaded in the folder specified by the `to_folder` option.
|
|
5801
5976
|
|
|
5802
|
-
The
|
|
5803
|
-
If `?` is used, then the sequence number is used only if the folder already exists.
|
|
5977
|
+
The following fields are supported to define the name of the sub-folder:
|
|
5804
5978
|
|
|
5805
|
-
|
|
5979
|
+
| Field | Type | Description |
|
|
5980
|
+
|-------|---------|---------------------------------------------------------------------------|
|
|
5981
|
+
| none | - | (Default) No subfolder. |
|
|
5982
|
+
| `fld` | `Array` | The package's specified fields (`.`-joined). (max size: 2) |
|
|
5983
|
+
| `seq` | `Bool` | If `true`, add an incrementing number to the folder name starting at `1`. |
|
|
5984
|
+
| `opt` | `Bool` | If `false` (default), then all fields are used.<br/>Else, only if the folder does not already exist. |
|
|
5985
|
+
| `inf` | `Bool` | If `true`, then a file is created (`<ID>.info.json`) with package information (metadata, same information as sidecar file). |
|
|
5986
|
+
|
|
5987
|
+
Examples (JSON):
|
|
5806
5988
|
|
|
5807
|
-
- `id` :
|
|
5808
|
-
Subfolder
|
|
5989
|
+
- `{"fields":["id"]}` :
|
|
5990
|
+
Subfolder is the package ID.
|
|
5809
5991
|
If the same package is downloaded several times, it will always be placed in the same folder.
|
|
5810
|
-
- `name` :
|
|
5811
|
-
Subfolder
|
|
5992
|
+
- `{"fields":["name"]}` :
|
|
5993
|
+
Subfolder is the package name.
|
|
5812
5994
|
If two packages with the same name are downloaded, they will be combined in the same folder.
|
|
5813
|
-
- `name
|
|
5814
|
-
Subfolder
|
|
5815
|
-
- `name
|
|
5816
|
-
Subfolder
|
|
5817
|
-
|
|
5818
|
-
- `name
|
|
5819
|
-
Subfolder
|
|
5820
|
-
|
|
5821
|
-
|
|
5822
|
-
> [!NOTE]
|
|
5823
|
-
> When `<field1>+<field2>?` is used, if two packages are downloaded and have the same fields, they will be downloaded in the same folder.
|
|
5824
|
-
> If `name+seq?` is used, if the same package is downloaded multiple times, it will be placed in different folders with a sequence number.
|
|
5995
|
+
- `{"fields":["name","id"]}` :
|
|
5996
|
+
Subfolder is the combination of package name and ID.
|
|
5997
|
+
- `{"fields":["name","id"],"opt":true}` :
|
|
5998
|
+
Subfolder is the package's name is created, unless it already exists.
|
|
5999
|
+
If it exists, then the combination of both fields joined with `.` is used.
|
|
6000
|
+
- `{"fields":["name"],"seq":true,"opt":true}` :
|
|
6001
|
+
Subfolder is the package's name, unless it already exists.
|
|
6002
|
+
If it exists, then the combination of name and sequence number.
|
|
6003
|
+
If the same package is downloaded multiple times, it will be placed in different folders with a sequence number.
|
|
5825
6004
|
|
|
5826
6005
|
##### Example: Receive all packages from a given shared inbox
|
|
5827
6006
|
|
|
@@ -5938,7 +6117,7 @@ ascli aoc files download <single file path>
|
|
|
5938
6117
|
|
|
5939
6118
|
#### Shared folders
|
|
5940
6119
|
|
|
5941
|
-
Like in AoC web UI,
|
|
6120
|
+
Like in AoC web UI, **Shared Folders** can be created and shared with either **Private** or **Public** links.
|
|
5942
6121
|
**Private** links require the collaborator to log in to access the shared folder.
|
|
5943
6122
|
**Public** links include a passcode that enables the user to access the shared folder without login-in.
|
|
5944
6123
|
|
|
@@ -5976,8 +6155,8 @@ The basic payload to create a permission, i.e. a Shared Folder (last argument at
|
|
|
5976
6155
|
| `link_name` | `ascli` | Name of the link file created in the user's home folder for private links. |
|
|
5977
6156
|
| `as` | `ascli` | Name of the link file created in the user's home folder for admin shared folders. |
|
|
5978
6157
|
|
|
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`.
|
|
6158
|
+
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`.
|
|
6159
|
+
This is conveniently set by `ascli` using an **empty string** for field `with`.
|
|
5981
6160
|
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
6161
|
|
|
5983
6162
|
##### User Shared Folders
|
|
@@ -5994,7 +6173,7 @@ ascli aoc files permission --workspace=<workspace name> <path to folder> ...
|
|
|
5994
6173
|
|
|
5995
6174
|
##### Admin Shared Folders
|
|
5996
6175
|
|
|
5997
|
-
Admin shared folders, created by administrators in a workspace follow the syntax:
|
|
6176
|
+
Admin shared folders, created by administrators in a workspace, follow the syntax:
|
|
5998
6177
|
|
|
5999
6178
|
```shell
|
|
6000
6179
|
ascli aoc admin node do <node ID> permission --workspace=<workspace name> <path to folder>
|
|
@@ -6006,7 +6185,7 @@ ascli aoc admin node do <node ID> permission --workspace=<workspace name> <path
|
|
|
6006
6185
|
> The path is identifier by a path, one can specify a file id, with `%id:123`.
|
|
6007
6186
|
> If the id is left blank: `%id:`, then if means `*`, i.e. all.
|
|
6008
6187
|
|
|
6009
|
-
##### Example: List permissions on a shared folder
|
|
6188
|
+
##### Example: List permissions on a user shared folder
|
|
6010
6189
|
|
|
6011
6190
|
```shell
|
|
6012
6191
|
ascli aoc files permission /shared_folder_test1 list
|
|
@@ -6053,7 +6232,7 @@ To remove a password:
|
|
|
6053
6232
|
> [!NOTE]
|
|
6054
6233
|
> Access level cannot be customized in this version.
|
|
6055
6234
|
|
|
6056
|
-
An expiration date can be set with parameter `expires_at`, using ISO 8601 format.
|
|
6235
|
+
An expiration date can be set with parameter `expires_at`, using [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
|
|
6057
6236
|
E.g. `2025-08-29T08:10:31.000Z`.
|
|
6058
6237
|
If only a date is provided, it will be set to midnight UTC of that date.
|
|
6059
6238
|
|
|
@@ -6061,16 +6240,16 @@ If only a date is provided, it will be set to midnight UTC of that date.
|
|
|
6061
6240
|
|
|
6062
6241
|
First, identify the node ID where the shared folder will be created.
|
|
6063
6242
|
|
|
6064
|
-
To get the node ID of the default node for workspace
|
|
6243
|
+
To get the node ID of the default node for workspace `<workspace_name>`, use the command:
|
|
6065
6244
|
|
|
6066
6245
|
```shell
|
|
6067
|
-
ascli aoc admin workspace show %name:'
|
|
6246
|
+
ascli aoc admin workspace show %name:'<workspace_name>' --fields=node_id
|
|
6068
6247
|
```
|
|
6069
6248
|
|
|
6070
6249
|
Alternatively (longer):
|
|
6071
6250
|
|
|
6072
6251
|
```shell
|
|
6073
|
-
ascli aoc admin workspace list --select=@json:'{"name":"
|
|
6252
|
+
ascli aoc admin workspace list --select=@json:'{"name":"<workspace_name>"}' --fields=node_id
|
|
6074
6253
|
```
|
|
6075
6254
|
|
|
6076
6255
|
Or select a node identifier manually from the list of nodes:
|
|
@@ -6081,24 +6260,22 @@ ascli aoc admin node list --fields=id,name
|
|
|
6081
6260
|
|
|
6082
6261
|
In the following commands, replace:
|
|
6083
6262
|
|
|
6084
|
-
-
|
|
6085
|
-
-
|
|
6086
|
-
-
|
|
6087
|
-
|
|
6088
|
-
The node can also be conveniently identified using the **percent selector** instead of numerical ID: `%name:"my node"`.
|
|
6263
|
+
- `<node_id>` with the node ID, or with `%name:<node_name>`.
|
|
6264
|
+
- `<workspace_name>` with the workspace name, or with `%id:<workspace_id>`.
|
|
6265
|
+
- `<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
6266
|
|
|
6090
6267
|
If the shared folder does not exist, then create it:
|
|
6091
6268
|
|
|
6092
6269
|
```shell
|
|
6093
|
-
ascli aoc admin node do
|
|
6270
|
+
ascli aoc admin node do <node_id> mkdir <folder_path>
|
|
6094
6271
|
```
|
|
6095
6272
|
|
|
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.
|
|
6273
|
+
Create the shared folder in workspace `<workspace_name>` (set `with` to empty string, or do not specify it).
|
|
6274
|
+
**Optionally**, use `as` to set the name of the shared folder if different from the folder name on the node.
|
|
6098
6275
|
For other options, refer to the previous section on shared folders.
|
|
6099
6276
|
|
|
6100
6277
|
```shell
|
|
6101
|
-
ascli aoc admin node do
|
|
6278
|
+
ascli aoc admin node do <node_id> permission <folder_path> create @json:'{"with":"","as":"folder_for_users"}' --workspace="<workspace_name>"
|
|
6102
6279
|
```
|
|
6103
6280
|
|
|
6104
6281
|
> [!NOTE]
|
|
@@ -6109,30 +6286,67 @@ The `"with"` parameter will perform a lookup, and set fields `access_type` and `
|
|
|
6109
6286
|
The native fields `access_type` and `access_id` can also be used, instead of `with`.
|
|
6110
6287
|
|
|
6111
6288
|
```shell
|
|
6112
|
-
ascli aoc admin node do
|
|
6289
|
+
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
6290
|
```
|
|
6114
6291
|
|
|
6115
6292
|
```shell
|
|
6116
|
-
ascli aoc admin node do
|
|
6293
|
+
ascli aoc admin node do <node_id> permission <folder_path> create @json:'{"with":"group 1","as":"folder_for_a_group"}' --workspace="<workspace_name>"
|
|
6117
6294
|
```
|
|
6118
6295
|
|
|
6119
6296
|
```shell
|
|
6120
|
-
ascli aoc admin node do
|
|
6297
|
+
ascli aoc admin node do <node_id> permission <folder_path> create @json:'{"with":"<workspace_name>","as":"folder_for_all_workspace"}' --workspace="<workspace_name>"
|
|
6121
6298
|
```
|
|
6122
6299
|
|
|
6123
6300
|
> [!NOTE]
|
|
6124
6301
|
> In the previous commands, field `as` is optional.
|
|
6125
6302
|
|
|
6303
|
+
##### Example: List all workspace admin shared folder in a workspace
|
|
6304
|
+
|
|
6305
|
+
```shell
|
|
6306
|
+
ascli aoc admin workspace shared_folder %name:'<workspace_name>' list
|
|
6307
|
+
```
|
|
6308
|
+
|
|
6309
|
+
```text
|
|
6310
|
+
╭───────┬───────────┬─────────┬─────────┬───────────┬──────────────────────────────────────╮
|
|
6311
|
+
│ id │ node_name │ node_id │ file_id │ file.path │ tags.aspera.files.workspace.share_as │
|
|
6312
|
+
╞═══════╪═══════════╪═════════╪═════════╪═══════════╪══════════════════════════════════════╡
|
|
6313
|
+
│ 198 │ eudemo │ 8666 │ 2465 │ /project1 │ │
|
|
6314
|
+
│ 785 │ eudemo │ 8666 │ 9 │ /folder2 │ project2 │
|
|
6315
|
+
│ 4788 │ eudemo │ 8666 │ 3691 │ /backup │ │
|
|
6316
|
+
╰───────┴───────────┴─────────┴─────────┴───────────┴──────────────────────────────────────╯
|
|
6317
|
+
```
|
|
6318
|
+
|
|
6319
|
+
To list members:
|
|
6320
|
+
|
|
6321
|
+
```shell
|
|
6322
|
+
ascli aoc admin workspace shared_folder %name:'<workspace_name>' member 198 list
|
|
6323
|
+
```
|
|
6324
|
+
|
|
6325
|
+
```text
|
|
6326
|
+
╭─────────────┬──────────────────────────────────┬──────────────┬──────────────────────╮
|
|
6327
|
+
│ access_type │ access_id │ access_level │ last_updated_at │
|
|
6328
|
+
╞═════════════╪══════════════════════════════════╪══════════════╪══════════════════════╡
|
|
6329
|
+
│ user │ ASPERA_ACCESS_KEY_ADMIN_WS_45071 │ edit │ 2020-11-29T22:48:49Z │
|
|
6330
|
+
│ group │ 160270 │ edit │ 2024-05-13T15:58:02Z │
|
|
6331
|
+
╰─────────────┴──────────────────────────────────┴──────────────┴──────────────────────╯
|
|
6332
|
+
```
|
|
6333
|
+
|
|
6334
|
+
If you have the node id of the shared folder, than it is equivalent to:
|
|
6335
|
+
|
|
6336
|
+
```shell
|
|
6337
|
+
ascli aoc admin node do 8669 perm /project1 list --query=@json:'{"tag":"aspera.files.workspace.id=<workspace_id>"}'
|
|
6338
|
+
```
|
|
6339
|
+
|
|
6126
6340
|
##### Example: List all workspace admin shared folder on a node
|
|
6127
6341
|
|
|
6128
6342
|
First get the workspace identifier:
|
|
6129
6343
|
|
|
6130
6344
|
```shell
|
|
6131
|
-
ascli aoc admin workspace list --select=@json:'{"name":"
|
|
6345
|
+
ascli aoc admin workspace list --select=@json:'{"name":"<workspace_name>"}' --fields=id
|
|
6132
6346
|
```
|
|
6133
6347
|
|
|
6134
6348
|
```text
|
|
6135
|
-
|
|
6349
|
+
<workspace_id>
|
|
6136
6350
|
```
|
|
6137
6351
|
|
|
6138
6352
|
Then, identify the node id on which to list, see previous section.
|
|
@@ -6140,7 +6354,7 @@ Then, identify the node id on which to list, see previous section.
|
|
|
6140
6354
|
Finally, list all shared folders, as permissions:
|
|
6141
6355
|
|
|
6142
6356
|
```shell
|
|
6143
|
-
ascli aoc admin node do
|
|
6357
|
+
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
6358
|
```
|
|
6145
6359
|
|
|
6146
6360
|
> [!NOTE]
|
|
@@ -6197,11 +6411,12 @@ For instructions, refer to section `find` for plugin `node`.
|
|
|
6197
6411
|
> Add `ascli aoc` in front of the following commands:
|
|
6198
6412
|
|
|
6199
6413
|
```bash
|
|
6200
|
-
admin analytics
|
|
6414
|
+
admin analytics application_events
|
|
6415
|
+
admin analytics files organization '' aoc_transfer_id
|
|
6201
6416
|
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
6417
|
admin analytics transfers users --once-only=yes
|
|
6203
6418
|
admin application list
|
|
6204
|
-
admin ats access_key create --cloud=aws --region=my_region @json:'{"id":"
|
|
6419
|
+
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
6420
|
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
6421
|
admin ats access_key delete ak1ibmcloud
|
|
6207
6422
|
admin ats access_key list --fields=name,id
|
|
@@ -6220,7 +6435,9 @@ admin contact list
|
|
|
6220
6435
|
admin dropbox list
|
|
6221
6436
|
admin dropbox_membership list
|
|
6222
6437
|
admin group list
|
|
6438
|
+
admin group_membership list --fields=ALL --query=@json:'{"page":1,"per_page":50,"embed":"member","inherited":false,"workspace_id":11363,"sort":"name"}'
|
|
6223
6439
|
admin kms_profile list
|
|
6440
|
+
admin node bearer_token %name:my_node_name --scope=admin:all
|
|
6224
6441
|
admin node do %name:my_node_name --secret=my_ak_secret browse /
|
|
6225
6442
|
admin node do %name:my_node_name --secret=my_ak_secret browse /folder_sub --node-cache=no
|
|
6226
6443
|
admin node do %name:my_node_name --secret=my_ak_secret delete /folder1
|
|
@@ -6247,15 +6464,18 @@ admin subscription usage
|
|
|
6247
6464
|
admin subscription usage MONTH
|
|
6248
6465
|
admin user list
|
|
6249
6466
|
admin user modify %name:my_user_email @json:'{"deactivated":false}'
|
|
6467
|
+
admin workspace dropbox %name:my_other_workspace list
|
|
6250
6468
|
admin workspace list
|
|
6469
|
+
admin workspace shared_folder %name:my_other_workspace list
|
|
6470
|
+
admin workspace shared_folder %name:my_other_workspace member shared_folder_id list
|
|
6251
6471
|
admin workspace_membership list
|
|
6252
6472
|
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"}'
|
|
6473
|
+
automation workflow action wf_id create @json:'{"name":"toto"}'
|
|
6254
6474
|
automation workflow create @json:'{"name":"test_workflow"}'
|
|
6255
6475
|
automation workflow delete wf_id
|
|
6256
6476
|
automation workflow list
|
|
6257
6477
|
automation workflow list --query=@json:'{"show_org_workflows":"true"}' --scope=admin:all
|
|
6258
|
-
automation workflow list --select=@json:'{"name":"test_workflow"}' --fields=id
|
|
6478
|
+
automation workflow list --select=@json:'{"name":"test_workflow"}' --fields=id
|
|
6259
6479
|
bearer_token --display=data --scope=user:all
|
|
6260
6480
|
files bearer /
|
|
6261
6481
|
files bearer_token_node / --cache-tokens=no
|
|
@@ -6268,7 +6488,7 @@ files browse my_remote_folder
|
|
|
6268
6488
|
files browse my_remote_folder/
|
|
6269
6489
|
files cat testdst/test_file.bin
|
|
6270
6490
|
files delete /testsrc
|
|
6271
|
-
files
|
|
6491
|
+
files download --to-folder=. testdst/test_file.bin testdst/test_file.bin
|
|
6272
6492
|
files download --transfer=connect testdst/test_file.bin
|
|
6273
6493
|
files download --transfer=desktop testdst/test_file.bin
|
|
6274
6494
|
files find /
|
|
@@ -6276,7 +6496,6 @@ files find / '\.partial$'
|
|
|
6276
6496
|
files find / @ruby:'->(f){f["type"].eql?("file")}'
|
|
6277
6497
|
files mkdir /testsrc
|
|
6278
6498
|
files modify /some_folder @json:'{"mount_point":false}'
|
|
6279
|
-
files modify my_test_folder
|
|
6280
6499
|
files permission my_test_folder list
|
|
6281
6500
|
files rename /some_folder testdst
|
|
6282
6501
|
files short_link /testdst private create
|
|
@@ -6293,28 +6512,26 @@ files transfer push /testsrc --to-folder=/testdst test_file.bin
|
|
|
6293
6512
|
files upload --to-folder=/ test_file.bin --url=my_public_link_folder_no_pass
|
|
6294
6513
|
files upload --to-folder=/testsrc test_file.bin
|
|
6295
6514
|
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
6515
|
files v3 info
|
|
6298
|
-
gateway
|
|
6516
|
+
gateway @json:'{"url":"https://localhost:12345/aspera/faspex"}'
|
|
6299
6517
|
organization
|
|
6300
6518
|
organization --format=image --fields=background_image_url --ui=text
|
|
6301
6519
|
organization --url=my_public_link_recv_from_aoc_user
|
|
6302
6520
|
packages browse package_id3 /
|
|
6303
6521
|
packages list
|
|
6304
6522
|
packages list --query=@json:'{"dropbox_name":"my_shared_inbox_name","sort":"-received_at","archived":false,"received":true,"has_content":true,"exclude_dropbox_packages":false}'
|
|
6305
|
-
packages receive ALL --once-only=yes --to-folder=. --lock-port=12345
|
|
6523
|
+
packages receive ALL --once-only=yes --to-folder=. --lock-port=12345 --package-folder.fld.0=name --package-folder.fld.1=id --package-folder.opt=true
|
|
6306
6524
|
packages receive ALL --once-only=yes --to-folder=. --lock-port=12345 --query=@json:'{"dropbox_name":"my_shared_inbox_name","archived":false,"received":true,"has_content":true,"exclude_dropbox_packages":false,"include_draft":false}' --ts=@json:'{"resume_policy":"sparse_csum","target_rate_kbps":50000}'
|
|
6307
6525
|
packages receive INIT --once-only=yes --query=@json:'{"dropbox_name":"my_shared_inbox_name"}'
|
|
6308
6526
|
packages receive package_id3 --to-folder=.
|
|
6309
|
-
packages receive package_id3 --to-folder=. /
|
|
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
|
|
6527
|
+
packages receive package_id3 --to-folder=. /
|
|
6528
|
+
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
|
|
6529
|
+
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
|
|
6530
|
+
packages send --workspace=my_workspace_shared_inbox @json:'{"name":"package title","recipients":["my_shared_inbox_name"]}' test_file.bin
|
|
6531
|
+
packages send @json:'{"name":"package title","recipients":["my_email_external"]}' --new-user-option=@json:'{"package_contact":true}' test_file.bin
|
|
6532
|
+
packages send @json:'{"name":"package title","recipients":["my_email_internal"],"note":"my - note"}' test_file.bin
|
|
6533
|
+
packages send @json:'{"name":"package title"}' test_file.bin --url=my_public_link_send_aoc_user --password=my_public_link_send_use_pass
|
|
6534
|
+
packages send @json:'{"name":"package title"}' test_file.bin --url=my_public_link_send_shared_inbox
|
|
6318
6535
|
packages shared_inboxes list
|
|
6319
6536
|
packages shared_inboxes show %name:my_shared_inbox_name
|
|
6320
6537
|
remind --username=my_user_email
|
|
@@ -6464,7 +6681,6 @@ access_key cluster ak2ibmcloud --secret=my_secret_here
|
|
|
6464
6681
|
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
6682
|
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
6683
|
access_key delete ak2ibmcloud
|
|
6467
|
-
access_key delete ak_aws
|
|
6468
6684
|
access_key entitlement ak2ibmcloud
|
|
6469
6685
|
access_key list --fields=name,id
|
|
6470
6686
|
access_key node ak2ibmcloud browse / --secret=my_secret_here
|
|
@@ -6472,6 +6688,7 @@ access_key show ak2ibmcloud
|
|
|
6472
6688
|
api_key create
|
|
6473
6689
|
api_key instances
|
|
6474
6690
|
api_key list
|
|
6691
|
+
aws_trust_policy --region=us-east-1
|
|
6475
6692
|
cluster clouds
|
|
6476
6693
|
cluster list
|
|
6477
6694
|
cluster show --cloud=aws --region=eu-west-1
|
|
@@ -6504,7 +6721,7 @@ ascli server --url=ssh://hsts.example.com:33001 --username=john --ssh-keys=~/.ss
|
|
|
6504
6721
|
|
|
6505
6722
|
```bash
|
|
6506
6723
|
browse /
|
|
6507
|
-
browse / --password=@none: --ssh-options=@json:'{"number_of_password_prompts":0}' --ssh-keys
|
|
6724
|
+
browse / --password=@none: --ssh-options=@json:'{"number_of_password_prompts":0}' --ssh-keys=serv_key_path
|
|
6508
6725
|
browse my_inside_folder/test_file.bin
|
|
6509
6726
|
browse my_upload_folder/target_hot
|
|
6510
6727
|
cp my_inside_folder/test_file.bin my_upload_folder/200KB.2
|
|
@@ -6521,18 +6738,20 @@ md5sum my_inside_folder/test_file.bin
|
|
|
6521
6738
|
mkdir my_inside_folder --logger=stdout
|
|
6522
6739
|
mkdir my_upload_folder/target_hot
|
|
6523
6740
|
mv my_upload_folder/200KB.2 my_upload_folder/to.delete
|
|
6741
|
+
sync admin file_info /data/local_sync
|
|
6742
|
+
sync admin overview /data/local_sync
|
|
6524
6743
|
sync admin status /data/local_sync
|
|
6744
|
+
sync pull my_inside_folder --to-folder=/data/local_sync @json:'{"name":"serv_sync_pull_conf","reset":true,"transport":{"target_rate":my_bps}}'
|
|
6525
6745
|
sync pull my_inside_folder --to-folder=/data/local_sync @json:'{"name":"serv_sync_pull_conf"}'
|
|
6526
|
-
upload 'faux:///
|
|
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
|
|
6746
|
+
upload 'faux:///test.bin?1k' --to-folder=my_upload_folder
|
|
6529
6747
|
upload --sources=@ts --transfer-info=@json:'{"ascp_args":["--file-list","filelist.txt"]}' --to-folder=my_inside_folder
|
|
6530
6748
|
upload --sources=@ts --transfer-info=@json:'{"ascp_args":["--file-pair-list","file_pair_list.txt"]}'
|
|
6531
6749
|
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
6750
|
upload --src-type=pair --sources=@json:'["test_file.bin","my_inside_folder/other_name_3"]' --transfer-info.quiet=false --progress=no
|
|
6534
|
-
upload --src-type=pair test_file.bin
|
|
6535
|
-
upload --
|
|
6751
|
+
upload --src-type=pair test_file.bin my_inside_folder/other_name_2 --notify-to=my_email_external '--transfer-info.ascp_args=@list: -l 100m'
|
|
6752
|
+
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"}'
|
|
6753
|
+
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","hot_folder"]}' hot_folder
|
|
6754
|
+
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
6755
|
```
|
|
6537
6756
|
|
|
6538
6757
|
### Authentication on Server with SSH session
|
|
@@ -7076,7 +7295,7 @@ ascli node -N --url=https://... --password="Bearer $(cat bearer.txt)" --root-id=
|
|
|
7076
7295
|
> Add `ascli node` in front of the following commands:
|
|
7077
7296
|
|
|
7078
7297
|
```bash
|
|
7079
|
-
--url=https://tst.example.com/path --password=
|
|
7298
|
+
--url=https://tst.example.com/path --password='Bearer node_bearer_token' --root-id=bearer_root_id access_key do self browse /
|
|
7080
7299
|
access_key create @json:'{"id":"my_username","secret":"my_password_here","storage":{"type":"local","path":"/"}}'
|
|
7081
7300
|
access_key delete my_username
|
|
7082
7301
|
access_key do my_ak_name browse /
|
|
@@ -7087,32 +7306,29 @@ access_key do my_ak_name find my_test_folder
|
|
|
7087
7306
|
access_key do my_ak_name find my_test_folder @re:'\.jpg$'
|
|
7088
7307
|
access_key do my_ak_name find my_test_folder @ruby:'->(f){f["name"].end_with?(".jpg")}'
|
|
7089
7308
|
access_key do my_ak_name mkdir /tst_nd_ak
|
|
7090
|
-
access_key do my_ak_name mkfile /mkfile.txt
|
|
7309
|
+
access_key do my_ak_name mkfile /mkfile.txt 'hello world'
|
|
7091
7310
|
access_key do my_ak_name mklink /mklink.txt --query=@json:'{"target":"/mkfile.txt","target_node_id":"123"}'
|
|
7092
7311
|
access_key do my_ak_name node_info /
|
|
7093
7312
|
access_key do my_ak_name rename /tst_nd_ak test_nd_ak2
|
|
7094
7313
|
access_key do my_ak_name show %id:1
|
|
7095
|
-
access_key do my_ak_name show /test_nd_ak3
|
|
7096
7314
|
access_key do my_ak_name upload 'faux:///test_nd_ak3?100k' --default-ports=no
|
|
7097
|
-
access_key do self permission %id:
|
|
7315
|
+
access_key do self permission %id:bearer_root_id create @json:'{"access_type":"user","access_id":"666"}'
|
|
7098
7316
|
access_key do self permission / delete 1
|
|
7099
7317
|
access_key do self permission / show 1
|
|
7100
|
-
access_key do self show / --fields=id --output=root_id
|
|
7101
7318
|
access_key list
|
|
7102
7319
|
access_key set_bearer_key self @file:my_private_key
|
|
7103
7320
|
access_key show %id:self
|
|
7104
7321
|
api_details
|
|
7105
7322
|
asperabrowser
|
|
7106
|
-
async bandwidth %name:
|
|
7107
|
-
async counters %name:
|
|
7323
|
+
async bandwidth %name:my_sync_session_name
|
|
7324
|
+
async counters %name:my_sync_session_name
|
|
7108
7325
|
async delete ALL
|
|
7109
|
-
async files %name:
|
|
7110
|
-
async files %name:
|
|
7326
|
+
async files %name:my_sync_session_name
|
|
7327
|
+
async files %name:my_sync_session_name --once-only=yes
|
|
7111
7328
|
async list
|
|
7112
|
-
async show %name:
|
|
7329
|
+
async show %name:my_sync_session_name
|
|
7113
7330
|
async show ALL
|
|
7114
7331
|
basic_token
|
|
7115
|
-
bearer_token @file:my_private_key @json:'{"user_id":"666"}' --output=bearer_666
|
|
7116
7332
|
browse / --log-level=trace2
|
|
7117
7333
|
cat my_upload_folder/test_file.bin
|
|
7118
7334
|
central file list
|
|
@@ -7125,7 +7341,7 @@ health
|
|
|
7125
7341
|
info --fpac='function FindProxyForURL(url,host){return "DIRECT"}'
|
|
7126
7342
|
license
|
|
7127
7343
|
mkdir my_upload_folder/a_folder
|
|
7128
|
-
mkfile my_upload_folder/a_file1
|
|
7344
|
+
mkfile my_upload_folder/a_file1 'hello world'
|
|
7129
7345
|
mklink my_upload_folder/a_folder my_upload_folder/tdlink
|
|
7130
7346
|
rename my_upload_folder a_file1 a_file
|
|
7131
7347
|
search / --query=@json:'{"sort":"mtime"}'
|
|
@@ -7134,6 +7350,7 @@ service delete service1
|
|
|
7134
7350
|
service list
|
|
7135
7351
|
slash
|
|
7136
7352
|
space /
|
|
7353
|
+
spec
|
|
7137
7354
|
ssync bandwidth %name:my_node_sync
|
|
7138
7355
|
ssync counters %name:my_node_sync
|
|
7139
7356
|
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 +7364,20 @@ ssync stop %name:my_node_sync
|
|
|
7147
7364
|
ssync summary %name:my_node_sync
|
|
7148
7365
|
stream list
|
|
7149
7366
|
sync admin status /data/local_sync
|
|
7150
|
-
sync pull /aspera-test-dir-tiny --to-folder=/data/local_sync @json:'{"name":"
|
|
7367
|
+
sync pull /aspera-test-dir-tiny --to-folder=/data/local_sync @json:'{"name":"my_sync_session_name","reset":true}'
|
|
7151
7368
|
sync pull /aspera-test-dir-tiny --to-folder=/data/local_sync @json:'{"reset":true}'
|
|
7152
7369
|
transfer bandwidth_average
|
|
7153
7370
|
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
7371
|
transfer list --query=@json:'{"active_only":true}'
|
|
7157
7372
|
transfer list --query=@json:'{"reset":true}' --once-only=yes
|
|
7158
7373
|
transfer modify nd_xfer_id @json:'{"target_rate_kbps":10000}'
|
|
7159
7374
|
transfer sessions
|
|
7160
7375
|
transfer show nd_xfer_id
|
|
7161
7376
|
transport
|
|
7377
|
+
upload 'faux:///testfile1?1m' --to-folder=my_local_path
|
|
7162
7378
|
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
7379
|
upload --username=my_ak_name --password=my_ak_secret test_file.bin
|
|
7164
|
-
upload
|
|
7380
|
+
upload my_mxf my_docx --ts=@json:'{"target_rate_kbps":1000000,"resume_policy":"none"}'
|
|
7165
7381
|
watch_folder list
|
|
7166
7382
|
```
|
|
7167
7383
|
|
|
@@ -7415,8 +7631,8 @@ admin distribution_lists delete %name:test4
|
|
|
7415
7631
|
admin distribution_lists list --query=@json:'{"type":"global"}'
|
|
7416
7632
|
admin email_notifications list
|
|
7417
7633
|
admin email_notifications show welcome_email
|
|
7418
|
-
admin event
|
|
7419
|
-
admin event
|
|
7634
|
+
admin event application --query=@ruby:'{"event_type[]"=>["login_success"],"created_at_start"=>(Time.now.utc-60).strftime("%Y-%m-%dT%H:%M:%S.%LZ")}'
|
|
7635
|
+
admin event webhook
|
|
7420
7636
|
admin jobs list --query=@json:'{"job_type":"email","status":"failed"}' --fields=id,error_desc
|
|
7421
7637
|
admin metadata_profiles list
|
|
7422
7638
|
admin node browse %name:Local
|
|
@@ -7431,7 +7647,7 @@ admin saml_configs list
|
|
|
7431
7647
|
admin shared_inboxes invite %name:my_shared_box_name johnny@example.com
|
|
7432
7648
|
admin shared_inboxes list
|
|
7433
7649
|
admin shared_inboxes list --query=@json:'{"all":true}'
|
|
7434
|
-
admin shared_inboxes members %name:my_shared_box_name create %name:john@example.com
|
|
7650
|
+
admin shared_inboxes members %name:my_shared_box_name create %name:john@example.com submit_only
|
|
7435
7651
|
admin shared_inboxes members %name:my_shared_box_name delete %name:john@example.com
|
|
7436
7652
|
admin shared_inboxes members %name:my_shared_box_name delete %name:johnny@example.com
|
|
7437
7653
|
admin shared_inboxes members %name:my_shared_box_name list
|
|
@@ -7441,33 +7657,34 @@ admin smtp show
|
|
|
7441
7657
|
admin smtp test my_email_external
|
|
7442
7658
|
admin workgroups list
|
|
7443
7659
|
bearer_token
|
|
7444
|
-
gateway
|
|
7660
|
+
gateway @json:'{"url":"https://localhost:12346/aspera/faspex"}'
|
|
7445
7661
|
health --url=https://faspex5.example.com/path
|
|
7446
7662
|
invitation list
|
|
7447
7663
|
invitations create @json:'{"email_address":"aspera.user1+u@gmail.com"}'
|
|
7448
|
-
packages browse
|
|
7449
|
-
packages delete
|
|
7664
|
+
packages browse f5_package_id --query=@json:'{"recursive":true}'
|
|
7665
|
+
packages delete f5_package_id
|
|
7450
7666
|
packages list --box=ALL
|
|
7451
7667
|
packages list --box=my_shared_box_name
|
|
7452
7668
|
packages list --box=my_workgroup --group-type=workgroups
|
|
7453
7669
|
packages list --box=outbox --fields=DEF,sender.email,recipients.0.recipient_type
|
|
7454
7670
|
packages list --query=@json:'{"mailbox":"inbox","status":"completed"}'
|
|
7455
|
-
packages receive --box=my_shared_box_name
|
|
7671
|
+
packages receive --box=my_shared_box_name f5_pack_shboxc --to-folder=.
|
|
7456
7672
|
packages receive --box=my_workgroup --group-type=workgroups workgroup_package_id1 --to-folder=.
|
|
7457
7673
|
packages receive ALL --once-only=yes --to-folder=.
|
|
7458
7674
|
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
|
|
7675
|
+
packages receive f5_package_id --to-folder=. --ts=@json:'{"content_protection_password":"my_secret_here"}'
|
|
7461
7676
|
packages send --url=my_public_link_send_f5_user @json:'{"title":"test title"}' test_file.bin
|
|
7462
7677
|
packages send --url=my_public_link_send_shared_box @json:'{"title":"test title"}' test_file.bin
|
|
7463
7678
|
packages send @json:'{"title":"test title","recipients":["my_shared_box_name"],"metadata":{"Options":"Opt1","TextInput":"example text"}}' test_file.bin
|
|
7464
7679
|
packages send @json:'{"title":"test title","recipients":["my_workgroup"]}' test_file.bin
|
|
7465
7680
|
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
|
|
7681
|
+
packages send @json:'{"title":"test_webhook_ascli","recipients":["my_shared_box_name"]}' 'faux:///test1?1m'
|
|
7682
|
+
packages show --box=my_shared_box_name f5_pack_shboxc
|
|
7467
7683
|
packages show --box=my_workgroup --group-type=workgroups workgroup_package_id1
|
|
7468
|
-
packages show
|
|
7469
|
-
packages status
|
|
7470
|
-
|
|
7684
|
+
packages show f5_package_id
|
|
7685
|
+
packages status f5_p3a @list:,failed,completed
|
|
7686
|
+
packages status f5_package_id
|
|
7687
|
+
postprocessing @json:'{"url":"https://localhost:8553/asclihook","script_folder":"$(PATH_SCRIPTS)","cert":"$(TMP / "localhost.p12")","key":"changeit"}'
|
|
7471
7688
|
shared browse %name:my_src
|
|
7472
7689
|
shared list
|
|
7473
7690
|
shared_folders browse %name:my_shared_folder_name
|
|
@@ -7560,6 +7777,14 @@ If the lookup needs to be only on certain types, you can specify the field: `rec
|
|
|
7560
7777
|
{"title":"test title","recipient_types":"user","recipients":["user1@example.com","user2@example.com"]}
|
|
7561
7778
|
```
|
|
7562
7779
|
|
|
7780
|
+
To enable content protection (CSEAR), set parameter `ear_enabled` to `true` in the package creation payload (refer to Faspex package creation API).
|
|
7781
|
+
|
|
7782
|
+
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:
|
|
7783
|
+
|
|
7784
|
+
```text
|
|
7785
|
+
the provided encryption value (no) does not match the expected server side encryption value (yes)
|
|
7786
|
+
```
|
|
7787
|
+
|
|
7563
7788
|
### Faspex 5: Send a package with metadata
|
|
7564
7789
|
|
|
7565
7790
|
It's the same as sending a package, but with an extra field `metadata` in the package info.
|
|
@@ -8061,27 +8286,23 @@ ascli faspex packages recv ALL --once-only=yes --lock-port=12345
|
|
|
8061
8286
|
|
|
8062
8287
|
```bash
|
|
8063
8288
|
address_book
|
|
8064
|
-
dropbox list --recipient=
|
|
8289
|
+
dropbox list --recipient='*my_dbx'
|
|
8065
8290
|
health
|
|
8066
8291
|
login_methods
|
|
8067
8292
|
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
8293
|
package list --query.max=5
|
|
8071
|
-
package
|
|
8072
|
-
package
|
|
8073
|
-
package receive --to-folder=. --
|
|
8074
|
-
package receive
|
|
8075
|
-
package receive
|
|
8076
|
-
package receive
|
|
8077
|
-
package
|
|
8078
|
-
package
|
|
8079
|
-
package send --delivery-info=@json:'{"title":"
|
|
8080
|
-
package send --delivery-info=@json:'{"title":"
|
|
8081
|
-
package send --delivery-info=@json:'{"title":"
|
|
8082
|
-
package send --delivery-info=@json:'{"title":"
|
|
8083
|
-
package send --link=https://app.example.com/send_to_dropbox_path --delivery-info=@json:'{"title":"$(notdir test) PACKAGE_TITLE_BASE"}' test_file.bin
|
|
8084
|
-
package send --link=https://app.example.com/send_to_user_path --delivery-info=@json:'{"title":"$(notdir test) PACKAGE_TITLE_BASE"}' test_file.bin
|
|
8294
|
+
package receive ALL --once-only=yes --to-folder=. --query.max=10
|
|
8295
|
+
package receive f4_package_id --to-folder=.
|
|
8296
|
+
package receive f4_package_id2 --to-folder=. --box=sent
|
|
8297
|
+
package receive f4_package_id3 --to-folder=.
|
|
8298
|
+
package receive f4_package_id4 --recipient='*my_dbx' --to-folder=.
|
|
8299
|
+
package receive f4_package_id5 --recipient='*my_wkg' --to-folder=.
|
|
8300
|
+
package send --delivery-info=@json:'{"title":"package title","recipients":["my_email_internal","my_username"]}' test_file.bin
|
|
8301
|
+
package send --delivery-info=@json:'{"title":"package title","recipients":["my_email_internal"]}' --remote-source=%name:my_src sample_source.txt
|
|
8302
|
+
package send --delivery-info=@json:'{"title":"package title","recipients":[*my_dbx]}' test_file.bin
|
|
8303
|
+
package send --delivery-info=@json:'{"title":"package title","recipients":[*my_wkg]}' test_file.bin
|
|
8304
|
+
package send --link=https://app.example.com/send_to_dropbox_path --delivery-info=@json:'{"title":"package title"}' test_file.bin
|
|
8305
|
+
package send --link=https://app.example.com/send_to_user_path --delivery-info=@json:'{"title":"package title"}' test_file.bin
|
|
8085
8306
|
source info %name:my_src --storage=@preset:faspex4_storage
|
|
8086
8307
|
source list
|
|
8087
8308
|
source node %name:my_src br / --storage=@preset:faspex4_storage
|
|
@@ -8138,12 +8359,12 @@ ascli shares admin share user_permissions $share_id create @json:'{"user_id":'$u
|
|
|
8138
8359
|
admin group all list
|
|
8139
8360
|
admin node list
|
|
8140
8361
|
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
|
|
8362
|
+
admin share user_permissions %name:my_share list
|
|
8363
|
+
admin user all app_authorizations %username:my_username modify @json:'{"app_login":true}'
|
|
8364
|
+
admin user all app_authorizations %username:my_username show
|
|
8144
8365
|
admin user all list
|
|
8145
|
-
admin user all share_permissions
|
|
8146
|
-
admin user all share_permissions
|
|
8366
|
+
admin user all share_permissions %username:my_username list
|
|
8367
|
+
admin user all share_permissions %username:my_username show %name:my_share
|
|
8147
8368
|
admin user ldap add the_name
|
|
8148
8369
|
admin user local list
|
|
8149
8370
|
admin user saml import @json:'{"id":"the_id","name_id":"the_name"}'
|
|
@@ -8155,10 +8376,10 @@ files download --to-folder=. my_share_folder/test_file.bin my_share_folder/test_
|
|
|
8155
8376
|
files mkdir my_share_folder/new_folder
|
|
8156
8377
|
files sync push /data/local_sync --to-folder=my_share_folder/synctst
|
|
8157
8378
|
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}'
|
|
8379
|
+
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
8380
|
files upload --to-folder=my_share_folder test_file.bin
|
|
8161
8381
|
files upload --to-folder=my_share_folder test_file.bin --transfer=httpgw --transfer-info=@json:'{"url":"https://tst.example.com/path@"}'
|
|
8382
|
+
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
8383
|
health
|
|
8163
8384
|
```
|
|
8164
8385
|
|
|
@@ -8186,7 +8407,7 @@ transfer current list --query.filter='(transfer_name contain aoc)'
|
|
|
8186
8407
|
transfer current list --query=@json:'{"filter1":"transfer_name","comp1":"contain","val1":"aoc"}'
|
|
8187
8408
|
transfer current show console_xfer_id
|
|
8188
8409
|
transfer smart list
|
|
8189
|
-
transfer smart sub my_smart_id
|
|
8410
|
+
transfer smart sub my_smart_id @: source.paths.0=my_smart_file source_type=user_selected
|
|
8190
8411
|
```
|
|
8191
8412
|
|
|
8192
8413
|
## Plugin: `orchestrator`:IBM Aspera Orchestrator
|
|
@@ -8199,31 +8420,46 @@ transfer smart sub my_smart_id @json:'{"source":{"paths":["my_smart_file"]},"sou
|
|
|
8199
8420
|
```bash
|
|
8200
8421
|
health
|
|
8201
8422
|
info
|
|
8423
|
+
monitors
|
|
8202
8424
|
plugins
|
|
8203
8425
|
processes
|
|
8204
8426
|
workflow details my_workflow_id
|
|
8205
8427
|
workflow export my_workflow_id
|
|
8206
8428
|
workflow inputs my_workflow_id
|
|
8207
8429
|
workflow list
|
|
8430
|
+
workflow outputs my_workflow_id
|
|
8208
8431
|
workflow start my_workflow_id @json:'{"Param":"world !"}'
|
|
8209
8432
|
workflow start my_workflow_id @json:'{"Param":"world !"}' --result=ResultStep:Complete_status_message
|
|
8210
8433
|
workflow status ALL
|
|
8211
8434
|
workflow status my_workflow_id
|
|
8435
|
+
workflow workorders my_workflow_id
|
|
8436
|
+
workflow workorders my_workflow_id --fields=id --query.max_results=1
|
|
8437
|
+
workorder cancel orch_workorder_id
|
|
8438
|
+
workorder output orch_workorder_id
|
|
8439
|
+
workorder reset orch_workorder_id
|
|
8440
|
+
workorder status orch_workorder_id
|
|
8441
|
+
workstep cancel 1
|
|
8442
|
+
workstep status 1
|
|
8212
8443
|
```
|
|
8213
8444
|
|
|
8214
8445
|
## Plugin: `cos`: IBM Cloud Object Storage
|
|
8215
8446
|
|
|
8216
|
-
|
|
8217
|
-
|
|
8218
|
-
|
|
8447
|
+
IBM Cloud Object Storage supports high-speed transfers using the FASP protocol.
|
|
8448
|
+
These transfers leverage the same service used by Aspera on Cloud, called the Aspera Transfer Service (ATS).
|
|
8449
|
+
You can check the list of available ATS regions here: <https://status.aspera.io>.
|
|
8450
|
+
There are two ways to provide credentials:
|
|
8219
8451
|
|
|
8220
|
-
|
|
8221
|
-
|
|
8222
|
-
If you
|
|
8452
|
+
- Using existing credentials
|
|
8453
|
+
|
|
8454
|
+
If you already have the endpoint, API key, and Resource Instance ID (CRN), use this method.
|
|
8455
|
+
|
|
8456
|
+
- Using IBM Cloud Console access
|
|
8457
|
+
|
|
8458
|
+
If you do not have credentials but have access to the IBM Cloud Console, use this alternative method.
|
|
8223
8459
|
|
|
8224
8460
|
### Using endpoint, API key and Resource Instance ID (CRN)
|
|
8225
8461
|
|
|
8226
|
-
If you have
|
|
8462
|
+
If you already have these parameters, provide the following options to `ascli`:
|
|
8227
8463
|
|
|
8228
8464
|
| Option | Description |
|
|
8229
8465
|
|------------|---------------------------------------------------|
|
|
@@ -8232,20 +8468,21 @@ If you have those parameters already, then following options shall be provided:
|
|
|
8232
8468
|
| `apikey` | API Key |
|
|
8233
8469
|
| `crn` | Resource instance ID |
|
|
8234
8470
|
|
|
8235
|
-
|
|
8471
|
+
Example: Create a Default Configuration
|
|
8236
8472
|
|
|
8237
8473
|
```shell
|
|
8238
8474
|
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
8475
|
ascli config preset set default cos mycos
|
|
8240
8476
|
```
|
|
8241
8477
|
|
|
8242
|
-
|
|
8478
|
+
Once configured, proceed to the [transfer example](#operations-transfers).
|
|
8243
8479
|
|
|
8244
8480
|
### Using service credential file
|
|
8245
8481
|
|
|
8246
|
-
If you are the COS administrator and
|
|
8247
|
-
|
|
8248
|
-
|
|
8482
|
+
If you are the COS administrator and do not yet have credentials,
|
|
8483
|
+
you can create them directly from the IBM Cloud Console (Web UI):
|
|
8484
|
+
|
|
8485
|
+
Steps:
|
|
8249
8486
|
|
|
8250
8487
|
- → Navigation Menu
|
|
8251
8488
|
- → [Resource List](https://cloud.ibm.com/resources)
|
|
@@ -8255,7 +8492,7 @@ Navigate to:
|
|
|
8255
8492
|
- → New credentials (Leave default role: Writer, no special options)
|
|
8256
8493
|
- → Copy to clipboard
|
|
8257
8494
|
|
|
8258
|
-
|
|
8495
|
+
Save the copied JSON value to a file, for example: `$HOME/cos_service_creds.json`
|
|
8259
8496
|
|
|
8260
8497
|
or using the IBM Cloud CLI:
|
|
8261
8498
|
|
|
@@ -8264,9 +8501,10 @@ ibmcloud resource service-keys
|
|
|
8264
8501
|
ibmcloud resource service-key _service_key_name_here_ --output JSON|jq '.[0].credentials'>$HOME/service_creds.json
|
|
8265
8502
|
```
|
|
8266
8503
|
|
|
8267
|
-
|
|
8504
|
+
> [!NOTE]
|
|
8505
|
+
> If `jq` is not installed, you can manually extract the credentials section from the JSON output.
|
|
8268
8506
|
|
|
8269
|
-
|
|
8507
|
+
The service credential file consists of the following structure:
|
|
8270
8508
|
|
|
8271
8509
|
```json
|
|
8272
8510
|
{
|
|
@@ -8284,33 +8522,32 @@ It consists in the following structure:
|
|
|
8284
8522
|
}
|
|
8285
8523
|
```
|
|
8286
8524
|
|
|
8287
|
-
The field
|
|
8525
|
+
The field mappings are as follows:
|
|
8288
8526
|
|
|
8289
|
-
|
|
8527
|
+
- `resource_instance_id` → option `crn`
|
|
8528
|
+
- `apikey` → option `apikey`
|
|
8290
8529
|
|
|
8291
8530
|
> [!NOTE]
|
|
8292
|
-
> Endpoints for regions can be found by querying the `endpoints` URL
|
|
8531
|
+
> Endpoints for regions can be found by querying the `endpoints` URL in the JSON file or from the IBM Cloud Console.
|
|
8293
8532
|
|
|
8294
8533
|
The required options for this method are:
|
|
8295
8534
|
|
|
8296
|
-
| Option | Description
|
|
8535
|
+
| Option | Description |
|
|
8297
8536
|
|-----------------------|------------------------------------------------|
|
|
8298
|
-
| `bucket` | Bucket name
|
|
8299
|
-
| `region` | Bucket region<br/>e.g. `eu-de`
|
|
8537
|
+
| `bucket` | Bucket name |
|
|
8538
|
+
| `region` | Bucket region<br/>e.g. `eu-de` |
|
|
8300
8539
|
| `service_credentials` | JSON information saved from IBM Cloud console. |
|
|
8301
8540
|
|
|
8302
|
-
|
|
8541
|
+
Example: Create a Default Configuration
|
|
8303
8542
|
|
|
8304
8543
|
```shell
|
|
8305
|
-
ascli config preset update mycos --bucket=
|
|
8544
|
+
ascli config preset update mycos --bucket=mybucket --service-credentials=@val:@json:@file:~/service_creds.json --region=us-south
|
|
8306
8545
|
ascli config preset set default cos mycos
|
|
8307
8546
|
```
|
|
8308
8547
|
|
|
8309
8548
|
### Operations, transfers
|
|
8310
8549
|
|
|
8311
|
-
|
|
8312
|
-
|
|
8313
|
-
A subset of `node` plugin operations are supported, basically Node API:
|
|
8550
|
+
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
8551
|
|
|
8315
8552
|
```shell
|
|
8316
8553
|
ascli cos node info
|
|
@@ -8318,7 +8555,8 @@ ascli cos node upload 'faux:///sample1G?1g'
|
|
|
8318
8555
|
```
|
|
8319
8556
|
|
|
8320
8557
|
> [!NOTE]
|
|
8321
|
-
>
|
|
8558
|
+
> The file `sample1G` is a dummy file of size 2 GB, generated using the `faux` PVCL scheme (see previous section and `man ascp`).
|
|
8559
|
+
> To upload a real file, simply replace the `faux:///...` URI with the actual file path.
|
|
8322
8560
|
|
|
8323
8561
|
### Tested commands for `cos`
|
|
8324
8562
|
|
|
@@ -8347,6 +8585,10 @@ info
|
|
|
8347
8585
|
|
|
8348
8586
|
## Plugin: `faspio`: Faspio Gateway
|
|
8349
8587
|
|
|
8588
|
+
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.
|
|
8589
|
+
It integrates seamlessly into existing workflows and supports use cases such as server-to-server transfers, database replication, and messaging systems.
|
|
8590
|
+
Using `ascli`, you can remotely create and manage bridges on faspio Gateway, simplifying configuration and automation.
|
|
8591
|
+
|
|
8350
8592
|
### Tested commands for `faspio`
|
|
8351
8593
|
|
|
8352
8594
|
> [!NOTE]
|
|
@@ -8354,7 +8596,7 @@ info
|
|
|
8354
8596
|
|
|
8355
8597
|
```bash
|
|
8356
8598
|
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
|
|
8599
|
+
bridges delete --bulk=yes @json:faspio_bclean_list
|
|
8358
8600
|
bridges list
|
|
8359
8601
|
health
|
|
8360
8602
|
```
|
|
@@ -8370,20 +8612,34 @@ Retrieve information on subscription.
|
|
|
8370
8612
|
|
|
8371
8613
|
```bash
|
|
8372
8614
|
entitlement
|
|
8373
|
-
health
|
|
8615
|
+
health
|
|
8374
8616
|
```
|
|
8375
8617
|
|
|
8376
8618
|
## Plugin: `preview`: Preview generator for AoC
|
|
8377
8619
|
|
|
8378
|
-
The `preview`
|
|
8379
|
-
|
|
8380
|
-
|
|
8620
|
+
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.
|
|
8621
|
+
This plugin leverages the **Node API** of Aspera HSTS and requires:
|
|
8622
|
+
|
|
8623
|
+
- An Access Key
|
|
8624
|
+
- The associated **storage root**
|
|
8381
8625
|
|
|
8382
|
-
|
|
8383
|
-
- Methods for generation of video preview
|
|
8384
|
-
- Parameters for video handling
|
|
8626
|
+
### Key Features and Options
|
|
8385
8627
|
|
|
8386
|
-
|
|
8628
|
+
You can configure several aspects of the preview generation process:
|
|
8629
|
+
|
|
8630
|
+
- File Detection Methods
|
|
8631
|
+
|
|
8632
|
+
Define how new files requiring previews are identified.
|
|
8633
|
+
|
|
8634
|
+
- Video Preview Generation Methods
|
|
8635
|
+
|
|
8636
|
+
Choose the approach for creating video previews (e.g., transcoding options).
|
|
8637
|
+
|
|
8638
|
+
- Video Handling Parameters
|
|
8639
|
+
|
|
8640
|
+
Fine-tune video processing, such as resolution, bitrate, and format.
|
|
8641
|
+
|
|
8642
|
+
Using `ascli` is an alternative to <https://github.com/IBM/aspera-on-cloud-file-previews>.
|
|
8387
8643
|
|
|
8388
8644
|
### Aspera Server configuration
|
|
8389
8645
|
|
|
@@ -8708,7 +8964,7 @@ If the preview generator does not have access to files on the file system (it is
|
|
|
8708
8964
|
check --skip-types=office
|
|
8709
8965
|
events --once-only=yes --skip-types=office --log-level=info
|
|
8710
8966
|
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
|
|
8967
|
+
scan --skip-types=office --log-level=info --skip-folder=/special/folder
|
|
8712
8968
|
show --base=test /etc/hosts
|
|
8713
8969
|
show --base=test my_docx
|
|
8714
8970
|
show --base=test my_mpg --video-png-conv=animated
|
|
@@ -8745,13 +9001,19 @@ Some `sync` parameters are filled by the related plugin using transfer spec para
|
|
|
8745
9001
|
|
|
8746
9002
|
> [!NOTE]
|
|
8747
9003
|
> All `sync` commands require an `async` enabled license and availability of the `async` executable (and `asyncadmin`).
|
|
8748
|
-
>The Aspera Transfer Daemon 1.3+ includes this.
|
|
9004
|
+
> The Aspera Transfer Daemon 1.3+ includes this.
|
|
8749
9005
|
|
|
8750
9006
|
### Starting a sync session
|
|
8751
9007
|
|
|
8752
9008
|
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
9009
|
The path on the other side is specified using option: `to_folder`.
|
|
8754
9010
|
|
|
9011
|
+
The general syntax is:
|
|
9012
|
+
|
|
9013
|
+
```shell
|
|
9014
|
+
ascli ... sync <direction> <path> [<sync_info>] [--to-folder=<path>]
|
|
9015
|
+
```
|
|
9016
|
+
|
|
8755
9017
|
| Direction<br/>(parameter) | Path<br/>(parameter) | `to_folder`<br/>(option) |
|
|
8756
9018
|
|-----------|--------|-------------|
|
|
8757
9019
|
| `push` | Local | Remote |
|
|
@@ -8762,6 +9024,11 @@ An optional positional `Hash` argument (`sync_info`) can be provided in either `
|
|
|
8762
9024
|
|
|
8763
9025
|
A single session can be specified using either formats.
|
|
8764
9026
|
|
|
9027
|
+
If argument `<sync_info>` is not provided, then a default configuration is generated in the `conf` format as specified in the next section.
|
|
9028
|
+
|
|
9029
|
+
If argument `<sync_info>` is provided, it defines the format to use.
|
|
9030
|
+
If parameter `sessions` or `instance` is present, then `args` is used, else `conf` is used.
|
|
9031
|
+
|
|
8765
9032
|
#### `sync_info`: `conf` format
|
|
8766
9033
|
|
|
8767
9034
|
This is the **preferred** syntax.
|
|
@@ -8769,138 +9036,155 @@ It is the same payload as specified on the `async` option `--conf` or in Node AP
|
|
|
8769
9036
|
|
|
8770
9037
|
Documentation on Async Node API can be found on [IBM Developer Portal](https://developer.ibm.com/apis/catalog?search=%22aspera%20sync%20api%22).
|
|
8771
9038
|
|
|
8772
|
-
|
|
9039
|
+
The following parameters are automatically filled from mandatory arguments, and are not allowed:
|
|
9040
|
+
|
|
9041
|
+
- `direction`
|
|
9042
|
+
- `local.path`
|
|
9043
|
+
- `remote.path`
|
|
9044
|
+
|
|
9045
|
+
Parameter `name` is set to a default value if not provided in `sync_info`.
|
|
9046
|
+
Parameter `quiet` is set to `false` if not provided in `sync_info` and a terminal is detected.
|
|
9047
|
+
|
|
9048
|
+
The documentation is available in the terminal with:
|
|
9049
|
+
|
|
9050
|
+
```shell
|
|
9051
|
+
ascli config sync spec
|
|
9052
|
+
```
|
|
8773
9053
|
|
|
8774
9054
|
| Field | Type | Description |
|
|
8775
|
-
|
|
9055
|
+
|------------------------------------------|---------|----------------------------------------------------------------------------------|
|
|
8776
9056
|
| 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
|
|
9057
|
+
| assume_no_mods | boolean | Assume that the directory structure has not been modified.<br/>(`--assume-no-mods`) |
|
|
9058
|
+
| 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) |
|
|
9059
|
+
| clean_excluded | boolean | Removes any existing entries in the snapshot database for excluded paths<br/>(`--clean-excluded`) |
|
|
9060
|
+
| cookie | string | User-defined identification string.<br/>(`--cookie={string}`) |
|
|
8781
9061
|
| 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
9062
|
| 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
|
|
9063
|
+
| create_dir | boolean | Create the source directory, target directory, or both, if they do not exist.<br/>(`--create-dir`) |
|
|
8784
9064
|
| db_cache_size | integer | Specify DB cache size. |
|
|
8785
9065
|
| db_journal_off | boolean | Turn off DB journal. |
|
|
8786
9066
|
| 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` |
|
|
9067
|
+
| dedup | string | Take the specified action when async detects duplicate files on the source.<br/>Allowed values: `copy`, `inode`, `hardlink`, `none`<br/>(`--dedup={enum}`) |
|
|
9068
|
+
| delete_before | boolean | Schedule deletes before transfers.<br/>(`--delete-before`) |
|
|
9069
|
+
| delete_delay | boolean | Delay actual deletes until the end of the synchronization.<br/>(`--delete-delay`) |
|
|
9070
|
+
| direction | string | The direction of replication relative to the local.<br/>Allowed values: `bidi`, `pull`, `push`<br/>(`--direction={enum}`)(-K) |
|
|
8791
9071
|
| exclude_dirs_older_than | object | Don't scan directories with a recursive modified time older than absolute or async start time - relative_seconds |
|
|
8792
9072
|
| exclude_dirs_older_than.absolute | string | UTC timestamp. Empty value for disabled. |
|
|
8793
9073
|
| exclude_dirs_older_than.relative_seconds | integer | Relative to async start time. `-1` for disabled. |
|
|
8794
9074
|
| 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
|
-
|
|
|
9075
|
+
| filters[].rule | string | The rule for the filter.<br/>Allowed values: `include`, `exclude`, `include_from`, `exclude_from` |
|
|
9076
|
+
| filters[].value | string | On include or exclude, the filter's pattern. On include_from or exclude_from, the path containing filter specifications |
|
|
9077
|
+
| ignore_delete | boolean | Do not copy removals to the peer.<br/>(`--ignore-delete`) |
|
|
9078
|
+
| 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
9079
|
| 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
9080
|
| local | object | |
|
|
8799
9081
|
| 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 |
|
|
9082
|
+
| local.path | string | The directory to be synchronized on the local host.<br/>(`--local-dir={string}`)(-d) |
|
|
9083
|
+
| local_apply_docroot | boolean | Prepend the docroot to the directory on the local host.<br/>(`--apply-local-docroot`) |
|
|
9084
|
+
| 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}`) |
|
|
9085
|
+
| 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) |
|
|
9086
|
+
| 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}`) |
|
|
9087
|
+
| 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`) |
|
|
9088
|
+
| 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}`) |
|
|
9089
|
+
| local_keep_dir | string | Move deleted files into the specified directory on the local host.<br/>(`--keep-dir-local={string}`) |
|
|
9090
|
+
| 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}`) |
|
|
9091
|
+
| 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}`) |
|
|
9092
|
+
| local_preserve_acls | string | Preserve access control lists on the local host.<br/>Allowed values: `native`, `metafile`, `none`<br/>(`--preserve-acls={enum}`) |
|
|
9093
|
+
| local_preserve_xattrs | string | Preserve extended attributes on the local.<br/>Allowed values: `native`, `metafile`, `none`<br/>(`--preserve-xattrs={enum}`) |
|
|
9094
|
+
| local_scan_interval_milliseconds | integer | Enable periodic scans on the local host during a continuous sync. `-1` for disabled<br/>(`--scan-interval={integer}`) |
|
|
9095
|
+
| 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
9096
|
| local_stat_cache_size | integer | Set stat cache size on the local host. 0 for disabled. |
|
|
8815
9097
|
| 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
|
|
9098
|
+
| log.level | string | Use the specified log level.<br/>Allowed values: `log`, `dbg1`, `dbg2`<br/>(special:`-D`) |
|
|
9099
|
+
| log.local_dir | string | Use the specified logging directory on the local host.<br/>(`--alt-logdir={string}`)(-L) |
|
|
9100
|
+
| log.remote_dir | string | Use the specified logging directory on the remote host.<br/>(`--remote-logdir={string}`)(-R) |
|
|
8819
9101
|
| manifest_path | string | A directory path where ascp will create manifest TEXT files (passed to ascp as --file-manifest-path) |
|
|
8820
9102
|
| 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
|
|
9103
|
+
| 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
9104
|
| 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
|
|
9105
|
+
| name | string | Name of the synchronization pair.<br/>(`--name={string}`)(-N) |
|
|
9106
|
+
| 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}`) |
|
|
9107
|
+
| no_preserve_root_attrs | boolean | Disable the preservation of attributes on the Sync root.<br/>(`--no-preserve-root-attrs`) |
|
|
9108
|
+
| no_scan | boolean | Skip initial scanning.<br/>(`--no-scan`) |
|
|
8827
9109
|
| 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
|
|
9110
|
+
| 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) |
|
|
9111
|
+
| 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}`) |
|
|
9112
|
+
| preserve_access_time | boolean | Preserve file access time from the source to the destination.<br/>(`--preserve-access-time`) |
|
|
9113
|
+
| preserve_creation_time | boolean | Preserve file creation time from the source to the destination.<br/>(`--preserve-creation-time`) |
|
|
9114
|
+
| preserve_gid | boolean | Preserve the file owner's GID.<br/>(`--preserve-gid`)(-j) |
|
|
9115
|
+
| preserve_modification_time | boolean | Preserve file modification time from the source to the destination.<br/>(`--preserve-modification-time`) |
|
|
9116
|
+
| preserve_object_lock_legal_hold | boolean | Preserve object lock legal hold status from the source to the destination.<br/>(`--preserve-object-lock-legal-hold`) |
|
|
9117
|
+
| preserve_object_lock_retention | boolean | Preserve object lock retention from the source to the destination.<br/>(`--preserve-object-lock-retention`) |
|
|
9118
|
+
| preserve_object_metadata | boolean | Preserve object metadata from the source to the destination.<br/>(`--preserve-object-metadata`) |
|
|
9119
|
+
| preserve_uid | boolean | Preserve the file owner's UID.<br/>(`--preserve-uid`)(-u) |
|
|
9120
|
+
| quiet | boolean | Disable progress display.<br/>(`--quiet`)(-q) |
|
|
8839
9121
|
| remote | object | |
|
|
8840
|
-
| remote.connect_mode |
|
|
9122
|
+
| remote.connect_mode | string | Define how to connect to the remote.<br/>Allowed values: `ssh`, `ws`<br/>(special:`--ws-connect`) |
|
|
8841
9123
|
| 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
|
|
9124
|
+
| remote.host | string | Use the specified host name or address of the remote host.<br/>(`--host={string}`) |
|
|
9125
|
+
| remote.pass | string | Authenticate the transfer with the specified password.<br/>(`--pass={string}`)(-w) |
|
|
9126
|
+
| remote.path | string | Synchronize the specified directory on the remote host.<br/>(`--remote-dir={string}`)(-r) |
|
|
9127
|
+
| remote.port | integer | Use the specified TCP port for SSH. Used when connect_mode is `ssh`<br/>(`--tcp-port={integer}`)(-P) |
|
|
9128
|
+
| remote.private_key_paths | array | Authenticate with the specified SSH private key file.<br/>(`--private-key-path={array}`)(-i) |
|
|
9129
|
+
| remote.proxy | object | Specify the address of the Aspera high-speed proxy server.<br/>(special:`--proxy={object}`) |
|
|
8848
9130
|
| remote.proxy.host | string | Use the specified host name or address of the proxy. |
|
|
8849
9131
|
| remote.proxy.pass | string | Authenticate to the proxy with the specified password. |
|
|
8850
9132
|
| remote.proxy.port | integer | Use the specified port, default is 9091 for dnat, 9092. for dnats |
|
|
8851
|
-
| remote.proxy.protocol |
|
|
9133
|
+
| remote.proxy.protocol | string | The protocol to be used.<br/>Allowed values: `none`, `dnat`, `dnats` |
|
|
8852
9134
|
| remote.proxy.user | string | Authenticate to the proxy with the specified username. |
|
|
8853
9135
|
| remote.token | string | Token string passed to server's authentication service. |
|
|
8854
9136
|
| 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
|
|
9137
|
+
| remote.user | string | Authenticate the transfer with the specified username.<br/>(`--user={string}`) |
|
|
8856
9138
|
| 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
|
|
9139
|
+
| 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}`) |
|
|
9140
|
+
| 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) |
|
|
9141
|
+
| 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}`) |
|
|
9142
|
+
| 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`) |
|
|
9143
|
+
| 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}`) |
|
|
9144
|
+
| remote_keep_dir | string | Move deleted files into the specified directory on the remote host.<br/>(`--keep-dir-remote={string}`) |
|
|
9145
|
+
| 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}`) |
|
|
9146
|
+
| 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}`) |
|
|
9147
|
+
| 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}`) |
|
|
9148
|
+
| 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}`) |
|
|
9149
|
+
| remote_scan_interval_milliseconds | integer | Enable periodic scans on the remote host. `-1` for disabled.<br/>(special:`--remote-scan-interval={integer}`) |
|
|
9150
|
+
| 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
9151
|
| 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 |
|
|
9152
|
+
| remove_after_transfer | boolean | Remove source files after they are successfully synchronized.<br/>(`--remove-after-transfer`) |
|
|
9153
|
+
| reset | boolean | Clear the snapshot database and rescan the synchronized directories and files to create a fresh snapshot<br/>(`--reset`)(-x) |
|
|
8872
9154
|
| 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
9155
|
| 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 |
|
|
9156
|
+
| 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}`) |
|
|
9157
|
+
| resume.min_size | integer | This field specifies the minimum size of files that will be allowed to resume.<br/>(`--support-resume={integer}`) |
|
|
9158
|
+
| resume_scan | boolean | Resume the scan from where the previous execution left off.<br/>(`--resume-scan`) |
|
|
9159
|
+
| 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`) |
|
|
9160
|
+
| scan_file_rename | boolean | Enable the detection of renamed files compared to the previous scan, based on matching inodes.<br/>(`--scan-file-rename`) |
|
|
9161
|
+
| 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) |
|
|
9162
|
+
| sharing_retry_max | integer | Retry synchronizations up to the specified maximum number after a sharing violation.<br/>(`--sharing-retry-max={integer}`) |
|
|
9163
|
+
| store_metadata_records | boolean | Store the acls or xattrs in the snapshot database.<br/>(`--store-metadata-records`) |
|
|
9164
|
+
| 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) |
|
|
9165
|
+
| tags | object | User-defined metadata tags.<br/>(special:`--tags64={object}`) |
|
|
9166
|
+
| 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}`) |
|
|
9167
|
+
| transfer_threads[].size | integer | Upper limit. `-1` for infinity. |
|
|
9168
|
+
| transfer_threads[].threads | integer | The number of threads. |
|
|
8885
9169
|
| 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
|
|
9170
|
+
| 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) |
|
|
9171
|
+
| transport.compression | string | Compress a file before transfer using the specified MODE.<br/>Allowed values: `none`, `zlib`<br/>(`--compression={enum}`) |
|
|
9172
|
+
| transport.datagram_size | integer | Specify the datagram size (MTU) for FASP. By default it uses the detected path MTU.<br/>(`--datagram-size={integer}`)(-Z) |
|
|
9173
|
+
| transport.min_rate | integer | Attempt to transfer no slower than the specified rate (in bps).<br/>(`--min-rate={integer}`)(-m) |
|
|
9174
|
+
| transport.rate_policy | string | Defines how `ascp` will manage the bandwidth.<br/>Allowed values: `fair`, `fixed`, `high`, `low`<br/>(`--rate-policy={enum}`)(-a) |
|
|
9175
|
+
| transport.raw_options | array | Pass arbitrary arguments to `ascp`.<br/>(special:`--raw-options={array}`) |
|
|
9176
|
+
| 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) |
|
|
9177
|
+
| 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) |
|
|
9178
|
+
| transport.target_rate | integer | Transfer no faster than the specified rate (in bps).<br/>(`--target-rate={integer}`)(-l) |
|
|
9179
|
+
| transport.udp_port | integer | Use the specified UDP port for FASP data transfer.<br/>(`--udp-port={integer}`)(-O) |
|
|
9180
|
+
| 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
9181
|
| watchd | object | When connection is configured, `asperawatchd` is used to detect the changes on the source directory.<br/>(special:`--watchd={object}`) |
|
|
8898
|
-
| watchd.datastore |
|
|
9182
|
+
| watchd.datastore | string | Specify the type of datastore, `none` for disabled.<br/>Allowed values: `none`, `redis`, `scalekv` |
|
|
8899
9183
|
| watchd.domain | string | Specify the domain. Default is the current username. |
|
|
8900
9184
|
| watchd.host | string | Use the specified host name or address to connect to the datastore. |
|
|
8901
9185
|
| 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
|
|
9186
|
+
| write_gid | string | Try to write files as the specified group.<br/>(`--write-gid={string}`) |
|
|
9187
|
+
| write_uid | string | Try to write files as the specified user.<br/>(`--write-uid={string}`) |
|
|
8904
9188
|
|
|
8905
9189
|
#### `sync_info`: `args` format
|
|
8906
9190
|
|
|
@@ -8911,13 +9195,26 @@ Technically, it allows definition of multiple sync sessions in a single command,
|
|
|
8911
9195
|
|
|
8912
9196
|
This is the mode selection if there are either keys `sessions` or `instance` in option `sync_info`.
|
|
8913
9197
|
|
|
8914
|
-
|
|
9198
|
+
The following parameters are automatically filled from mandatory arguments, and are not allowed:
|
|
9199
|
+
|
|
9200
|
+
- `direction`
|
|
9201
|
+
- `local_dir`
|
|
9202
|
+
- `remote_dir`
|
|
9203
|
+
|
|
9204
|
+
Parameter `name` is set to a default value if not provided in `sync_info`.
|
|
8915
9205
|
|
|
8916
9206
|
### Sync management and monitoring: `admin`
|
|
8917
9207
|
|
|
8918
9208
|
The `admin` command provides several sub commands that access directly the Async snap database (`snap.db`).
|
|
8919
9209
|
(With the exception of `status` which uses the utility `asyncadmin`, available only on server products.)
|
|
8920
9210
|
|
|
9211
|
+
This command does not require any communication to the server and accesses only the local database.
|
|
9212
|
+
It can be executed also from the `config` plugin:
|
|
9213
|
+
|
|
9214
|
+
```shell
|
|
9215
|
+
ascli config sync admin
|
|
9216
|
+
```
|
|
9217
|
+
|
|
8921
9218
|
To use the `admin` command, the gem `sqlite3` shall be installed:
|
|
8922
9219
|
|
|
8923
9220
|
```shell
|
|
@@ -9349,6 +9646,16 @@ If you want to use `ed25519` keys, then install the required gems:
|
|
|
9349
9646
|
gem install ed25519 bcrypt_pbkdf
|
|
9350
9647
|
```
|
|
9351
9648
|
|
|
9649
|
+
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:
|
|
9650
|
+
|
|
9651
|
+
```text
|
|
9652
|
+
OpenSSH keys only supported if ED25519 is available (NotImplementedError)
|
|
9653
|
+
net-ssh requires the following gems for ed25519 support:
|
|
9654
|
+
* ed25519 (>= 1.2, < 2.0)
|
|
9655
|
+
* bcrypt_pbkdf (>= 1.0, < 2.0)
|
|
9656
|
+
See https://github.com/net-ssh/net-ssh/issues/565 for more information
|
|
9657
|
+
```
|
|
9658
|
+
|
|
9352
9659
|
In addition, if **JRuby** is used, host keys of type: `ecdsa-sha2` and `ecdh-sha2` are also deactivated by default.
|
|
9353
9660
|
To activate, set env var `ASCLI_ENABLE_ECDSHA2` to `true`.
|
|
9354
9661
|
|