aspera-cli 4.24.1 → 4.24.2
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 +15 -2
- data/README.md +745 -436
- data/bin/ascli +20 -1
- data/bin/asession +23 -27
- data/lib/aspera/agent/base.rb +10 -21
- data/lib/aspera/agent/connect.rb +2 -3
- data/lib/aspera/agent/desktop.rb +2 -2
- data/lib/aspera/agent/direct.rb +49 -32
- data/lib/aspera/agent/factory.rb +31 -0
- data/lib/aspera/api/aoc.rb +79 -49
- data/lib/aspera/api/faspex.rb +212 -0
- data/lib/aspera/api/node.rb +99 -84
- data/lib/aspera/ascp/installation.rb +22 -21
- data/lib/aspera/ascp/management.rb +119 -23
- data/lib/aspera/assert.rb +14 -8
- data/lib/aspera/cli/extended_value.rb +15 -15
- data/lib/aspera/cli/formatter.rb +7 -5
- data/lib/aspera/cli/hints.rb +8 -0
- data/lib/aspera/cli/info.rb +4 -4
- data/lib/aspera/cli/main.rb +55 -70
- data/lib/aspera/cli/manager.rb +7 -4
- data/lib/aspera/cli/plugins/alee.rb +2 -1
- data/lib/aspera/cli/plugins/aoc.rb +110 -186
- data/lib/aspera/cli/plugins/ats.rb +4 -4
- data/lib/aspera/cli/plugins/base.rb +335 -0
- data/lib/aspera/cli/plugins/basic_auth.rb +45 -0
- data/lib/aspera/cli/plugins/config.rb +249 -220
- data/lib/aspera/cli/plugins/console.rb +15 -15
- data/lib/aspera/cli/plugins/cos.rb +2 -2
- data/lib/aspera/cli/plugins/factory.rb +78 -0
- data/lib/aspera/cli/plugins/faspex.rb +17 -20
- data/lib/aspera/cli/plugins/faspex5.rb +79 -193
- data/lib/aspera/cli/plugins/faspio.rb +14 -13
- data/lib/aspera/cli/plugins/httpgw.rb +13 -12
- data/lib/aspera/cli/plugins/node.rb +34 -32
- data/lib/aspera/cli/plugins/oauth.rb +48 -0
- data/lib/aspera/cli/plugins/orchestrator.rb +15 -13
- data/lib/aspera/cli/plugins/preview.rb +4 -4
- data/lib/aspera/cli/plugins/server.rb +15 -13
- data/lib/aspera/cli/plugins/shares.rb +18 -15
- data/lib/aspera/cli/sync_actions.rb +1 -1
- data/lib/aspera/cli/transfer_agent.rb +24 -20
- data/lib/aspera/cli/transfer_progress.rb +6 -6
- data/lib/aspera/cli/version.rb +3 -3
- data/lib/aspera/cli/wizard.rb +65 -53
- data/lib/aspera/colors.rb +6 -0
- data/lib/aspera/command_line_builder.rb +45 -50
- data/lib/aspera/command_line_converter.rb +2 -1
- data/lib/aspera/coverage.rb +1 -1
- data/lib/aspera/data_repository.rb +1 -1
- data/lib/aspera/environment.rb +10 -7
- data/lib/aspera/faspex_gw.rb +6 -4
- data/lib/aspera/faspex_postproc.rb +1 -1
- data/lib/aspera/keychain/macos_security.rb +1 -1
- data/lib/aspera/log.rb +37 -9
- data/lib/aspera/nagios.rb +1 -1
- data/lib/aspera/oauth/base.rb +17 -10
- data/lib/aspera/oauth/factory.rb +8 -8
- data/lib/aspera/oauth/web.rb +2 -2
- data/lib/aspera/products/connect.rb +4 -3
- data/lib/aspera/products/desktop.rb +1 -4
- data/lib/aspera/products/other.rb +9 -1
- data/lib/aspera/products/transferd.rb +0 -1
- data/lib/aspera/rest.rb +126 -83
- data/lib/aspera/ssh.rb +3 -3
- data/lib/aspera/sync/args.schema.yaml +46 -3
- data/lib/aspera/sync/conf.schema.yaml +130 -94
- data/lib/aspera/sync/operations.rb +16 -16
- data/lib/aspera/temp_file_manager.rb +17 -5
- data/lib/aspera/transfer/error.rb +16 -7
- data/lib/aspera/transfer/parameters.rb +34 -20
- data/lib/aspera/transfer/resumer.rb +74 -0
- data/lib/aspera/transfer/spec.rb +4 -3
- data/lib/aspera/transfer/spec.schema.yaml +132 -51
- data/lib/aspera/transfer/spec_doc.rb +41 -35
- data/lib/aspera/uri_reader.rb +1 -1
- data/lib/aspera/web_auth.rb +6 -6
- data.tar.gz.sig +0 -0
- metadata +9 -7
- metadata.gz.sig +0 -0
- data/lib/aspera/cli/basic_auth_plugin.rb +0 -43
- data/lib/aspera/cli/plugin.rb +0 -333
- data/lib/aspera/cli/plugin_factory.rb +0 -81
- data/lib/aspera/resumer.rb +0 -77
- data/lib/aspera/transfer/error_info.rb +0 -91
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.24.
|
|
5
|
+
subtitle: "ascli 4.24.2"
|
|
6
6
|
author: "Laurent MARTIN"
|
|
7
7
|
PANDOC_META_END
|
|
8
8
|
-->
|
|
@@ -10,26 +10,27 @@ PANDOC_META_END
|
|
|
10
10
|
|
|
11
11
|
<!-- NOTE CAUTION WARNING IMPORTANT TIP INFO -->
|
|
12
12
|
|
|
13
|
+
<!-- markdownlint-disable MD028 -->
|
|
14
|
+
|
|
13
15
|
[](https://badge.fury.io/rb/aspera-cli)
|
|
14
16
|
[](https://github.com/IBM/aspera-cli/actions)
|
|
15
17
|
[](https://bestpractices.coreinfrastructure.org/projects/5861)
|
|
16
18
|
|
|
17
19
|
## Introduction
|
|
18
20
|
|
|
19
|
-

|
|
20
22
|
|
|
21
23
|
Hootput lives in the terminal, watching over every command with wide, unblinking eyes.
|
|
22
24
|
Known for concise output and sharp insight, this owl thrives where others get lost in the dark.
|
|
23
25
|
It doesn’t chatter; it hoots—clear, precise, and always on time.
|
|
24
26
|
|
|
25
|
-
Like ascli
|
|
27
|
+
Like `ascli`, Hootput is built for action: launching transfers, parsing options, and navigating APIs without hesitation.
|
|
26
28
|
Light on feathers but heavy on wisdom, it turns complexity into simple one-liners.
|
|
27
29
|
When you hear Hootput’s call, you know your data is already in flight.
|
|
28
30
|
|
|
29
31
|
---
|
|
30
32
|
|
|
31
|
-
|
|
32
|
-
"Hey, I’m ascli — your data’s personal courier.
|
|
33
|
+
"Hey, I’m `ascli` — your data’s personal courier.
|
|
33
34
|
I don’t do flashy dashboards; I’m happiest in a terminal window.
|
|
34
35
|
Hand me a command, and I’ll zip your files across the network faster than you thought possible.
|
|
35
36
|
|
|
@@ -41,7 +42,7 @@ Need to debug? I’ll show you what’s going on under the hood.
|
|
|
41
42
|
|
|
42
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."
|
|
43
44
|
|
|
44
|
-
Version : 4.24.
|
|
45
|
+
Version : 4.24.2
|
|
45
46
|
|
|
46
47
|
Laurent/2016-2025
|
|
47
48
|
|
|
@@ -105,9 +106,10 @@ While `ascp` can be used directly, it is limited to basic send/receive operation
|
|
|
105
106
|
|
|
106
107
|
### Notations, Shell, Examples
|
|
107
108
|
|
|
108
|
-
Command line operations examples are shown using a shell such as: `bash` or `zsh
|
|
109
|
+
Command line operations examples are shown using a shell such as: `bash` (Linux) or `zsh` (macOS).
|
|
110
|
+
Using [Windows PowerShell or cmd](#shell-parsing-for-windows) is also possible.
|
|
109
111
|
|
|
110
|
-
Command line arguments beginning with `my_` in examples, e.g. `my_param_value`, are user-provided value and not fixed value commands.
|
|
112
|
+
Command line arguments beginning with `my_` in examples, e.g. `my_param_value`, are user-provided value, and not fixed value commands.
|
|
111
113
|
|
|
112
114
|
`ascli` is an API **Client** toward the remote Aspera application **Server** (Faspex, HSTS, etc...)
|
|
113
115
|
|
|
@@ -116,7 +118,7 @@ The transfer is not directly implemented in `ascli`, rather `ascli` uses one of
|
|
|
116
118
|
|
|
117
119
|
> [!NOTE]
|
|
118
120
|
> A **[Transfer Agent](#transfer-clients-agents)** is a client for the remote Transfer Server (HSTS/HSTE).
|
|
119
|
-
> It can be local or remote.
|
|
121
|
+
> It can be local, or remote.
|
|
120
122
|
> For example a remote Aspera Transfer Server may be used as a transfer agent (using Node API).
|
|
121
123
|
> i.e. using option `--transfer=node`
|
|
122
124
|
|
|
@@ -133,7 +135,7 @@ ascli --version
|
|
|
133
135
|
```
|
|
134
136
|
|
|
135
137
|
```text
|
|
136
|
-
4.24.
|
|
138
|
+
4.24.2
|
|
137
139
|
```
|
|
138
140
|
|
|
139
141
|
> [!NOTE]
|
|
@@ -143,7 +145,7 @@ ascli --version
|
|
|
143
145
|
|
|
144
146
|
Once installation is completed, you can proceed to the first use with a demo server:
|
|
145
147
|
|
|
146
|
-
If you want to test with Aspera on Cloud, jump to section: [Wizard](#
|
|
148
|
+
If you want to test with Aspera on Cloud, jump to section: [Wizard](#wizard).
|
|
147
149
|
|
|
148
150
|
To test with Aspera demo transfer server, set up the environment and then test:
|
|
149
151
|
|
|
@@ -246,16 +248,31 @@ If you don't have internet for the installation, refer to section [Installation
|
|
|
246
248
|
|
|
247
249
|
### Single file executable
|
|
248
250
|
|
|
249
|
-
It is planned to provide `ascli` as a single platform-dependent executable.
|
|
250
|
-
[Beta releases can be found here](https://ibm.biz/aspera-cli-exe).
|
|
251
|
-
|
|
252
251
|
> [!CAUTION]
|
|
253
252
|
> This is a Beta feature.
|
|
254
|
-
|
|
253
|
+
|
|
254
|
+
`ascli` is available as a single **platform-dependent executable**.
|
|
255
|
+
[Beta releases can be found here](https://ibm.biz/aspera-cli-exe).
|
|
256
|
+
|
|
257
|
+
Installation:
|
|
258
|
+
|
|
259
|
+
```shell
|
|
260
|
+
curl -o ascli https://eudemo.asperademo.com/download/aspera-cli/ascli.4.24.1.osx-arm64
|
|
261
|
+
chmod a+x ascli
|
|
262
|
+
./ascli conf transferd install
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
> [!NOTE]
|
|
266
|
+
> Replace the URL with the one for your platform.
|
|
255
267
|
> Installation of `ascp` is still required separately.
|
|
256
268
|
> Refer to [Install `ascp`](#installation-of-ascp-through-transferd).
|
|
257
|
-
|
|
258
|
-
|
|
269
|
+
|
|
270
|
+
#### Linux: GLIBC version
|
|
271
|
+
|
|
272
|
+
> [!CAUTION]
|
|
273
|
+
> On Linux, the executable requires a minimum GLIBC version, specified in the executable name on download site.
|
|
274
|
+
|
|
275
|
+
On Linux, check your system's GLIBC version on this site: [repology.org](https://repology.org/project/glibc/versions), or check your GLIBC version with `ldd`:
|
|
259
276
|
|
|
260
277
|
```shell
|
|
261
278
|
ldd --version | head -n1
|
|
@@ -293,13 +310,13 @@ Required Ruby version: >= 3.1.
|
|
|
293
310
|
|
|
294
311
|
**In priority**, refer to the official Ruby documentation:
|
|
295
312
|
|
|
296
|
-
- [
|
|
297
|
-
- [Installation Guide](https://www.ruby-lang.org/en/documentation/installation/)
|
|
313
|
+
- [Official Ruby Download](https://www.ruby-lang.org/en/downloads/)
|
|
314
|
+
- [Official Ruby Installation Guide](https://www.ruby-lang.org/en/documentation/installation/)
|
|
298
315
|
|
|
299
316
|
For convenience, you may refer to the following sections for a proposed method for specific operating systems.
|
|
300
317
|
|
|
301
318
|
Latest version of `ascli` requires a Ruby version [at least under maintenance support](https://www.ruby-lang.org/en/downloads/branches/).
|
|
302
|
-
If only an older Ruby version
|
|
319
|
+
If only an older Ruby version must be used due to system constraints, then use an older version of `ascli` that supports it.
|
|
303
320
|
|
|
304
321
|
#### Windows: Installer
|
|
305
322
|
|
|
@@ -323,44 +340,33 @@ rubyinstaller-devkit-3.2.2-1-x64.exe /silent /currentuser /noicons /dir=C:\asper
|
|
|
323
340
|
|
|
324
341
|
#### macOS: `brew`
|
|
325
342
|
|
|
326
|
-
**macOS** comes with Ruby 2.6.
|
|
327
|
-
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).
|
|
328
|
-
It will be removed from macOS in the future.
|
|
329
|
-
Do not use it.
|
|
330
|
-
|
|
331
343
|
The recommended way is to use [Homebrew](https://brew.sh/).
|
|
332
344
|
|
|
333
345
|
```shell
|
|
334
346
|
brew install ruby
|
|
335
347
|
```
|
|
336
348
|
|
|
349
|
+
> [!WARNING]
|
|
350
|
+
> **macOS** comes with Ruby 2.6.
|
|
351
|
+
> 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).
|
|
352
|
+
> It will be removed from macOS in the future.
|
|
353
|
+
> Do not use it.
|
|
354
|
+
> Use the required version of Ruby.
|
|
355
|
+
|
|
337
356
|
This installs a recent Ruby suitable for `ascli`.
|
|
338
357
|
|
|
339
|
-
To add PATH to Ruby on Apple Silicon, add
|
|
340
|
-
|
|
341
|
-
```shell
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
case $version in list) for r in $(brew list -1 | grep '^ruby'); do
|
|
345
|
-
echo "$(brew info --json=v1 $r | jq -r '.[0].installed[0].version') : use_ruby $r"
|
|
346
|
-
done|gsort -k1,1V;return;;; esac
|
|
347
|
-
local prefix=$(brew --prefix ruby${version:+@}$version)
|
|
348
|
-
if ! test -d "$prefix";then
|
|
349
|
-
echo "No such ruby version: $version"
|
|
350
|
-
brew list|grep ruby
|
|
351
|
-
return 1
|
|
352
|
-
fi
|
|
353
|
-
PATH="$prefix/bin:$(echo "$PATH" | tr ':' '\n' | grep -v '/ruby' | paste -sd ':' -)"
|
|
354
|
-
PATH="$(gem env gemdir)/bin:$PATH"
|
|
355
|
-
export LDFLAGS="-L$prefix/lib"
|
|
356
|
-
export CPPFLAGS="-I$prefix/include"
|
|
357
|
-
export PKG_CONFIG_PATH="$prefix/lib/pkgconfig"
|
|
358
|
-
echo "Using: $prefix"
|
|
359
|
-
ruby -v
|
|
360
|
-
}
|
|
361
|
-
use_ruby
|
|
358
|
+
To add PATH to Ruby on Apple Silicon, add the following lines to your shell configuration file (i.e. `~/.zshrc` if you are using `zsh`, or `~/.bash_profile` for `bash`):
|
|
359
|
+
|
|
360
|
+
```shell
|
|
361
|
+
export PATH="$(brew --prefix ruby)/bin:$PATH"
|
|
362
|
+
export PATH="$(gem env gemdir)/bin:$PATH"
|
|
362
363
|
```
|
|
363
364
|
|
|
365
|
+
> [!NOTE]
|
|
366
|
+
> 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, same as message from:
|
|
368
|
+
> `brew info ruby`
|
|
369
|
+
|
|
364
370
|
#### Linux: Package
|
|
365
371
|
|
|
366
372
|
If your Linux distribution provides a standard Ruby package, you can use it provided that the version supported.
|
|
@@ -569,7 +575,7 @@ Those are not installed as part of dependencies because they involve compilation
|
|
|
569
575
|
See [Gemfile](Gemfile):
|
|
570
576
|
|
|
571
577
|
| name | version | comment |
|
|
572
|
-
|
|
|
578
|
+
| -------------------- | ------- | --------------------------------------------------- |
|
|
573
579
|
| grpc | ~> 1.71 | (no jruby) for Aspera Transfer Daemon |
|
|
574
580
|
| mimemagic | ~> 0.4 | for preview |
|
|
575
581
|
| rmagick | ~> 6.1 | (no jruby) for terminal view |
|
|
@@ -578,6 +584,8 @@ See [Gemfile](Gemfile):
|
|
|
578
584
|
| sqlite3 | ~> 2.7 | (no jruby) for async DB |
|
|
579
585
|
| jdbc-sqlite3 | ~> 3.46 | (jruby) for async DB |
|
|
580
586
|
| sequel | ~> 5.96 | (jruby) for async DB |
|
|
587
|
+
| ed25519 | ~> 1.4 | (no jruby) for ed25519 |
|
|
588
|
+
| bcrypt_pbkdf | ~> 1.1 | (no jruby) for ed25519 |
|
|
581
589
|
|
|
582
590
|
Install like this:
|
|
583
591
|
|
|
@@ -590,6 +598,8 @@ gem install bigdecimal -v '~> 3.1'
|
|
|
590
598
|
gem install sqlite3 -v '~> 2.7'
|
|
591
599
|
gem install jdbc-sqlite3 -v '~> 3.46'
|
|
592
600
|
gem install sequel -v '~> 5.96'
|
|
601
|
+
gem install ed25519 -v '~> 1.4'
|
|
602
|
+
gem install bcrypt_pbkdf -v '~> 1.1'
|
|
593
603
|
```
|
|
594
604
|
|
|
595
605
|
### Ruby Gem: `aspera-cli`
|
|
@@ -634,15 +644,30 @@ The user installs the gem with `HighSecurity` or `MediumSecurity`: this will suc
|
|
|
634
644
|
gem install -P MediumSecurity aspera-cli
|
|
635
645
|
```
|
|
636
646
|
|
|
647
|
+
#### Beta release of gem
|
|
648
|
+
|
|
649
|
+
Beta version of gem can be found here: <https://ibm.biz/aspera-cli-beta>
|
|
650
|
+
|
|
651
|
+
On Linux/macOS, install in a terminal:
|
|
652
|
+
|
|
653
|
+
```shell
|
|
654
|
+
curl -sLo aspera-cli-beta.gem https://ibm.biz/aspera-cli-beta
|
|
655
|
+
gem install aspera-cli-beta.gem
|
|
656
|
+
```
|
|
657
|
+
|
|
658
|
+
On Windows, download the link, that saves the file: `aspera-cli-beta.gem`, then install with `gem install aspera-cli-beta.gem`.
|
|
659
|
+
|
|
637
660
|
### FASP Protocol: `ascp`
|
|
638
661
|
|
|
639
|
-
|
|
640
|
-
Only two additional files are required to perform an Aspera Transfer, which are part of Aspera Transfer Daemon:
|
|
662
|
+
File transfers are primarily performed using the **FASP** protocol via the `ascp` utility.
|
|
641
663
|
|
|
642
|
-
|
|
643
|
-
|
|
664
|
+
To execute an Aspera transfer, only two additional files are required, both included with the Aspera Transfer Daemon:
|
|
665
|
+
|
|
666
|
+
- `ascp` - the transfer executable
|
|
644
667
|
|
|
645
|
-
|
|
668
|
+
- `aspera-license` - the license file (located in the same directory as `ascp` or in `../etc`)
|
|
669
|
+
|
|
670
|
+
These components can be installed either by installing the Aspera transfer software or by executing the `ascli` command.
|
|
646
671
|
|
|
647
672
|
#### Installation of `ascp` through `transferd`
|
|
648
673
|
|
|
@@ -671,8 +696,8 @@ The installation of the transfer binaries follows those steps:
|
|
|
671
696
|
- By default, the archive is extracted to `$HOME/.aspera/sdk`.
|
|
672
697
|
- The destination folder can be changed by setting the `sdk_folder` option.
|
|
673
698
|
|
|
674
|
-
| Option | Default | Description
|
|
675
|
-
|
|
699
|
+
| Option | Default | Description |
|
|
700
|
+
|-----------------|---------|--------------------------------------------------------|
|
|
676
701
|
| `sdk_url` | `DEF` | URL to download the Aspera Transfer Daemon archive.<br/>`DEF` means: select from available archives. |
|
|
677
702
|
| `locations_url` | `https://ibm.biz/sdk_location` | URL to get download URLs of Aspera Transfer Daemon from IBM official repository. |
|
|
678
703
|
| `sdk_folder` | `$HOME/.aspera/sdk` | Folder where the SDK archive is extracted. |
|
|
@@ -885,7 +910,7 @@ ascli -v
|
|
|
885
910
|
```
|
|
886
911
|
|
|
887
912
|
```text
|
|
888
|
-
4.24.
|
|
913
|
+
4.24.2
|
|
889
914
|
```
|
|
890
915
|
|
|
891
916
|
In order to keep persistency of configuration on the host, you should specify your user's configuration folder as a volume for the container.
|
|
@@ -1275,7 +1300,7 @@ It's up to the program to split arguments:
|
|
|
1275
1300
|
- [Windows: How Command Line Parameters Are Parsed](https://daviddeley.com/autohotkey/parameters/parameters.htm#RUBY)
|
|
1276
1301
|
- [Understand Quoting and Escaping of Windows Command Line Arguments](https://web.archive.org/web/20190316094059/http://www.windowsinspired.com/understanding-the-command-line-string-and-arguments-received-by-a-windows-program/)
|
|
1277
1302
|
|
|
1278
|
-
is a Ruby program, so Ruby parses the command line (
|
|
1303
|
+
is a Ruby program, so Ruby parses the command line (received with `GetCommandLineW`) into arguments and provides them to the Ruby code (`$0` and `ARGV`).
|
|
1279
1304
|
Ruby vaguely follows the Microsoft C/C++ parameter parsing rules.
|
|
1280
1305
|
(See `w32_cmdvector` in Ruby source [`win32.c`](https://github.com/ruby/ruby/blob/master/win32/win32.c#L1766)) : <!--cspell:disable-line-->
|
|
1281
1306
|
|
|
@@ -1312,12 +1337,12 @@ Basically it handles I/O redirection (`<>|`), shell variables (`%`), multiple co
|
|
|
1312
1337
|
Eventually, all those special characters are removed from the command line unless escaped with `^` or `"`.
|
|
1313
1338
|
`"` are kept and given to the program.
|
|
1314
1339
|
|
|
1315
|
-
#### Shell parsing for Windows:
|
|
1340
|
+
#### Shell parsing for Windows: PowerShell
|
|
1316
1341
|
|
|
1317
|
-
For
|
|
1342
|
+
For PowerShell, it actually depends on the version of it (5.1, 7.3+).
|
|
1318
1343
|
|
|
1319
|
-
A difficulty is that
|
|
1320
|
-
|
|
1344
|
+
A difficulty is that PowerShell parses the command line for its own use and manages special characters, but then it passes the command line to the program (Ruby) as a single string, possibly without the special characters.
|
|
1345
|
+
If not using PowerShell features (e.g. variable), one can use the "stop-parsing" token `--%`.
|
|
1321
1346
|
|
|
1322
1347
|
Details can be found here:
|
|
1323
1348
|
|
|
@@ -1325,7 +1350,9 @@ Details can be found here:
|
|
|
1325
1350
|
|
|
1326
1351
|
- [quoting rules](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules)
|
|
1327
1352
|
|
|
1328
|
-
The following examples give the same result on Windows using
|
|
1353
|
+
The following examples give the same result on Windows using PowerShell:
|
|
1354
|
+
|
|
1355
|
+
- Check your powershell version:
|
|
1329
1356
|
|
|
1330
1357
|
```powershell
|
|
1331
1358
|
PS C:\> echo $psversiontable.psversion
|
|
@@ -1333,14 +1360,26 @@ PS C:\> echo $psversiontable.psversion
|
|
|
1333
1360
|
Major Minor Build Revision
|
|
1334
1361
|
----- ----- ----- --------
|
|
1335
1362
|
5 1 19041 4046
|
|
1363
|
+
```
|
|
1364
|
+
|
|
1365
|
+
- Use PowerShell argument `--%` to place PowerShell in "stop-parsing" mode.
|
|
1336
1366
|
|
|
1367
|
+
```powershell
|
|
1337
1368
|
PS C:\> ascli config echo --% @json:'{"k":"v","x":"y"}'
|
|
1369
|
+
```
|
|
1370
|
+
|
|
1371
|
+
- Triple double quotes are replaced with a single double quote in normal mode:
|
|
1338
1372
|
|
|
1373
|
+
```powershell
|
|
1339
1374
|
PS C:\> ascli config echo @json:'{"""k""":"""v""","""x""":"""y"""}'
|
|
1340
1375
|
```
|
|
1341
1376
|
|
|
1342
|
-
|
|
1343
|
-
|
|
1377
|
+
- To insert PowerShell variables in the JSON string, one can do:
|
|
1378
|
+
|
|
1379
|
+
```powershell
|
|
1380
|
+
$email="john@example.com"
|
|
1381
|
+
ascli conf echo $('@json:{"""address""":"""' + $email + '""","""vip""":true}')
|
|
1382
|
+
```
|
|
1344
1383
|
|
|
1345
1384
|
#### Extended Values (JSON, Ruby, ...)
|
|
1346
1385
|
|
|
@@ -1366,7 +1405,7 @@ ascli config echo 1 2 3
|
|
|
1366
1405
|
ERROR: Argument: unprocessed values: ["2", "3"]
|
|
1367
1406
|
```
|
|
1368
1407
|
|
|
1369
|
-
`config echo` displays the value of the **first** argument using
|
|
1408
|
+
`config echo` displays the value of the **first** argument using the current output `format`.
|
|
1370
1409
|
|
|
1371
1410
|
> [!NOTE]
|
|
1372
1411
|
> It gets its value after shell command line parsing and `ascli` extended value parsing.
|
|
@@ -1379,7 +1418,7 @@ Depending on the case, a different `format` option is used to display the actual
|
|
|
1379
1418
|
For example, in the simple string `Hello World`, the space character is special for the shell, so it must be escaped so that a single value is represented.
|
|
1380
1419
|
|
|
1381
1420
|
Double quotes are processed by the shell to create a single string argument.
|
|
1382
|
-
For **POSIX shells**, single quotes can also be used in this case, or protect the special character ` ` (space) with a backslash.
|
|
1421
|
+
For **POSIX shells**, single quotes can also be used in this case, or protect the special character ` ` (space) with a backslash.
|
|
1383
1422
|
|
|
1384
1423
|
```shell
|
|
1385
1424
|
ascli config echo "Hello World" --format=text
|
|
@@ -1398,7 +1437,7 @@ Even if the variable contains spaces it results only in one argument for `ascli`
|
|
|
1398
1437
|
|
|
1399
1438
|
> [!NOTE]
|
|
1400
1439
|
> We use a simple shell variable in this example.
|
|
1401
|
-
>
|
|
1440
|
+
> It does not need to be exported as an environment variable.
|
|
1402
1441
|
|
|
1403
1442
|
```shell
|
|
1404
1443
|
MYVAR="Hello World"
|
|
@@ -1588,7 +1627,7 @@ If wrong, or no command is provided when expected, an error message is displayed
|
|
|
1588
1627
|
Standard **Commands** are: `create`, `show`, `list`, `modify`, `delete`.
|
|
1589
1628
|
Some entities also support additional commands.
|
|
1590
1629
|
When those additional commands are related to an entity also reachable in another context, then those commands are located below command `do`.
|
|
1591
|
-
For example sub-commands appear after entity selection (identifier), e.g. `ascli aoc admin node do
|
|
1630
|
+
For example sub-commands appear after entity selection (identifier), e.g. `ascli aoc admin node do _my_node_id_ browse /`: `browse` is a sub-command of `node`.
|
|
1592
1631
|
|
|
1593
1632
|
**Command Parameters** are typically mandatory values for a command, such as entity creation data or entity identifier.
|
|
1594
1633
|
|
|
@@ -1672,6 +1711,7 @@ The value for **any** options can come from the following locations (in this ord
|
|
|
1672
1711
|
Environment variable starting with prefix: ASCLI_ are taken as option values, e.g. `ASCLI_OPTION_NAME` is for `--option-name`.
|
|
1673
1712
|
|
|
1674
1713
|
Option `show_config` dry runs the configuration, and then returns currently set values for options.
|
|
1714
|
+
|
|
1675
1715
|
`ascli --show-config` outputs global options only, and `ascli [plugin] --show-config` outputs global and plugin default options.
|
|
1676
1716
|
In addition, option `--show-config` can be added at the end of any full command line, this displays the options that would be used for the command.
|
|
1677
1717
|
|
|
@@ -1704,8 +1744,8 @@ To redirect results to a file, use option `output`.
|
|
|
1704
1744
|
|
|
1705
1745
|
Depending on action, the output will contain:
|
|
1706
1746
|
|
|
1707
|
-
| Result Type | Description
|
|
1708
|
-
|
|
1747
|
+
| Result Type | Description |
|
|
1748
|
+
|-----------------|-----------------------------------------------------------------------------------|
|
|
1709
1749
|
| `single_object` | Displayed as a 2 dimensional table: one line per field, first column is field name, and second is field value. Nested hashes are collapsed. |
|
|
1710
1750
|
| `object_list` | Displayed as a 2 dimensional table: one line per item, one column per field. |
|
|
1711
1751
|
| `value_list` | A table with one column. |
|
|
@@ -1713,47 +1753,75 @@ Depending on action, the output will contain:
|
|
|
1713
1753
|
| `status` | A message. |
|
|
1714
1754
|
| `other_struct` | A complex structure that cannot be displayed as an array. |
|
|
1715
1755
|
|
|
1756
|
+
#### Enhanced display of special values
|
|
1757
|
+
|
|
1758
|
+
Special values are highlighted as follows in `format=table`:
|
|
1759
|
+
|
|
1760
|
+
| Value | Display |
|
|
1761
|
+
|----------------|------------------|
|
|
1762
|
+
| `nil` | `<null>` |
|
|
1763
|
+
| empty `String` | `<empty string>` |
|
|
1764
|
+
| empty `Array` | `<empty list>` |
|
|
1765
|
+
| empty `Hash` | `<empty dict>` |
|
|
1766
|
+
|
|
1767
|
+
Example:
|
|
1768
|
+
|
|
1769
|
+
```shell
|
|
1770
|
+
ascli config echo @json:'{"ni":null,"es":"","ea":[],"eh":{}}'
|
|
1771
|
+
```
|
|
1772
|
+
|
|
1773
|
+
```text
|
|
1774
|
+
╭───────┬────────────────╮
|
|
1775
|
+
│ field │ value │
|
|
1776
|
+
╞═══════╪════════════════╡
|
|
1777
|
+
│ ni │ <null> │
|
|
1778
|
+
│ es │ <empty string> │
|
|
1779
|
+
│ ea │ <empty list> │
|
|
1780
|
+
│ eh │ <empty dict> │
|
|
1781
|
+
╰───────┴────────────────╯
|
|
1782
|
+
```
|
|
1783
|
+
|
|
1716
1784
|
#### Option: `format`
|
|
1717
1785
|
|
|
1718
1786
|
The style of output can be set using the `format` option:
|
|
1719
1787
|
|
|
1720
|
-
| `format` | Output formatting
|
|
1721
|
-
|
|
1722
|
-
| `table` | Text table (default)
|
|
1723
|
-
| `text` | Value as `String`
|
|
1724
|
-
| `ruby` | Ruby code
|
|
1725
|
-
| `json` | JSON code
|
|
1726
|
-
| `jsonpp` | JSON pretty printed
|
|
1727
|
-
| `yaml` | YAML
|
|
1728
|
-
| `csv` | Comma Separated Values
|
|
1729
|
-
| `image` | Image URL or data
|
|
1730
|
-
| `nagios` | Suitable for Nagios
|
|
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` | Image URL or data |
|
|
1798
|
+
| `nagios` | Suitable for Nagios |
|
|
1731
1799
|
|
|
1732
1800
|
By default, result of type `single_object` and `object_list` are displayed using format `table`.
|
|
1733
1801
|
|
|
1734
1802
|
#### Option: `table_style`
|
|
1735
1803
|
|
|
1736
|
-
The table
|
|
1804
|
+
The way `format`: `table` and `csv` are generated can be customized with option: `table_style` which expects a `Hash`.
|
|
1737
1805
|
|
|
1738
1806
|
For `format=table`, options are the ones described in gem [`terminal-table`](https://github.com/tj/terminal-table).
|
|
1739
1807
|
|
|
1740
|
-
For `format=csv`, options are described in gem [`csv`](https://ruby.github.io/csv/CSV.html#class-CSV-label-Options+for+Generating).
|
|
1741
|
-
|
|
1742
1808
|
For example, to display a table with thick Unicode borders:
|
|
1743
1809
|
|
|
1744
1810
|
```shell
|
|
1745
1811
|
ascli config preset over --table-style=@ruby:'{border: :unicode_thick_edge}'
|
|
1746
1812
|
```
|
|
1747
1813
|
|
|
1814
|
+
> [!NOTE]
|
|
1815
|
+
> Other border styles exist, not limited to: `:unicode`, `:unicode_round`.
|
|
1816
|
+
|
|
1817
|
+
For `format=csv`, options are described in gem [`csv`](https://ruby.github.io/csv/CSV.html#class-CSV-label-Options+for+Generating).
|
|
1818
|
+
|
|
1748
1819
|
For example, to display a CSV with headers and quotes:
|
|
1749
1820
|
|
|
1750
1821
|
```shell
|
|
1751
1822
|
ascli config echo @json:'[{"name":"foo","id":1},{"name":"bar","id":8}]' --format=csv --table=@json:'{"headers":true,"force_quotes":true}'
|
|
1752
1823
|
```
|
|
1753
1824
|
|
|
1754
|
-
> [!NOTE]
|
|
1755
|
-
> Other border styles exist, not limited to: `:unicode`, `:unicode_round`.
|
|
1756
|
-
|
|
1757
1825
|
#### Option: `flat_hash`: Single level `Hash`
|
|
1758
1826
|
|
|
1759
1827
|
This option controls how object fields are displayed for complex objects.
|
|
@@ -1801,57 +1869,29 @@ ascli config echo @json:'{"A":"a","B":[{"name":"B1","value":"b1"},{"name":"B2","
|
|
|
1801
1869
|
╰───────┴────────────────────────────────────────────────────────────────────────╯
|
|
1802
1870
|
```
|
|
1803
1871
|
|
|
1804
|
-
#### Enhanced display of special values
|
|
1805
|
-
|
|
1806
|
-
Special values are highlighted as follows::
|
|
1807
|
-
|
|
1808
|
-
| Value | Display |
|
|
1809
|
-
|----------------|------------------|
|
|
1810
|
-
| `nil` | `<null>` |
|
|
1811
|
-
| empty `String` | `<empty string>` |
|
|
1812
|
-
| empty `Array` | `<empty list>` |
|
|
1813
|
-
| empty `Hash` | `<empty dict>` |
|
|
1814
|
-
|
|
1815
|
-
Example:
|
|
1816
|
-
|
|
1817
|
-
```shell
|
|
1818
|
-
ascli config echo @json:'{"ni":null,"es":"","ea":[],"eh":{}}'
|
|
1819
|
-
```
|
|
1820
|
-
|
|
1821
|
-
```text
|
|
1822
|
-
╭───────┬────────────────╮
|
|
1823
|
-
│ field │ value │
|
|
1824
|
-
╞═══════╪════════════════╡
|
|
1825
|
-
│ ni │ <null> │
|
|
1826
|
-
│ es │ <empty string> │
|
|
1827
|
-
│ ea │ <empty list> │
|
|
1828
|
-
│ eh │ <empty dict> │
|
|
1829
|
-
╰───────┴────────────────╯
|
|
1830
|
-
```
|
|
1831
|
-
|
|
1832
1872
|
#### Option: `multi_single`
|
|
1833
1873
|
|
|
1834
1874
|
This option controls how result fields are displayed as columns or lines, when option `format` is set to `table`.
|
|
1835
1875
|
Default is `no`.
|
|
1836
1876
|
There are two types of results that are affected by this option:
|
|
1837
1877
|
|
|
1838
|
-
| Result | Description
|
|
1839
|
-
|
|
1840
|
-
| `single_object` | A single item with multiple fields.
|
|
1878
|
+
| Result | Description |
|
|
1879
|
+
|-----------------|---------------------------------------------|
|
|
1880
|
+
| `single_object` | A single item with multiple fields. |
|
|
1841
1881
|
| `object_list` | A list of items, each with multiple fields. |
|
|
1842
1882
|
|
|
1843
1883
|
An item (object) is displayed in one of those 2 ways:
|
|
1844
1884
|
|
|
1845
|
-
| Display | rows | columns
|
|
1846
|
-
|
|
1885
|
+
| Display | rows | columns |
|
|
1886
|
+
|------------|--------|---------------------|
|
|
1847
1887
|
| Simple | Fields | `field` and `value` |
|
|
1848
|
-
| Transposed | Items | Fields
|
|
1888
|
+
| Transposed | Items | Fields |
|
|
1849
1889
|
|
|
1850
1890
|
The display of result is as follows:
|
|
1851
1891
|
|
|
1852
|
-
| Result | `no` | `yes`
|
|
1853
|
-
|
|
1854
|
-
| `single_object` | Simple | Simple
|
|
1892
|
+
| Result | `no` | `yes` | `single` |
|
|
1893
|
+
|-----------------|------------|-------------|-------------------------------------|
|
|
1894
|
+
| `single_object` | Simple | Simple | Simple |
|
|
1855
1895
|
| `object_list` | Transposed | Simple<br/>(Multiple objects) | Simple if 1 object,<br/>transposed if 2+ objects |
|
|
1856
1896
|
|
|
1857
1897
|
This parameter can be set as a global default with:
|
|
@@ -2004,17 +2044,17 @@ In above example, the same result is obtained with option:
|
|
|
2004
2044
|
|
|
2005
2045
|
Option `select` applies the filter after a possible "flattening" with option: `flat_hash`.
|
|
2006
2046
|
|
|
2007
|
-
|
|
2047
|
+
### Percent selector
|
|
2008
2048
|
|
|
2009
2049
|
The percent selector allows identification of an entity by another unique identifier other than the native identifier.
|
|
2010
2050
|
|
|
2011
2051
|
Syntax: `%<field>:<value>`
|
|
2012
2052
|
|
|
2013
2053
|
When a command is executed on a single entity, the entity is identified by a unique identifier that follows the command.
|
|
2014
|
-
For example, in the following command, `
|
|
2054
|
+
For example, in the following command, `_my_user_id_` is the user's identifier:
|
|
2015
2055
|
|
|
2016
2056
|
```shell
|
|
2017
|
-
ascli aoc admin user show
|
|
2057
|
+
ascli aoc admin user show _my_user_id_
|
|
2018
2058
|
```
|
|
2019
2059
|
|
|
2020
2060
|
Some commands provide the following capability:
|
|
@@ -2043,8 +2083,8 @@ Decoders act like a function with its parameter on right-hand side and are recog
|
|
|
2043
2083
|
|
|
2044
2084
|
The following decoders are supported:
|
|
2045
2085
|
|
|
2046
|
-
| Decoder | Parameter| Returns | Description
|
|
2047
|
-
|
|
2086
|
+
| Decoder | Parameter| Returns | Description |
|
|
2087
|
+
|----------|----------|----------|------------------------------------------------------------------------------------------|
|
|
2048
2088
|
| `base64` | `String` | `String` | Decode a base64 encoded string |
|
|
2049
2089
|
| `csvt` | `String` | `Array` | Decode a titled CSV value |
|
|
2050
2090
|
| `env` | `String` | `String` | Read from a named env var name, e.g. `--password=@env:MYPASSVAR` |
|
|
@@ -2210,6 +2250,8 @@ The default value is `_<>:"/\|?*`, corresponding to replacement character `_` an
|
|
|
2210
2250
|
Some temporary files may be needed during runtime.
|
|
2211
2251
|
The temporary folder may be specified with option: `temp_folder`.
|
|
2212
2252
|
Temporary files are deleted at the end of execution unless option: `clean_temp` is set to `no`.
|
|
2253
|
+
By default (`@sys`), the temporary folder is the system's temporary folder for the current user (Ruby `Etc.systmpdir`).
|
|
2254
|
+
A special value of `@env` will set the folder to Ruby `Dir.tmpdir` which uses regular env var to set the temp folder.
|
|
2213
2255
|
|
|
2214
2256
|
### Configuration file
|
|
2215
2257
|
|
|
@@ -2398,7 +2440,9 @@ coffee --ui=text
|
|
|
2398
2440
|
coffee --ui=text --image=@json:'{"text":true,"double":false}'
|
|
2399
2441
|
coffee --ui=text --image=@json:'{"text":true}'
|
|
2400
2442
|
detect https://faspex5.example.com/path
|
|
2443
|
+
detect https://faspex5.example.com/path faspex5
|
|
2401
2444
|
detect https://node.example.com/path
|
|
2445
|
+
detect https://server.example.com/path server
|
|
2402
2446
|
detect https://shares.example.com/path shares
|
|
2403
2447
|
detect https://tst.example.com/path faspio
|
|
2404
2448
|
detect https://tst.example.com/path httpgw
|
|
@@ -2415,6 +2459,7 @@ echo @json:'[{"user":{"id":1,"name":"foo"},"project":"bar"}]' --multi-single=yes
|
|
|
2415
2459
|
echo @lines:@stdin:
|
|
2416
2460
|
echo @list:,1,2,3
|
|
2417
2461
|
echo @secret:
|
|
2462
|
+
echo @stdbin:
|
|
2418
2463
|
echo @uri:/etc/hosts
|
|
2419
2464
|
echo @uri:file:/etc/hosts
|
|
2420
2465
|
echo @uri:http://ifconfig.me
|
|
@@ -2455,6 +2500,7 @@ remote_certificate chain https://node.example.com/path
|
|
|
2455
2500
|
remote_certificate name https://node.example.com/path
|
|
2456
2501
|
remote_certificate only https://node.example.com/path
|
|
2457
2502
|
smtp_settings
|
|
2503
|
+
sync spec
|
|
2458
2504
|
tokens flush
|
|
2459
2505
|
tokens list
|
|
2460
2506
|
tokens show foobar
|
|
@@ -2470,9 +2516,11 @@ wizard https://faspex4.example.com/path faspex --username=test --password=test
|
|
|
2470
2516
|
wizard https://faspex5.example.com/path faspex5 --key-path=my_private_key
|
|
2471
2517
|
wizard https://node.example.com/path node --username=test --password=test
|
|
2472
2518
|
wizard https://orch.example.com/path orchestrator --username=test --password=test
|
|
2519
|
+
wizard https://server.example.com/path server --username=my_username --password=my_password
|
|
2473
2520
|
wizard https://shares.example.com/path shares --username=test --password=test
|
|
2474
|
-
wizard
|
|
2521
|
+
wizard https://tst.example.com/path faspio --username=my_username --password=my_password
|
|
2475
2522
|
wizard my_org aoc --key-path=my_private_key --username=my_user_email --use-generic-client=yes
|
|
2523
|
+
wizard my_org aoc mypreset --key-path=my_private_key --username=my_user_email
|
|
2476
2524
|
```
|
|
2477
2525
|
|
|
2478
2526
|
#### Format of file
|
|
@@ -2585,20 +2633,21 @@ The wizard is a command that asks the user for information and creates an [Optio
|
|
|
2585
2633
|
|
|
2586
2634
|
It takes three optional arguments:
|
|
2587
2635
|
|
|
2588
|
-
|
|
2589
|
-
|
|
2590
|
-
|
|
2636
|
+
|#| Parameter description | If not provided, `ascli` |
|
|
2637
|
+
|-|--------------------------------------------|--------------------------------------------|
|
|
2638
|
+
|1| **URL** or hostname of the application | ask for it. |
|
|
2639
|
+
|2| The **plugin name** to limit search to | tries to detect known plugins from the URL |
|
|
2640
|
+
|3| The **preset name** to save in config file | generates a unique preset name |
|
|
2591
2641
|
|
|
2592
|
-
|
|
2642
|
+
Options are also available for the wizard:
|
|
2593
2643
|
|
|
2594
|
-
| Option | Value | Description
|
|
2595
|
-
|
|
2596
|
-
| `default` | [yes]/no | Set as default configuration for specified plugin.
|
|
2644
|
+
| Option | Value | Description |
|
|
2645
|
+
|-------------|----------|---------------------------------------------------------------------|
|
|
2646
|
+
| `default` | [yes]/no | Set as default configuration for specified plugin. |
|
|
2597
2647
|
| `override` | yes/[no] | Override existing default preset name for the plugin, if it exists. |
|
|
2598
|
-
| `
|
|
2599
|
-
| `test-mode` | yes/[no] | Skip private key check step. |
|
|
2648
|
+
| `key_path` | path | Path to private key for JWT. |
|
|
2600
2649
|
|
|
2601
|
-
Other options can be provided to the wizard, such as `--username`, etc...
|
|
2650
|
+
Other plugin-specific options can be provided to the wizard, such as `--username`, etc...
|
|
2602
2651
|
They will be added to the [Option Preset](#option-preset) created by the wizard.
|
|
2603
2652
|
|
|
2604
2653
|
The simplest invocation is:
|
|
@@ -2607,6 +2656,9 @@ The simplest invocation is:
|
|
|
2607
2656
|
ascli config wizard
|
|
2608
2657
|
```
|
|
2609
2658
|
|
|
2659
|
+
If the application requires a private key, the user can either provide the path to it with option `key_path`.
|
|
2660
|
+
The user is told where to place the associated public pey PEM in the application.
|
|
2661
|
+
|
|
2610
2662
|
#### Example of configuration for a plugin
|
|
2611
2663
|
|
|
2612
2664
|
For Faspex, Shares, Node (including ATS, Aspera Transfer Service), Console,
|
|
@@ -2713,8 +2765,8 @@ brew install hashicorp/tap/vault
|
|
|
2713
2765
|
vault server -dev -dev-root-token-id=dev-only-token
|
|
2714
2766
|
```
|
|
2715
2767
|
|
|
2716
|
-
| Parameter | Example
|
|
2717
|
-
|
|
2768
|
+
| Parameter | Example | Description |
|
|
2769
|
+
|-----------|-------------------------|---------------------------------------------------------------------|
|
|
2718
2770
|
| `type` | `vault` | The type of the vault |
|
|
2719
2771
|
| `url` | `http://127.0.0.1:8200` | The URL of the vault |
|
|
2720
2772
|
| `token` | `dev-only-token` | The token for the vault, by default uses parameter `vault_password` |
|
|
@@ -2730,10 +2782,10 @@ vault server -dev -dev-root-token-id=dev-only-token
|
|
|
2730
2782
|
|
|
2731
2783
|
It is possible to manage secrets in macOS keychain (only read supported currently).
|
|
2732
2784
|
|
|
2733
|
-
| Parameter | Example
|
|
2734
|
-
|
|
2735
|
-
| `type` | `system`
|
|
2736
|
-
| `name` | ``ascli``
|
|
2785
|
+
| Parameter | Example | Description |
|
|
2786
|
+
|-----------|-------------|------------------------------------|
|
|
2787
|
+
| `type` | `system` | The type of the vault. |
|
|
2788
|
+
| `name` | ``ascli`` | The name of the keychain to use. |
|
|
2737
2789
|
|
|
2738
2790
|
```shell
|
|
2739
2791
|
--vault=@json:'{"type":"system","name":"ascli"}'
|
|
@@ -2747,10 +2799,10 @@ It is possible to store and use secrets encrypted in a file using option `vault`
|
|
|
2747
2799
|
{"type":"file","name":"vault.bin"}
|
|
2748
2800
|
```
|
|
2749
2801
|
|
|
2750
|
-
| Parameter | Example | Description
|
|
2751
|
-
|
|
2752
|
-
| `type` | `file` | The type of the vault
|
|
2753
|
-
| `name` | `vault.bin` | File path, absolute, or relative to the configuration folder `ASCLI_HOME
|
|
2802
|
+
| Parameter | Example | Description |
|
|
2803
|
+
|-----------|--------------|--------------------------------------------------------------------|
|
|
2804
|
+
| `type` | `file` | The type of the vault. |
|
|
2805
|
+
| `name` | `vault.bin` | File path, absolute, or relative to the configuration folder `ASCLI_HOME`. |
|
|
2754
2806
|
|
|
2755
2807
|
#### Vault: Operations
|
|
2756
2808
|
|
|
@@ -2888,12 +2940,12 @@ This server can server HTTP or HTTPS (with certificate):
|
|
|
2888
2940
|
|
|
2889
2941
|
The following parameters are supported:
|
|
2890
2942
|
|
|
2891
|
-
| Parameter | Type | Default
|
|
2892
|
-
|
|
2893
|
-
| `url` | `String` | `http://localhost:8080` | Base URL on which requests are listened, a path can be provided.
|
|
2894
|
-
| `cert` | `String` | - | (HTTPS) Path to certificate file (with ext. `.pfx` or `.p12` for PKCS12)
|
|
2895
|
-
| `key` | `String` | - | (HTTPS) Path to private key file (PEM), or passphrase for PKCS12
|
|
2896
|
-
| `chain` | `String` | - | (HTTPS) Path to certificate chain (PEM only)
|
|
2943
|
+
| Parameter | Type | Default | Description |
|
|
2944
|
+
|-------------------|----------|-------------------------|------------------------------------------------------------------|
|
|
2945
|
+
| `url` | `String` | `http://localhost:8080` | Base URL on which requests are listened, a path can be provided. | <!-- markdownlint-disable-line -->
|
|
2946
|
+
| `cert` | `String` | - | (HTTPS) Path to certificate file (with ext. `.pfx` or `.p12` for `PKCS12`). |
|
|
2947
|
+
| `key` | `String` | - | (HTTPS) Path to private key file (PEM), or passphrase for `PKCS12`. |
|
|
2948
|
+
| `chain` | `String` | - | (HTTPS) Path to certificate chain (PEM only). |
|
|
2897
2949
|
|
|
2898
2950
|
Parameter `url` (base URL) defines:
|
|
2899
2951
|
|
|
@@ -2913,12 +2965,12 @@ This is available:
|
|
|
2913
2965
|
|
|
2914
2966
|
The following options can be specified in the option `image`:
|
|
2915
2967
|
|
|
2916
|
-
| Option | Type
|
|
2917
|
-
|
|
2918
|
-
| reserve | `Integer` | Lines reserved to display a status
|
|
2919
|
-
| text | `Bool` | Display text instead of image|
|
|
2920
|
-
| double | `Bool` | Display double text resolution (half characters) |
|
|
2921
|
-
| font_ratio | `Float` | Font height/width ratio in terminal
|
|
2968
|
+
| Option | Type | Description |
|
|
2969
|
+
|------------|-----------|---------------------------------------------------|
|
|
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. |
|
|
2922
2974
|
|
|
2923
2975
|
```shell
|
|
2924
2976
|
ascli config image https://eudemo.asperademo.com/wallpaper.jpg --ui=text --image=@json:'{"text":true}'
|
|
@@ -2957,8 +3009,8 @@ To increase debug level, use option `log_level` (e.g. using command line `--log-
|
|
|
2957
3009
|
By default, passwords and secrets are redacted from logs.
|
|
2958
3010
|
Set option `log_secrets` to `yes` to include secrets in logs.
|
|
2959
3011
|
|
|
2960
|
-
| Option | Values | Description
|
|
2961
|
-
|
|
3012
|
+
| Option | Values | Description |
|
|
3013
|
+
|---------------|--------|-------------------------------------------------------------------------|
|
|
2962
3014
|
| `logger` | `stdout`<br/>`stderr`<br/>`syslog` | Type of output.<br/>Default: `stderr` |
|
|
2963
3015
|
| `log_level` | `trace2`<br/>`trace1`<br/>`debug`<br/>`info`<br/>`warn`<br/>`error` | Minimum level displayed.<br/>Default: `warn` |
|
|
2964
3016
|
| `log_secrets` | `yes`<br/>`no` | Show or hide secrets in logs.<br/>Default: `no` (Hide) |
|
|
@@ -2972,12 +3024,12 @@ The default formatter is:
|
|
|
2972
3024
|
->(s, _d, _p, m){"#{s[0..2]} #{m}\n"}
|
|
2973
3025
|
```
|
|
2974
3026
|
|
|
2975
|
-
|
|
3027
|
+
Available formatters for `log_format`:
|
|
2976
3028
|
|
|
2977
|
-
| Name | Description
|
|
2978
|
-
|
|
2979
|
-
| `default` | Default formatter.
|
|
2980
|
-
| `standard`| Standard Ruby formatter.
|
|
3029
|
+
| Name | Description |
|
|
3030
|
+
|-----------|--------------------------|
|
|
3031
|
+
| `default` | Default formatter. |
|
|
3032
|
+
| `standard`| Standard Ruby formatter. |
|
|
2981
3033
|
|
|
2982
3034
|
Examples:
|
|
2983
3035
|
|
|
@@ -3020,20 +3072,22 @@ To disable this warning, set the option `warn_insecure` to `no`.
|
|
|
3020
3072
|
|
|
3021
3073
|
HTTP connection parameters (not `ascp` WSS) can be adjusted using option `http_options`:
|
|
3022
3074
|
|
|
3023
|
-
| Parameter | Type | Default | Handler
|
|
3024
|
-
|
|
3025
|
-
| `read_timeout` | `Integer` | `60` | Ruby
|
|
3026
|
-
| `write_timeout` | `Integer` | `60` | Ruby
|
|
3027
|
-
| `open_timeout` | `Integer` | `60` | Ruby
|
|
3028
|
-
| `keep_alive_timeout` | `Integer` | `2` | Ruby
|
|
3029
|
-
| `ssl_options` | `Array` | See below | Ruby
|
|
3030
|
-
| `user_agent` | `Integer` | `ascli` | `ascli` |
|
|
3031
|
-
| `download_partial_suffix` | `Integer` | `.http_partial` | `ascli` |
|
|
3032
|
-
| `retry_on_error` | `Bool` | `false` | `ascli` |
|
|
3033
|
-
| `retry_on_timeout` | `Bool` | `true` | `ascli` |
|
|
3034
|
-
| `retry_on_unavailable` | `Bool` | `true` | `ascli` |
|
|
3035
|
-
| `retry_max` | `Integer` | `1` | `ascli` |
|
|
3036
|
-
| `retry_sleep` | `Integer` | `4` | `ascli` |
|
|
3075
|
+
| Parameter | Type | Default | Handler |
|
|
3076
|
+
|-------------------------|---------|---------------|---------------|
|
|
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` | `ascli` Rest |
|
|
3083
|
+
| `download_partial_suffix` | `Integer` | `.http_partial` | `ascli` Rest |
|
|
3084
|
+
| `retry_on_error` | `Bool` | `false` | `ascli` Rest |
|
|
3085
|
+
| `retry_on_timeout` | `Bool` | `true` | `ascli` Rest |
|
|
3086
|
+
| `retry_on_unavailable` | `Bool` | `true` | `ascli` Rest |
|
|
3087
|
+
| `retry_max` | `Integer` | `1` | `ascli` Rest |
|
|
3088
|
+
| `retry_sleep` | `Integer` | `4` | `ascli` Rest |
|
|
3089
|
+
| `token_cache_max_age` | `Integer` | `1800` | `ascli` OAuth |
|
|
3090
|
+
| `token_refresh_threshold` | `Integer` | `120` | `ascli` OAuth |
|
|
3037
3091
|
|
|
3038
3092
|
Time values are in set **seconds** and can be of type either `Integer` or `Float`.
|
|
3039
3093
|
Default values are the ones of Ruby:
|
|
@@ -3047,11 +3101,11 @@ Example:
|
|
|
3047
3101
|
ascli aoc admin package list --http-options=@json:'{"read_timeout":10.0}'
|
|
3048
3102
|
```
|
|
3049
3103
|
|
|
3050
|
-
`ssl_options` corresponds to a list of options as listed in `man SSL_CTX_set_options`.
|
|
3104
|
+
The option `ssl_options` corresponds to a list of options as listed in `man SSL_CTX_set_options`.
|
|
3051
3105
|
The default initial value is the default of Ruby as specified in `openssl/ssl.rb`.
|
|
3052
3106
|
Each option can be specified as a `String` with the same name as in the OpenSSL library by removing the prefix: `SSL_OP_`, or an `Integer` (e.g. `0` resets to no option).
|
|
3053
3107
|
If the name appears in the list, the option is set.
|
|
3054
|
-
If the name appears in the list prefixed with a hyphen (`-`), the option is
|
|
3108
|
+
If the name appears in the list prefixed with a hyphen (`-`), the option is cleared.
|
|
3055
3109
|
For example to enable option `SSL_OP_CIPHER_SERVER_PREFERENCE`, add it to the list as `CIPHER_SERVER_PREFERENCE`.
|
|
3056
3110
|
To disable option `SSL_OP_SAFARI_ECDHE_ECDSA_BUG`, add it as `-SAFARI_ECDHE_ECDSA_BUG`.
|
|
3057
3111
|
|
|
@@ -3116,7 +3170,7 @@ ascli config proxy_check --fpac='function FindProxyForURL(url, host) {return "PR
|
|
|
3116
3170
|
```
|
|
3117
3171
|
|
|
3118
3172
|
```text
|
|
3119
|
-
PROXY proxy.example.com:
|
|
3173
|
+
PROXY proxy.example.com:8080;DIRECT
|
|
3120
3174
|
```
|
|
3121
3175
|
|
|
3122
3176
|
```shell
|
|
@@ -3326,8 +3380,8 @@ Transfers will be executed by a transfer client, here called **Transfer Agent**.
|
|
|
3326
3380
|
|
|
3327
3381
|
The following agents are supported and selected with option `transfer`:
|
|
3328
3382
|
|
|
3329
|
-
| `transfer`
|
|
3330
|
-
|
|
3383
|
+
| `transfer` | location | Description of agent |
|
|
3384
|
+
|----------|----------|-------------------------------|
|
|
3331
3385
|
| [`direct`](#agent-direct) | local | direct execution of `ascp` |
|
|
3332
3386
|
| [`transferd`](#agent-transfer-daemon) | local | Aspera Transfer Daemon |
|
|
3333
3387
|
| [`connect`](#agent-connect-client) | local | Aspera Connect Client |
|
|
@@ -3354,14 +3408,16 @@ This is the default agent for `ascli` (option `--transfer=direct`).
|
|
|
3354
3408
|
`ascli` will locally search installed Aspera products, including SDK, and use `ascp` from that component.
|
|
3355
3409
|
Refer to section [FASP](#fasp-configuration).
|
|
3356
3410
|
|
|
3411
|
+
##### Agent: Direct: `transfer_info`
|
|
3412
|
+
|
|
3357
3413
|
The `transfer_info` option accepts the following optional parameters to control multi-session, Web Socket Session, Resume policy and add any argument to `ascp`:
|
|
3358
3414
|
|
|
3359
|
-
| Name | Type
|
|
3360
|
-
|
|
3415
|
+
| Name | Type | Description |
|
|
3416
|
+
|------------------------|-----------|-----------------------------------------------------------------------------|
|
|
3361
3417
|
| `wss` | `Bool` | Web Socket Session<br/>Enable use of web socket session in case it is available<br/>Default: `true` |
|
|
3362
3418
|
| `quiet` | `Bool` | If `true`, then `ascp` progress bar is not shown.<br/>Default: `false` |
|
|
3363
3419
|
| `trusted_certs` | `Array` | List of repositories for trusted certificates. |
|
|
3364
|
-
| `client_ssh_key` | `String`
|
|
3420
|
+
| `client_ssh_key` | `String` | SSH Keys to use for token-based transfers.<br/>One of: `dsa_rsa`, `rsa`, `per_client`.<br/>Default: `rsa` |
|
|
3365
3421
|
| `ascp_args` | `Array` | `Array` of strings with native `ascp` arguments.<br/>Default: `[]` |
|
|
3366
3422
|
| `spawn_timeout_sec` | `Float` | Multi session<br/>Verification time that `ascp` is running<br/>Default: `3` |
|
|
3367
3423
|
| `spawn_delay_sec` | `Float` | Multi session<br/>Delay between startup of sessions<br/>Default: `2` |
|
|
@@ -3380,14 +3436,26 @@ Sleep between iterations is given by the following formula where `iter_index` is
|
|
|
3380
3436
|
max( sleep_max, sleep_initial * sleep_factor ^ iter_index )
|
|
3381
3437
|
```
|
|
3382
3438
|
|
|
3383
|
-
To display the native progress bar of `ascp`, use
|
|
3439
|
+
To display the native progress bar of `ascp`, use:
|
|
3440
|
+
|
|
3441
|
+
```shell
|
|
3442
|
+
--progress-bar=no --transfer-info=@json:'{"quiet":false}'`
|
|
3443
|
+
```
|
|
3384
3444
|
|
|
3385
3445
|
To skip usage of management port (which disables custom progress bar), set option `monitor` to `false`.
|
|
3386
|
-
In that, use the native progress bar:
|
|
3446
|
+
In that, use the native progress bar:
|
|
3447
|
+
|
|
3448
|
+
```shell
|
|
3449
|
+
--transfer-info=@json:'{"monitor":false,"quiet":false}'`
|
|
3450
|
+
```
|
|
3387
3451
|
|
|
3388
3452
|
By default, Ruby's root CA store is used to validate any HTTPS endpoint used by `ascp` (e.g. WSS).
|
|
3389
3453
|
In order to use a custom certificate store, use the `trusted_certs` option of direct agent's option `transfer_info`.
|
|
3390
|
-
To use `ascp`'s default, use option:
|
|
3454
|
+
To use `ascp`'s default, use option:
|
|
3455
|
+
|
|
3456
|
+
```shell
|
|
3457
|
+
--transfer-info=@json:'{"trusted_certs":null}'`.
|
|
3458
|
+
```
|
|
3391
3459
|
|
|
3392
3460
|
Some transfer errors are considered **retry-able** (e.g. timeout) and some other not (e.g. wrong password).
|
|
3393
3461
|
The list of known protocol errors and retry level can be listed:
|
|
@@ -3434,6 +3502,30 @@ In addition to standard methods described in section [File List](#list-of-files-
|
|
|
3434
3502
|
> [!NOTE]
|
|
3435
3503
|
> Those methods have limitations: they apply **only** to the [`direct`](#agent-direct) transfer agent (i.e. local `ascp`) and not for Aspera on Cloud.
|
|
3436
3504
|
|
|
3505
|
+
##### Agent: Direct: Management messages
|
|
3506
|
+
|
|
3507
|
+
By default, `ascli` gets notification from `ascp` on its management port.
|
|
3508
|
+
This can be de-activated with parameter: `monitor=false` of `transfer_info`.
|
|
3509
|
+
|
|
3510
|
+
It is also possible to send local messages to this management port.
|
|
3511
|
+
A typical use is to change the target rate of a running transfer.
|
|
3512
|
+
|
|
3513
|
+
The communication is done through a flat JSON file that shall be created in `ascli` config folder as displayed with:
|
|
3514
|
+
|
|
3515
|
+
```shell
|
|
3516
|
+
ascli config folder
|
|
3517
|
+
```
|
|
3518
|
+
|
|
3519
|
+
The name of the file shall be: `send_<PID>`, where `<PID>` is the process id of the running `ascli`.
|
|
3520
|
+
|
|
3521
|
+
Example to change the target rate:
|
|
3522
|
+
|
|
3523
|
+
```shell
|
|
3524
|
+
echo '{"type":"RATE","Rate":300000}' > ~/.aspera/ascli/send_67470
|
|
3525
|
+
```
|
|
3526
|
+
|
|
3527
|
+
When `ascli` detects this file, it uses it and then deletes it.
|
|
3528
|
+
|
|
3437
3529
|
##### Agent: Direct: `aspera.conf`: Virtual Links
|
|
3438
3530
|
|
|
3439
3531
|
This agent supports a local configuration file: `aspera.conf` where Virtual links can be configured:
|
|
@@ -3610,11 +3702,11 @@ By specifying option: `--transfer=httpgw`, `ascli` will start transfers using th
|
|
|
3610
3702
|
|
|
3611
3703
|
Parameters provided in option `transfer_info` are:
|
|
3612
3704
|
|
|
3613
|
-
| Name | Type | Description
|
|
3614
|
-
|
|
3615
|
-
| `url` | `String` | URL of the HTTP GW<br/>Mandatory
|
|
3705
|
+
| Name | Type | Description |
|
|
3706
|
+
|---------------------|-----------|-----------------------------------------------------------|
|
|
3707
|
+
| `url` | `String` | URL of the HTTP GW<br/>Mandatory |
|
|
3616
3708
|
| `upload_chunk_size` | `Integer` | Size in bytes of chunks for upload<br/>Default: `64000` |
|
|
3617
|
-
| `api_version` | `String` | Force use of version (`v1`, `v2`)<br/>Default: `v2`
|
|
3709
|
+
| `api_version` | `String` | Force use of version (`v1`, `v2`)<br/>Default: `v2` |
|
|
3618
3710
|
| `synchronous` | `Bool` | Wait for each message acknowledgment<br/>Default: `false` |
|
|
3619
3711
|
|
|
3620
3712
|
Example:
|
|
@@ -3635,8 +3727,8 @@ Set option `transfer` to `transferd`.
|
|
|
3635
3727
|
|
|
3636
3728
|
Options for `transfer_info` are:
|
|
3637
3729
|
|
|
3638
|
-
| Name | Type | Description
|
|
3639
|
-
|
|
3730
|
+
| Name | Type | Description |
|
|
3731
|
+
|----------|----------|----------------------------------------------|
|
|
3640
3732
|
| `url` | `String` | IP address and port listened by the daemon<br/>Mandatory<br/>Default: `:0` |
|
|
3641
3733
|
| `start` | `Bool` | Start a new daemon.<br/>Default: `true` |
|
|
3642
3734
|
| `stop` | `Bool` | Stop daemon when exiting `ascli`<br/>Default: `true` |
|
|
@@ -3672,7 +3764,7 @@ On Windows the compilation may fail for various reasons (3.1.1):
|
|
|
3672
3764
|
|
|
3673
3765
|
- `cannot find -lx64-ucrt-ruby310`
|
|
3674
3766
|
|
|
3675
|
-
→ copy the file `[Ruby main dir]\lib\libx64-ucrt-ruby310.dll.a` to `[Ruby main dir]\lib\libx64-ucrt-ruby310.a`
|
|
3767
|
+
→ copy the file `[Ruby main dir]\lib\libx64-ucrt-ruby310.dll.a` to (remove the `dll` extension) `[Ruby main dir]\lib\libx64-ucrt-ruby310.a`
|
|
3676
3768
|
|
|
3677
3769
|
- `conflicting types for 'gettimeofday'`
|
|
3678
3770
|
|
|
@@ -3748,7 +3840,7 @@ ascli config ascp schema transferd --format=jsonpp
|
|
|
3748
3840
|
`ascp` argument or environment variable is provided in description.
|
|
3749
3841
|
|
|
3750
3842
|
| ID | Name |
|
|
3751
|
-
|
|
|
3843
|
+
| - | --------- |
|
|
3752
3844
|
| A | Direct |
|
|
3753
3845
|
| C | Connect |
|
|
3754
3846
|
| D | Desktop |
|
|
@@ -3757,17 +3849,17 @@ ascli config ascp schema transferd --format=jsonpp
|
|
|
3757
3849
|
| T | Transferd |
|
|
3758
3850
|
|
|
3759
3851
|
| Field | Type | Description |
|
|
3760
|
-
|
|
|
3852
|
+
| ------------------------------ | ------- | -------------------------------------------------------------------------------- |
|
|
3761
3853
|
| apply_local_docroot | boolean | Apply local docroot to source paths.<br/>(A, T)<br/>(`--apply-local-docroot`) |
|
|
3762
3854
|
| authentication | string | Set to `token` for SSH bypass keys, else password asked if not provided.<br/>(C) |
|
|
3763
3855
|
| 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}`) |
|
|
3764
|
-
| cipher_allowed | string | Returned by node API. Valid literals include `aes-128` and `none`.<br/>(C) |
|
|
3765
|
-
| content_protection | string | Enable client-side encryption at rest (CSEAR)
|
|
3766
|
-
| content_protection_password | string | Specifies CSEAR password
|
|
3856
|
+
| 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 at rest (CSEAR).<br/>Allowed values: `encrypt`, `decrypt`<br/>(`--file-crypt={enum}`) |
|
|
3858
|
+
| content_protection_password | string | Specifies CSEAR password.<br/>(env:`ASPERA_SCP_FILEPASS`) |
|
|
3767
3859
|
| cookie | string | Metadata for transfer specified by application.<br/>(env:`ASPERA_SCP_COOKIE`) |
|
|
3768
3860
|
| create_dir | boolean | Specifies whether to create new directories.<br/>(`-d`) |
|
|
3769
3861
|
| 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`) |
|
|
3770
|
-
| delete_source | boolean | Remove transfered source files after transfer success.
|
|
3862
|
+
| 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) |
|
|
3771
3863
|
| destination_root | string | Destination root directory. |
|
|
3772
3864
|
| destination_root_id | string | The file ID of the destination root directory.<br/>Required when using Bearer token auth for the destination node.<br/>(T) |
|
|
3773
3865
|
| dgram_size | integer | UDP datagram size in bytes.<br/>(`-Z {integer}`) |
|
|
@@ -3783,16 +3875,16 @@ ascli config ascp schema transferd --format=jsonpp
|
|
|
3783
3875
|
| https_fallback_port | integer | Specifies HTTPS port when cipher is used.<br/>(`-t {integer}`) |
|
|
3784
3876
|
| icos | object | Configuration parameters for IBM Cloud Object Storage (ICOS).<br/>(T) |
|
|
3785
3877
|
| keepalive | boolean | The session is running in persistent session mode.<br/>(A, T)<br/>(`--keepalive`) |
|
|
3786
|
-
| lock_min_rate | boolean |
|
|
3878
|
+
| lock_min_rate | boolean | n/a<br/>(C) |
|
|
3787
3879
|
| lock_min_rate_kbps | boolean | If `true`, lock the minimum transfer rate to the value set for min_rate_kbps.<br/>If `false`, users can adjust the transfer rate up to the value set for target_rate_cap_kbps.<br/>(C, T) |
|
|
3788
3880
|
| lock_rate_policy | boolean | If `true`, lock the rate policy to the default value.<br/>(C, T) |
|
|
3789
|
-
| lock_target_rate | boolean |
|
|
3790
|
-
| lock_target_rate_kbps | boolean | If `true`, lock the target transfer rate to the default value set for target_rate_kbps
|
|
3881
|
+
| lock_target_rate | boolean | n/a<br/>(C) |
|
|
3882
|
+
| lock_target_rate_kbps | boolean | If `true`, lock the target transfer rate to the default value set for `target_rate_kbps`.<br/>If `false`, users can adjust the transfer rate up to the value set for `target_rate_cap_kbps`.<br/>(C, T) |
|
|
3791
3883
|
| min_rate_cap_kbps | integer | The highest minimum rate that an incoming transfer can request, in kilobits per second.<br/>Client minimum rate requests that exceed the minimum rate cap are ignored.<br/>The default value of unlimited applies no cap to the minimum rate. (Default: 0)<br/>(C, T) |
|
|
3792
3884
|
| min_rate_kbps | integer | Set the minimum transfer rate in kilobits per second.<br/>(`-m {integer}`) |
|
|
3793
|
-
| move_after_transfer | string | Move source files to the specified `archive-dir` directory after they are transferred correctly.<br/>Available as of 3.8.0. Details in ascp manual.<br/>Requires write permissions on the source.<br/>If `src_base` is specified, files are moved to `archive-dir`/`path-relative-to-srcbase`.<br/>`archive-dir` must be in the same file system (or cloud storage account) as the source files being transferred.<br/>`archive-dir` is subject to the same docroot restrictions as source files.<br/>`move_after_transfer` and `remove_after_transfer` are mutually exclusive options.<br/>After files have been moved to the archive, the original source directory structure is left in place. Empty directories are not saved to `archive-dir`. To remove empty source directories after a successful move operation, also set `remove_empty_directories` to `true`. When using `remove_empty_directories`, empty directory removal examination starts at the `srcbase` and proceeds down any subdirectories. If no `srcbase` is used and a file path (as opposed to a directory path) is specified, then only the immediate parent directory is examined and removed if it is empty following the move of the source file.<br/>(A, N, T)<br/>(`--move-after-transfer={string}`) |
|
|
3794
|
-
| multi_session | integer | Use multi-session transfer. max 128.<br/>Each participant on one host needs an independent UDP (-O) port.<br/>Large files are split between sessions only when transferring with `resume_policy`=`none
|
|
3795
|
-
| multi_session_threshold | integer | Split files across multiple ascp sessions if their size in bytes is greater than or equal to the specified value.<br/>(0=no file is split)<br/>(A, N, T)<br/>(`--multi-session-threshold={integer}`) |
|
|
3885
|
+
| move_after_transfer | string | Move source files to the specified `archive-dir` directory after they are transferred correctly.<br/>Available as of 3.8.0. Details in `ascp` manual.<br/>Requires write permissions on the source.<br/>If `src_base` is specified, files are moved to `archive-dir`/`path-relative-to-srcbase`.<br/>`archive-dir` must be in the same file system (or cloud storage account) as the source files being transferred.<br/>`archive-dir` is subject to the same docroot restrictions as source files.<br/>`move_after_transfer` and `remove_after_transfer` are mutually exclusive options.<br/>After files have been moved to the archive, the original source directory structure is left in place. Empty directories are not saved to `archive-dir`. To remove empty source directories after a successful move operation, also set `remove_empty_directories` to `true`. When using `remove_empty_directories`, empty directory removal examination starts at the `srcbase` and proceeds down any subdirectories. If no `srcbase` is used and a file path (as opposed to a directory path) is specified, then only the immediate parent directory is examined and removed if it is empty following the move of the source file.<br/>(A, N, T)<br/>(`--move-after-transfer={string}`) |
|
|
3886
|
+
| multi_session | integer | Use multi-session transfer. max 128.<br/>Each participant on one host needs an independent UDP (-O) port.<br/>Large files are split between sessions only when transferring with `resume_policy`=`none`.<br/>(special:`-C {integer}`) |
|
|
3887
|
+
| multi_session_threshold | integer | Split files across multiple `ascp` sessions if their size in bytes is greater than or equal to the specified value.<br/>(0=no file is split)<br/>(A, N, T)<br/>(`--multi-session-threshold={integer}`) |
|
|
3796
3888
|
| obfuscate_file_names | boolean | HTTP Gateway obfuscates file names when set to `true`.<br/>(H) |
|
|
3797
3889
|
| overwrite | string | Overwrite files at the destination with source files of the same name based on the policy:<br/>- `always` : Always overwrite the file.<br/>- `never` : Never overwrite the file. If the destination contains partial files that are older or the same as the source files and resume is enabled, the partial files resume transfer. Partial files with checksums or sizes that differ from the source files are not overwritten.<br/>- `diff` : (default) Overwrite the file if it is different from the source, depending on the compare method (default is size). If the destination is object storage, `diff` has the same effect as always. If resume is not enabled, partial files are overwritten if they are different from the source, otherwise they are skipped. If resume is enabled, only partial files with different sizes or checksums from the source are overwritten; otherwise, files resume.<br/>- `diff+older` : Overwrite the file if it is older and different from the source, depending on the compare method (default is size). If resume is not enabled, partial files are overwritten if they are older and different from the source, otherwise they are skipped. If resume is enabled, only partial files that are different and older than the source are overwritten, otherwise they are resumed.<br/>- `older` : Overwrite the file if its timestamp is older than the source timestamp.<br/>If you set an overwrite policy of `diff` or `diff+older`, difference is determined by the value set for `resume_policy`:<br/>`none` : The source and destination files are always considered different and the destination file is always overwritten<br/>`attributes` : The source and destination files are compared based on file attributes <br/>`sparse_checksum` : The source and destination files are compared based on sparse checksums, (currently file size)<br/>`full_checksum` : The source and destination files are compared based on full checksums<br/>Allowed values: `never`, `always`, `diff`, `older`, `diff+older`<br/>(`--overwrite={enum}`) |
|
|
3798
3890
|
| password | string | Password for local Windows user when transfer user associated with node API user is not the same as the one running `asperanoded`.<br/>Allows impersonating the transfer user and have access to resources (e.g. network shares).<br/>Windows only, node API only.<br/>(N) |
|
|
@@ -3801,7 +3893,7 @@ ascli config ascp schema transferd --format=jsonpp
|
|
|
3801
3893
|
| preserve_access_time | boolean | Preserve the source-file access timestamps at the destination.<br/>Because source access times are updated by the transfer operation, the timestamp that is preserved is the one just before to the transfer.<br/>(`--preserve-access-time`) |
|
|
3802
3894
|
| preserve_acls | string | Preserve access control lists.<br/>(A, T)<br/>Allowed values: `none`, `native`, `metafile`<br/>(`--preserve-acls={enum}`) |
|
|
3803
3895
|
| preserve_creation_time | boolean | Preserve source-file creation timestamps at the destination.<br/>Only Windows systems retain information about creation time. If the destination is not a Windows computer, this option is ignored.<br/>(`--preserve-creation-time`) |
|
|
3804
|
-
| preserve_extended_attrs | string | Preserve the extended attributes.<br/>(
|
|
3896
|
+
| preserve_extended_attrs | string | Preserve the extended attributes.<br/>(A, T)<br/>Allowed values: `none`, `native`, `metafile`<br/>(`--preserve-xattrs={enum}`) |
|
|
3805
3897
|
| preserve_file_owner_gid | boolean | Preserve the group ID for a file owner.<br/>(A, T)<br/>(`--preserve-file-owner-gid`) |
|
|
3806
3898
|
| preserve_file_owner_uid | boolean | Preserve the user ID for a file owner.<br/>(A, T)<br/>(`--preserve-file-owner-uid`) |
|
|
3807
3899
|
| preserve_modification_time | boolean | Set the modification time, the last time a file or directory was modified (written), of a transferred file to the modification of the source file or directory.<br/>Preserve source-file modification timestamps at the destination.<br/>(`--preserve-modification-time`) |
|
|
@@ -3830,7 +3922,7 @@ ascli config ascp schema transferd --format=jsonpp
|
|
|
3830
3922
|
| source_root_id | string | The file ID of the source root directory. Required when using Bearer token auth for the source node.<br/>(N, T) |
|
|
3831
3923
|
| src_base | string | Specify the prefix to be stripped off from each source object.<br/>The remaining portion of the source path is kept intact at the destination.<br/>Special care must be taken when used with cloud storage.<br/>(A, N, T)<br/>(`--src-base64=(conversion){string}`) |
|
|
3832
3924
|
| src_base64 | string | The folder name below which the directory structure is preserved (base64 encoded).<br/>(A, T)<br/>(`--src-base64={string}`) |
|
|
3833
|
-
| ssh_args | array |
|
|
3925
|
+
| 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}`) |
|
|
3834
3926
|
| ssh_port | integer | Specifies SSH (TCP) port.<br/>(`-P {integer}`) |
|
|
3835
3927
|
| 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`) |
|
|
3836
3928
|
| 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`) |
|
|
@@ -3843,10 +3935,10 @@ ascli config ascp schema transferd --format=jsonpp
|
|
|
3843
3935
|
| target_rate_kbps | integer | Specifies desired speed for the transfer.<br/>(`-l {integer}`) |
|
|
3844
3936
|
| title | string | Title of the transfer.<br/>(C, N, T) |
|
|
3845
3937
|
| token | string | Authorization token. Type: Bearer, Basic or ATM. (Also arg -W)<br/>(env:`ASPERA_SCP_TOKEN`) |
|
|
3846
|
-
| use_ascp4 | boolean | Specify version of protocol. Do not use ascp4
|
|
3847
|
-
| use_system_ssh | string |
|
|
3848
|
-
| wss_enabled | boolean | Server has Web Socket service enabled
|
|
3849
|
-
| wss_port | integer | TCP port used for
|
|
3938
|
+
| use_ascp4 | boolean | Specify version of protocol. Do not use `ascp4`.<br/>(A, N, T) |
|
|
3939
|
+
| use_system_ssh | string | 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 {string}`) |
|
|
3940
|
+
| wss_enabled | boolean | Server has Web Socket service enabled.<br/>(special:`--ws-connect`) |
|
|
3941
|
+
| wss_port | integer | TCP port used for Web Socket service feed. |
|
|
3850
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) |
|
|
3851
3943
|
|
|
3852
3944
|
#### Destination folder for transfers
|
|
@@ -3955,9 +4047,6 @@ Example: Source file `200KB.1` is renamed `sample1` on destination:
|
|
|
3955
4047
|
ascli server upload --src-type=pair ~/Documents/Samples/200KB.1 /Upload/sample1
|
|
3956
4048
|
```
|
|
3957
4049
|
|
|
3958
|
-
> [!NOTE]
|
|
3959
|
-
> There are some specific rules to specify a file list when using **Aspera on Cloud**, refer to the AoC plugin section.
|
|
3960
|
-
|
|
3961
4050
|
#### Source directory structure on destination
|
|
3962
4051
|
|
|
3963
4052
|
This section is not specific to `ascli` it is `ascp` behavior.
|
|
@@ -3981,18 +4070,18 @@ A leading `/` on destination is ignored (relative to docroot) unless docroot is
|
|
|
3981
4070
|
|
|
3982
4071
|
In the following table source folder `d3` contains 2 files: `f1` and `d4/f2`.
|
|
3983
4072
|
|
|
3984
|
-
| Source files
|
|
3985
|
-
|
|
3986
|
-
| `f1`
|
|
3987
|
-
| `f1`
|
|
3988
|
-
| `f1`
|
|
3989
|
-
| `f1`
|
|
3990
|
-
| `f1` `f2`
|
|
3991
|
-
| `d3`
|
|
3992
|
-
| `f1`
|
|
3993
|
-
| `f1` `f2`
|
|
3994
|
-
| `d1/f1` `d2/f2` | `d`
|
|
3995
|
-
| `d3`
|
|
4073
|
+
| Source files | Destination | Folders on Dest. | `create_dir` | Destination Files |
|
|
4074
|
+
|-----------------|-----|-----|------|-----------------------------------|
|
|
4075
|
+
| `f1` | `d/f` | - | false | Error: `d` does not exist. |
|
|
4076
|
+
| `f1` | `d/f` | `d` | false | `d/f` (renamed) |
|
|
4077
|
+
| `f1` | `d/f/.` | `d` | false | `d/f` (renamed) |
|
|
4078
|
+
| `f1` | `d/f` | `d/f` | false | `d/f/f1` |
|
|
4079
|
+
| `f1` `f2` | `d` | `d` | false | `d/f1` `d/f2` |
|
|
4080
|
+
| `d3` | `d` | - | false | `d/f1` `d/f2` (renamed) |
|
|
4081
|
+
| `f1` | `d` | - | true | `d/f1` |
|
|
4082
|
+
| `f1` `f2` | `d` | - | true | `d/f1` `d/f2` |
|
|
4083
|
+
| `d1/f1` `d2/f2` | `d` | - | true | `d/f1` `d/f2` |
|
|
4084
|
+
| `d3` | `d` | - | true | `d/d3/f1` `d/d3/d4/f2` |
|
|
3996
4085
|
|
|
3997
4086
|
If a file par list is provided then it is possible to rename or specify a different destination folder for each source (relative to the destination).
|
|
3998
4087
|
|
|
@@ -4102,7 +4191,7 @@ It can be configured:
|
|
|
4102
4191
|
|
|
4103
4192
|
- Using utility [`schtasks.exe`](https://learn.microsoft.com/fr-fr/windows-server/administration/windows-commands/schtasks-create)
|
|
4104
4193
|
|
|
4105
|
-
- Using
|
|
4194
|
+
- Using PowerShell function [`scheduletasks`](https://learn.microsoft.com/en-us/powershell/module/scheduledtasks)
|
|
4106
4195
|
|
|
4107
4196
|
- Using `taskschd.msc` (UI)
|
|
4108
4197
|
|
|
@@ -4306,14 +4395,14 @@ where:
|
|
|
4306
4395
|
- `dirname` is the folder name and can contain `/` to specify a subfolder.
|
|
4307
4396
|
- Supported arguments are:
|
|
4308
4397
|
|
|
4309
|
-
| Name | Type
|
|
4310
|
-
|
|
4311
|
-
| count | int
|
|
4312
|
-
| file | string| Basename for files<br/>Default: `file` |
|
|
4313
|
-
| size | int
|
|
4314
|
-
| inc | int
|
|
4315
|
-
| seq | enum
|
|
4316
|
-
| buf_init | enum
|
|
4398
|
+
| Name | Type | Description |
|
|
4399
|
+
|----------|--------|----------------------------------------------------------------|
|
|
4400
|
+
| count | int | Number of files<br/>Mandatory |
|
|
4401
|
+
| file | string | Basename for files<br/>Default: `file` |
|
|
4402
|
+
| size | int | Size of first file.<br/>Default: 0 |
|
|
4403
|
+
| inc | int | Increment applied to determine next file size<br/>Default: 0 |
|
|
4404
|
+
| seq | enum | Sequence in determining next file size<br/>Values: `random`, `sequential`<br/>Default: `sequential` |
|
|
4405
|
+
| buf_init | enum | How source data is initialized<br/>Option `none` is not allowed for downloads.<br/>Values:`none`, `zero`, `random`<br/>Default:`zero` |
|
|
4317
4406
|
|
|
4318
4407
|
The sequence parameter is applied as follows:
|
|
4319
4408
|
|
|
@@ -4365,7 +4454,7 @@ ascli server upload "faux:///mydir?file=testfile&count=1000&size=1" --to-folder=
|
|
|
4365
4454
|
```text
|
|
4366
4455
|
ascli -h
|
|
4367
4456
|
NAME
|
|
4368
|
-
ascli -- a command line tool for Aspera Applications (v4.24.
|
|
4457
|
+
ascli -- a command line tool for Aspera Applications (v4.24.2)
|
|
4369
4458
|
|
|
4370
4459
|
SYNOPSIS
|
|
4371
4460
|
ascli COMMANDS [OPTIONS] [ARGS]
|
|
@@ -4420,6 +4509,7 @@ OPTIONS: global
|
|
|
4420
4509
|
--once-only=ENUM Process only new items (some commands): [no], yes
|
|
4421
4510
|
--log-secrets=ENUM Show passwords in logs: [no], yes
|
|
4422
4511
|
--clean-temp=ENUM Cleanup temporary files on exit: no, [yes]
|
|
4512
|
+
--temp-folder=VALUE Temporary folder
|
|
4423
4513
|
--pid-file=VALUE Write process identifier to file, delete on exit (String)
|
|
4424
4514
|
--home=VALUE Home folder for tool (String)
|
|
4425
4515
|
--config-file=VALUE Path to YAML file with preset configuration
|
|
@@ -4436,7 +4526,6 @@ OPTIONS: global
|
|
|
4436
4526
|
--plugin-folder=VALUE Folder where to find additional plugins
|
|
4437
4527
|
--override=ENUM Wizard: override existing value: [no], yes
|
|
4438
4528
|
--default=ENUM Wizard: set as default configuration for specified plugin (also: update): no, [yes]
|
|
4439
|
-
--test-mode=ENUM Wizard: skip private key check step: [no], yes
|
|
4440
4529
|
--key-path=VALUE Wizard: path to private key for JWT
|
|
4441
4530
|
--ascp-path=VALUE Ascp: Path to ascp
|
|
4442
4531
|
--use-product=VALUE Ascp: Use ascp from specified product
|
|
@@ -4464,7 +4553,7 @@ OPTIONS: global
|
|
|
4464
4553
|
--transfer-info=VALUE Parameters for transfer agent (Hash)
|
|
4465
4554
|
|
|
4466
4555
|
COMMAND: config
|
|
4467
|
-
SUBCOMMANDS: ascp check_update coffee detect documentation download echo email_test file folder gem genkey image initdemo open platform plugins preset proxy_check pubkey remote_certificate smtp_settings test tokens transferd vault wizard
|
|
4556
|
+
SUBCOMMANDS: ascp check_update coffee detect documentation download echo email_test file folder gem genkey image initdemo open platform plugins preset proxy_check pubkey remote_certificate smtp_settings sync test tokens transferd vault wizard
|
|
4468
4557
|
|
|
4469
4558
|
|
|
4470
4559
|
COMMAND: shares
|
|
@@ -4528,7 +4617,6 @@ OPTIONS:
|
|
|
4528
4617
|
--instance=VALUE ATS instance in ibm cloud
|
|
4529
4618
|
--ats-key=VALUE ATS key identifier (ats_xxx)
|
|
4530
4619
|
--ats-secret=VALUE ATS key secret
|
|
4531
|
-
--params=VALUE Parameters access key creation (@json:)
|
|
4532
4620
|
--cloud=VALUE Cloud provider
|
|
4533
4621
|
--region=VALUE Cloud region
|
|
4534
4622
|
|
|
@@ -4539,12 +4627,13 @@ OPTIONS:
|
|
|
4539
4627
|
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4540
4628
|
--username=VALUE User's identifier
|
|
4541
4629
|
--password=VALUE User's password
|
|
4630
|
+
--auth=ENUM OAuth type of authentication: web, [jwt], boot
|
|
4542
4631
|
--client-id=VALUE OAuth client identifier
|
|
4543
4632
|
--client-secret=VALUE OAuth client secret
|
|
4544
|
-
--redirect-uri=VALUE OAuth redirect URI for web authentication
|
|
4545
|
-
--
|
|
4546
|
-
--
|
|
4547
|
-
--
|
|
4633
|
+
--redirect-uri=VALUE OAuth (Web) redirect URI for web authentication
|
|
4634
|
+
--private-key=VALUE OAuth (JWT) RSA private key PEM value (prefix file path with @file:)
|
|
4635
|
+
--passphrase=VALUE OAuth (JWT) RSA private key passphrase
|
|
4636
|
+
--scope=VALUE OAuth scope for API calls
|
|
4548
4637
|
--box=VALUE Package inbox, either shared inbox name or one of: inbox, inbox_history, inbox_all, inbox_all_history, outbox, outbox_history, pending, pending_history, all or ALL
|
|
4549
4638
|
--shared-folder=VALUE Send package with files from shared folder
|
|
4550
4639
|
--group-type=ENUM Type of shared box: [shared_inboxes], workgroups
|
|
@@ -4592,7 +4681,6 @@ OPTIONS:
|
|
|
4592
4681
|
--folder-reset-cache=ENUM Force detection of generated preview by refresh cache: [no], header, read
|
|
4593
4682
|
--skip-types=VALUE Skip types in comma separated list
|
|
4594
4683
|
--previews-folder=VALUE Preview folder in storage root
|
|
4595
|
-
--temp-folder=VALUE Path to temp folder
|
|
4596
4684
|
--skip-folders=VALUE List of folder to skip
|
|
4597
4685
|
--base=VALUE Basename of output for for test
|
|
4598
4686
|
--scan-path=VALUE Subpath in folder id to start scan in (default=/)
|
|
@@ -4624,13 +4712,13 @@ OPTIONS:
|
|
|
4624
4712
|
--url=VALUE URL of application, e.g. https://app.example.com/aspera/app
|
|
4625
4713
|
--username=VALUE User's identifier
|
|
4626
4714
|
--password=VALUE User's password
|
|
4627
|
-
--auth=ENUM OAuth type of authentication: web, [jwt]
|
|
4628
|
-
--client-id=VALUE OAuth
|
|
4629
|
-
--client-secret=VALUE OAuth
|
|
4630
|
-
--
|
|
4631
|
-
--
|
|
4632
|
-
--
|
|
4633
|
-
--
|
|
4715
|
+
--auth=ENUM OAuth type of authentication: web, [jwt], boot
|
|
4716
|
+
--client-id=VALUE OAuth client identifier
|
|
4717
|
+
--client-secret=VALUE OAuth client secret
|
|
4718
|
+
--redirect-uri=VALUE OAuth (Web) redirect URI for web authentication
|
|
4719
|
+
--private-key=VALUE OAuth (JWT) RSA private key PEM value (prefix file path with @file:)
|
|
4720
|
+
--passphrase=VALUE OAuth (JWT) RSA private key passphrase
|
|
4721
|
+
--scope=VALUE OAuth scope for API calls
|
|
4634
4722
|
--workspace=VALUE Name of workspace (String, NilClass)
|
|
4635
4723
|
--new-user-option=VALUE New user creation option for unknown package recipients (Hash)
|
|
4636
4724
|
--validate-metadata=ENUM Validate shared inbox metadata: no, [yes]
|
|
@@ -4748,39 +4836,50 @@ Aspera on Cloud API requires the use of OAuth v2 mechanism for authentication (H
|
|
|
4748
4836
|
|
|
4749
4837
|
It is recommended to use the wizard to set it up, although manual configuration is also possible.
|
|
4750
4838
|
|
|
4751
|
-
###
|
|
4839
|
+
### AoC configuration: Using Wizard
|
|
4752
4840
|
|
|
4753
4841
|
`ascli` provides a configuration [wizard](#wizard).
|
|
4754
4842
|
|
|
4755
4843
|
The wizard guides you through the steps to create a new configuration preset for Aspera on Cloud.
|
|
4756
4844
|
|
|
4757
|
-
The first optional argument is the URL of your Aspera on Cloud instance
|
|
4845
|
+
The first optional argument is the URL of your Aspera on Cloud instance or simply the organization name, i.e. one of those :
|
|
4846
|
+
|
|
4847
|
+
- `_your_organization_`
|
|
4848
|
+
- `_your_organization_.ibmaspera.com`
|
|
4849
|
+
- `https://_your_organization_.ibmaspera.com`
|
|
4850
|
+
|
|
4851
|
+
The second optional argument can also be provided to specify the plugin name, e.g. `aoc` for Aspera on Cloud.
|
|
4758
4852
|
If optional arguments are not provided, the wizard will ask interactively and try to detect the application.
|
|
4759
4853
|
|
|
4760
4854
|
Here is a sample invocation :
|
|
4761
4855
|
|
|
4762
|
-
```
|
|
4763
|
-
ascli config wizard
|
|
4764
|
-
|
|
4765
|
-
|
|
4766
|
-
Preparing preset: aoc_myorg
|
|
4767
|
-
Please provide path to your private RSA key, or empty to generate one:
|
|
4856
|
+
```console
|
|
4857
|
+
$ ascli config wizard
|
|
4858
|
+
Using: Aspera on Cloud at https://_my_org_.ibmaspera.com
|
|
4859
|
+
Path to private RSA key (leave empty to generate):
|
|
4768
4860
|
option: key_path>
|
|
4769
|
-
|
|
4770
|
-
/
|
|
4861
|
+
Using existing key:
|
|
4862
|
+
/home/john/.aspera/ascli/my_private_key.pem
|
|
4863
|
+
Please Log in as user laurent.martin.aspera@fr.ibm.com at: https://_my_org_.ibmaspera.com
|
|
4864
|
+
Navigate to: (User) → Account Settings → Profile → Public Key
|
|
4865
|
+
Check or update the value to (including BEGIN/END lines):
|
|
4866
|
+
-----BEGIN PUBLIC KEY-----
|
|
4867
|
+
MIICIjANBg....
|
|
4868
|
+
....
|
|
4869
|
+
....kCAwEAAQ==
|
|
4870
|
+
-----END PUBLIC KEY-----
|
|
4871
|
+
Once updated or validated, press [Enter].
|
|
4872
|
+
|
|
4771
4873
|
Using global client_id.
|
|
4772
|
-
|
|
4773
|
-
|
|
4774
|
-
creating new config preset: aoc_myorg
|
|
4775
|
-
Setting config preset as default for aspera
|
|
4776
|
-
saving configuration file
|
|
4777
|
-
Done.
|
|
4874
|
+
Preparing preset: aoc_my_org_ibmaspera_com_john_example_com
|
|
4875
|
+
Setting config preset as default for aoc
|
|
4778
4876
|
You can test with:
|
|
4779
4877
|
ascli aoc user profile show
|
|
4878
|
+
Saving config file.
|
|
4780
4879
|
```
|
|
4781
4880
|
|
|
4782
4881
|
> [!NOTE]
|
|
4783
|
-
> In above example, replace `https://
|
|
4882
|
+
> In above example, replace `https://_my_org_.ibmaspera.com` with your actual AoC URL.
|
|
4784
4883
|
|
|
4785
4884
|
Optionally, it is possible to create a new organization-specific integration, i.e. client application identification.
|
|
4786
4885
|
For this, specify the option: `--use-generic-client=no`.
|
|
@@ -4788,11 +4887,11 @@ For this, specify the option: `--use-generic-client=no`.
|
|
|
4788
4887
|
If you already know the application, and want to limit the detection to it, provide URL and plugin name:
|
|
4789
4888
|
|
|
4790
4889
|
```shell
|
|
4791
|
-
ascli config wizard
|
|
4890
|
+
ascli config wizard _my_org_ aoc
|
|
4792
4891
|
```
|
|
4793
4892
|
|
|
4794
4893
|
> [!NOTE]
|
|
4795
|
-
> In above example, replace `
|
|
4894
|
+
> In above example, replace `_my_org_` with the first part of your actual AoC URL: `https://_my_org_.ibmaspera.com`.
|
|
4796
4895
|
|
|
4797
4896
|
After successful completion of the wizard, a new configuration preset is created, and set as default for the `aoc` plugin.
|
|
4798
4897
|
This can be verified with command:
|
|
@@ -4801,12 +4900,12 @@ This can be verified with command:
|
|
|
4801
4900
|
ascli config preset over
|
|
4802
4901
|
```
|
|
4803
4902
|
|
|
4804
|
-
###
|
|
4903
|
+
### AoC configuration: Using manual setup
|
|
4805
4904
|
|
|
4806
4905
|
> [!NOTE]
|
|
4807
4906
|
> If you used the wizard (recommended): skip this section.
|
|
4808
4907
|
|
|
4809
|
-
####
|
|
4908
|
+
#### AoC manual configuration: Details
|
|
4810
4909
|
|
|
4811
4910
|
Several types of OAuth authentication are supported:
|
|
4812
4911
|
|
|
@@ -4836,7 +4935,7 @@ Else you can use a specific OAuth API `client_id`, the first step is to declare
|
|
|
4836
4935
|
|
|
4837
4936
|
Let's start by a registration with web based authentication (auth=web):
|
|
4838
4937
|
|
|
4839
|
-
- Open a web browser, log to your instance: e.g. `https://
|
|
4938
|
+
- Open a web browser, log to your instance: e.g. `https://_my_org_.ibmaspera.com/`
|
|
4840
4939
|
(use your actual AoC instance URL)
|
|
4841
4940
|
- Go to Apps → Admin → Organization → Integrations
|
|
4842
4941
|
- Click **Create New**
|
|
@@ -4861,14 +4960,14 @@ Let's create an [Option Preset](#option-preset) called: `my_aoc_org` using `ask`
|
|
|
4861
4960
|
|
|
4862
4961
|
```shell
|
|
4863
4962
|
ascli config preset ask my_aoc_org url client_id client_secret
|
|
4864
|
-
option: url> https://
|
|
4963
|
+
option: url> https://_my_org_.ibmaspera.com/
|
|
4865
4964
|
option: client_id> my_client_id_here
|
|
4866
4965
|
option: client_secret> my_client_secret_here
|
|
4867
4966
|
updated: my_aoc_org
|
|
4868
4967
|
```
|
|
4869
4968
|
|
|
4870
4969
|
> [!NOTE]
|
|
4871
|
-
> In above example, replace `https://
|
|
4970
|
+
> In above example, replace `https://_my_org_.ibmaspera.com` with your actual AoC URL.
|
|
4872
4971
|
|
|
4873
4972
|
(This can also be done in one line using the command `config preset update my_aoc_org --url=...`)
|
|
4874
4973
|
|
|
@@ -4896,7 +4995,7 @@ This can be done in two manners:
|
|
|
4896
4995
|
|
|
4897
4996
|
- Graphically
|
|
4898
4997
|
|
|
4899
|
-
- Open a web browser, log to your instance: `https://
|
|
4998
|
+
- Open a web browser, log to your instance: `https://_my_org_.ibmaspera.com/`
|
|
4900
4999
|
(Use your actual AoC instance URL)
|
|
4901
5000
|
- Go to Apps → Admin → Organization → Integrations
|
|
4902
5001
|
- Click on the previously created application
|
|
@@ -4939,7 +5038,7 @@ This can be done in two manners:
|
|
|
4939
5038
|
|
|
4940
5039
|
Open the previously generated public key located here: `$HOME/.aspera/ascli/my_private_key.pub`
|
|
4941
5040
|
|
|
4942
|
-
- Open a web browser, log to your instance: `https://
|
|
5041
|
+
- Open a web browser, log to your instance: `https://_my_org_.ibmaspera.com/`
|
|
4943
5042
|
(Use your actual AoC instance URL)
|
|
4944
5043
|
- Click on the user's icon (top right)
|
|
4945
5044
|
- Select **Account Settings**
|
|
@@ -5039,7 +5138,7 @@ ascli aoc files bearer_token_node /
|
|
|
5039
5138
|
```
|
|
5040
5139
|
|
|
5041
5140
|
```shell
|
|
5042
|
-
ascli aoc admin node v4
|
|
5141
|
+
ascli aoc admin node v4 _my_node_id_ --secret=_ak_secret_here_ bearer_token_node /
|
|
5043
5142
|
```
|
|
5044
5143
|
|
|
5045
5144
|
### Administration
|
|
@@ -5623,7 +5722,7 @@ ascli aoc packages shared_inboxes list
|
|
|
5623
5722
|
|
|
5624
5723
|
Use fields: `recipients` and/or `bcc_recipients` to provide the list of recipients: **user** or **shared inbox**:
|
|
5625
5724
|
|
|
5626
|
-
- Provide either IDs as expected by API: `"recipients":[{"type":"dropbox","id":"
|
|
5725
|
+
- Provide either IDs as expected by API: `"recipients":[{"type":"dropbox","id":"_my_shibox_id_"}]`
|
|
5627
5726
|
- or just names: `"recipients":[{"The Dest"}]`.
|
|
5628
5727
|
|
|
5629
5728
|
ascli will resolve the list of email addresses and dropbox names to the expected type/ID list, based on case-insensitive partial match.
|
|
@@ -5693,12 +5792,12 @@ By default, all files in the package are downloaded, i.e. `.` is used as the fil
|
|
|
5693
5792
|
Option `package_folder` defines the attribute of folder used as destination sub folder in the `to_folder` path (see description earlier).
|
|
5694
5793
|
The following syntax is supported
|
|
5695
5794
|
|
|
5696
|
-
| Syntax
|
|
5697
|
-
|
|
5698
|
-
| `@none:`
|
|
5699
|
-
| `<field>`
|
|
5700
|
-
| `<field1>+<field2>`
|
|
5701
|
-
| `<field1>+<field2>?` | A subfolder named after the package's specified field1 is created, unless it already exists
|
|
5795
|
+
| Syntax | Description |
|
|
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 `.`. |
|
|
5702
5801
|
|
|
5703
5802
|
The special value `seq` for `<field2>` will append an incrementing number to the folder name starting at `1`.
|
|
5704
5803
|
If `?` is used, then the sequence number is used only if the folder already exists.
|
|
@@ -5768,15 +5867,15 @@ ascli aoc package node_info <package ID here> / --format=json --show-secrets=yes
|
|
|
5768
5867
|
|
|
5769
5868
|
By default, when using `aoc packages list` or `aoc packages receive ALL`, the following `query` is performed:
|
|
5770
5869
|
|
|
5771
|
-
| Query parameter | Value
|
|
5772
|
-
|
|
5870
|
+
| Query parameter | Value |
|
|
5871
|
+
|----------------------------|-----------------------------------------------|
|
|
5773
5872
|
| `archived` | `false` |
|
|
5774
5873
|
| `has_content` | `true` |
|
|
5775
5874
|
| `received` | `true` |
|
|
5776
5875
|
| `completed` | `true` |
|
|
5777
|
-
| `workspace_id` | Set based on current workspace.
|
|
5876
|
+
| `workspace_id` | Set based on current workspace. |
|
|
5778
5877
|
| `dropbox_id` | Set according to `dropbox_name`, if provided. |
|
|
5779
|
-
| `exclude_dropbox_packages` | `true` unless `dropbox_id` is provided.
|
|
5878
|
+
| `exclude_dropbox_packages` | `true` unless `dropbox_id` is provided. |
|
|
5780
5879
|
|
|
5781
5880
|
Parameters provided using option `query` override this query.
|
|
5782
5881
|
To remove a parameter, set it to `null`.
|
|
@@ -5866,14 +5965,14 @@ The basic payload to create a permission, i.e. a Shared Folder (last argument at
|
|
|
5866
5965
|
`ascli` expects the same payload for creation.
|
|
5867
5966
|
`ascli` automatically populates some payload fields and provides convenient additional fields that generate native fields:
|
|
5868
5967
|
|
|
5869
|
-
| Field | Type | Description
|
|
5870
|
-
|
|
5968
|
+
| Field | Type | Description |
|
|
5969
|
+
|-----------------|----------|----------------------------------------------------------------------|
|
|
5871
5970
|
| `file_id` | Native<br/>Auto | ID of the folder to share, as specified in the command line by path. |
|
|
5872
|
-
| `access_levels` | Native<br/>Optional | List of access levels to set for the shared folder
|
|
5971
|
+
| `access_levels` | Native<br/>Optional | List of access levels to set for the shared folder.<br/>Defaults to full access. |
|
|
5873
5972
|
| `tags` | Native<br/>Auto | Set with expected values for AoC: username who creates, and workspace in which the shared folder is created. |
|
|
5874
|
-
| `access_type` | Native<br/>Required | Type of access, such as `user`, `group`, or `workspace
|
|
5973
|
+
| `access_type` | Native<br/>Required | Type of access, such as `user`, `group`, or `workspace`.<br/>Can be set with parameter `with`. |
|
|
5875
5974
|
| `access_id` | Native<br/>Required | ID of the user, group, or workspace (see `with`) |
|
|
5876
|
-
| `with` | `ascli` | Recipient of shared folder. Can be a username, a group name, or a workspace name
|
|
5975
|
+
| `with` | `ascli` | Recipient of shared folder. Can be a username, a group name, or a workspace name.<br/>`ascli` will resolve the name to the proper type and ID in fields `access_type` and `access_id`.<br/>If the value is the empty string, then it declares the shared folder in the workspace (first action to do, see below). |
|
|
5877
5976
|
| `link_name` | `ascli` | Name of the link file created in the user's home folder for private links. |
|
|
5878
5977
|
| `as` | `ascli` | Name of the link file created in the user's home folder for admin shared folders. |
|
|
5879
5978
|
|
|
@@ -5891,7 +5990,7 @@ ascli aoc files permission --workspace=<workspace name> <path to folder> ...
|
|
|
5891
5990
|
|
|
5892
5991
|
> [!NOTE]
|
|
5893
5992
|
> The workspace is identified by name, and folder by path, relative to the user's home.
|
|
5894
|
-
> To use an identifier instead, one can use the percent selector, like `%id:
|
|
5993
|
+
> To use an identifier instead, one can use the percent selector, like `%id:_my_ws_id_`.
|
|
5895
5994
|
|
|
5896
5995
|
##### Admin Shared Folders
|
|
5897
5996
|
|
|
@@ -5903,7 +6002,9 @@ ascli aoc admin node do <node ID> permission --workspace=<workspace name> <path
|
|
|
5903
6002
|
|
|
5904
6003
|
> [!TIP]
|
|
5905
6004
|
> The node is identified by identifier.
|
|
5906
|
-
> To use an name instead, one can use the percent selector, like `%name:"my node"
|
|
6005
|
+
> To use an name instead, one can use the percent selector, like `%name:"my node"`.
|
|
6006
|
+
> The path is identifier by a path, one can specify a file id, with `%id:123`.
|
|
6007
|
+
> If the id is left blank: `%id:`, then if means `*`, i.e. all.
|
|
5907
6008
|
|
|
5908
6009
|
##### Example: List permissions on a shared folder
|
|
5909
6010
|
|
|
@@ -5980,7 +6081,7 @@ ascli aoc admin node list --fields=id,name
|
|
|
5980
6081
|
|
|
5981
6082
|
In the following commands, replace:
|
|
5982
6083
|
|
|
5983
|
-
- `
|
|
6084
|
+
- `_my_node_id_` with the node ID
|
|
5984
6085
|
- `my ws` with the workspace name
|
|
5985
6086
|
- `/folder_on_node` with the name of the folder on the node: it can also be a folder deeper than level 1.
|
|
5986
6087
|
|
|
@@ -5989,7 +6090,7 @@ The node can also be conveniently identified using the **percent selector** inst
|
|
|
5989
6090
|
If the shared folder does not exist, then create it:
|
|
5990
6091
|
|
|
5991
6092
|
```shell
|
|
5992
|
-
ascli aoc admin node do
|
|
6093
|
+
ascli aoc admin node do _my_node_id_ mkdir /folder_on_node
|
|
5993
6094
|
```
|
|
5994
6095
|
|
|
5995
6096
|
Create the shared folder in workspace `my ws` (set `with` to empty string, or do not specify it).
|
|
@@ -5997,7 +6098,7 @@ Optionally use `as` to set the name of the shared folder if different from the f
|
|
|
5997
6098
|
For other options, refer to the previous section on shared folders.
|
|
5998
6099
|
|
|
5999
6100
|
```shell
|
|
6000
|
-
ascli aoc admin node do
|
|
6101
|
+
ascli aoc admin node do _my_node_id_ permission /folder_on_node create @json:'{"with":"","as":"folder_for_users"}' --workspace="my ws"
|
|
6001
6102
|
```
|
|
6002
6103
|
|
|
6003
6104
|
> [!NOTE]
|
|
@@ -6008,20 +6109,44 @@ The `"with"` parameter will perform a lookup, and set fields `access_type` and `
|
|
|
6008
6109
|
The native fields `access_type` and `access_id` can also be used, instead of `with`.
|
|
6009
6110
|
|
|
6010
6111
|
```shell
|
|
6011
|
-
ascli aoc admin node do
|
|
6112
|
+
ascli aoc admin node do _my_node_id_ permission /folder_on_node create @json:'{"with":"john@example.com","as":"folder_for_one_user"}' --workspace="my ws"
|
|
6012
6113
|
```
|
|
6013
6114
|
|
|
6014
6115
|
```shell
|
|
6015
|
-
ascli aoc admin node do
|
|
6116
|
+
ascli aoc admin node do _my_node_id_ permission /folder_on_node create @json:'{"with":"group 1","as":"folder_for_a_group"}' --workspace="my ws"
|
|
6016
6117
|
```
|
|
6017
6118
|
|
|
6018
6119
|
```shell
|
|
6019
|
-
ascli aoc admin node do
|
|
6120
|
+
ascli aoc admin node do _my_node_id_ permission /folder_on_node create @json:'{"with":"my ws","as":"folder_for_all_workspace"}' --workspace="my ws"
|
|
6020
6121
|
```
|
|
6021
6122
|
|
|
6022
6123
|
> [!NOTE]
|
|
6023
6124
|
> In the previous commands, field `as` is optional.
|
|
6024
6125
|
|
|
6126
|
+
##### Example: List all workspace admin shared folder on a node
|
|
6127
|
+
|
|
6128
|
+
First get the workspace identifier:
|
|
6129
|
+
|
|
6130
|
+
```shell
|
|
6131
|
+
ascli aoc admin workspace list --select=@json:'{"name":"my ws"}' --fields=id
|
|
6132
|
+
```
|
|
6133
|
+
|
|
6134
|
+
```text
|
|
6135
|
+
111111
|
|
6136
|
+
```
|
|
6137
|
+
|
|
6138
|
+
Then, identify the node id on which to list, see previous section.
|
|
6139
|
+
|
|
6140
|
+
Finally, list all shared folders, as permissions:
|
|
6141
|
+
|
|
6142
|
+
```shell
|
|
6143
|
+
ascli aoc admin node do _my_node_id_ perm %id: list --query=@json:'{"access_type":"user","access_id":"ASPERA_ACCESS_KEY_ADMIN_WS_111111"}'
|
|
6144
|
+
```
|
|
6145
|
+
|
|
6146
|
+
> [!NOTE]
|
|
6147
|
+
> Refer to Node API: `GET /permissions` for all `query` options.
|
|
6148
|
+
> The folder identifier is left empty `%id:`, to apply to all folders.
|
|
6149
|
+
|
|
6025
6150
|
#### Cross Organization transfers
|
|
6026
6151
|
|
|
6027
6152
|
It is possible to transfer files directly between organizations without having to first download locally and then upload...
|
|
@@ -6030,7 +6155,7 @@ Although optional, the creation of [Option Preset](#option-preset) is recommende
|
|
|
6030
6155
|
|
|
6031
6156
|
Procedure to send a file from org1 to org2:
|
|
6032
6157
|
|
|
6033
|
-
- Get access to Organization 1 and create an [Option Preset](#option-preset): e.g. `org1`, for instance, use the [Wizard](#
|
|
6158
|
+
- Get access to Organization 1 and create an [Option Preset](#option-preset): e.g. `org1`, for instance, use the [Wizard](#wizard)
|
|
6034
6159
|
- Check that access works and locate the source file e.g. `mysourcefile`, e.g. using command `files browse`
|
|
6035
6160
|
- Get access to Organization 2 and create an [Option Preset](#option-preset): e.g. `org2`
|
|
6036
6161
|
- Check that access works and locate the destination folder `mydestfolder`
|
|
@@ -6076,8 +6201,8 @@ admin analytics transfers nodes
|
|
|
6076
6201
|
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%>}'
|
|
6077
6202
|
admin analytics transfers users --once-only=yes
|
|
6078
6203
|
admin application list
|
|
6079
|
-
admin ats access_key create --cloud=aws --region=my_region
|
|
6080
|
-
admin ats access_key create --cloud=softlayer --region=my_region
|
|
6204
|
+
admin ats 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":"/"}}'
|
|
6205
|
+
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":"/"}}'
|
|
6081
6206
|
admin ats access_key delete ak1ibmcloud
|
|
6082
6207
|
admin ats access_key list --fields=name,id
|
|
6083
6208
|
admin ats access_key node ak1ibmcloud --secret=my_secret_here browse /
|
|
@@ -6170,7 +6295,7 @@ files upload --to-folder=/testsrc test_file.bin
|
|
|
6170
6295
|
files upload --to-folder=/testsrc test_file.bin test_file.bin
|
|
6171
6296
|
files upload --workspace=my_other_workspace --to-folder=my_other_folder test_file.bin --transfer=node --transfer-info=@json:@stdin:
|
|
6172
6297
|
files v3 info
|
|
6173
|
-
gateway --pid-file=
|
|
6298
|
+
gateway --pid-file=pid_aoc_faspex_gateway @json:'{"url":"https://localhost:12345/aspera/faspex"}' &
|
|
6174
6299
|
organization
|
|
6175
6300
|
organization --format=image --fields=background_image_url --ui=text
|
|
6176
6301
|
organization --url=my_public_link_recv_from_aoc_user
|
|
@@ -6336,8 +6461,8 @@ The parameters provided to ATS for access key creation are the ones of [ATS API]
|
|
|
6336
6461
|
|
|
6337
6462
|
```bash
|
|
6338
6463
|
access_key cluster ak2ibmcloud --secret=my_secret_here
|
|
6339
|
-
access_key create --cloud=aws --region=my_region
|
|
6340
|
-
access_key create --cloud=softlayer --region=my_region
|
|
6464
|
+
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
|
+
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":"/"}}'
|
|
6341
6466
|
access_key delete ak2ibmcloud
|
|
6342
6467
|
access_key delete ak_aws
|
|
6343
6468
|
access_key entitlement ak2ibmcloud
|
|
@@ -6389,6 +6514,7 @@ df
|
|
|
6389
6514
|
download my_inside_folder/test_file.bin --to-folder=. --transfer-info=@json:'{"wss":false,"resume":{"iter_max":1}}'
|
|
6390
6515
|
download my_large_file --to-folder=my_upload_folder --transfer=node --ts.resume_policy=none
|
|
6391
6516
|
du /
|
|
6517
|
+
health transfer --to-folder=my_upload_folder
|
|
6392
6518
|
health transfer --to-folder=my_upload_folder --format=nagios
|
|
6393
6519
|
info
|
|
6394
6520
|
md5sum my_inside_folder/test_file.bin
|
|
@@ -6548,11 +6674,11 @@ Native API parameters can be placed in option `query`.
|
|
|
6548
6674
|
|
|
6549
6675
|
Special parameters can be placed in option `query` for "gen3" browse:
|
|
6550
6676
|
|
|
6551
|
-
| Parameter | Description
|
|
6552
|
-
|
|
6553
|
-
| `recursive` | Recursively list files
|
|
6554
|
-
| `max` | Maximum number of files to list |
|
|
6555
|
-
| `self` | Offset in the list
|
|
6677
|
+
| Parameter | Description |
|
|
6678
|
+
|-------------|----------------------------------|
|
|
6679
|
+
| `recursive` | Recursively list files. |
|
|
6680
|
+
| `max` | Maximum number of files to list. |
|
|
6681
|
+
| `self` | Offset in the list. |
|
|
6556
6682
|
|
|
6557
6683
|
Option `node_cache` can be set to `no` to avoid use of folder cache (Redis) and force actual read of file system.
|
|
6558
6684
|
|
|
@@ -6670,13 +6796,13 @@ By providing the `validator` option, offline transfer validation can be done.
|
|
|
6670
6796
|
|
|
6671
6797
|
### Sync
|
|
6672
6798
|
|
|
6673
|
-
There are three commands related to file
|
|
6799
|
+
There are three commands related to file synchronization in `node`:
|
|
6674
6800
|
|
|
6675
6801
|
| Command | `node` | `shares` | `aoc` | `server` | Description |
|
|
6676
|
-
|
|
6677
|
-
| `sync` | Yes
|
|
6678
|
-
| `async` | Yes
|
|
6679
|
-
| `ssync` | Yes
|
|
6802
|
+
|-----|-----|-----|-----|-----|-----------------------------------------------|
|
|
6803
|
+
| `sync` | Yes | Yes | Yes | Yes | Perform a local sync, by executing `async` locally. |
|
|
6804
|
+
| `async` | Yes | | | | Uses API `/async`.<br/>Get status on sync operation on server side, like Aspera Console. |
|
|
6805
|
+
| `ssync` | Yes | | | | Uses API `/asyncs`.<br/>It can start a sync operation on the server side, and monitor only those. |
|
|
6680
6806
|
|
|
6681
6807
|
For details on the `sync` action, refer to [IBM Aspera Sync](#ibm-aspera-sync).
|
|
6682
6808
|
|
|
@@ -6821,17 +6947,17 @@ Bearer tokens can be generated using `ascli` command `bearer_token`: it takes tw
|
|
|
6821
6947
|
- The private key used to sign the token.
|
|
6822
6948
|
- The token information, which is a `Hash` containing the following elements:
|
|
6823
6949
|
|
|
6824
|
-
| Parameter
|
|
6825
|
-
|
|
6826
|
-
| `_scope`
|
|
6827
|
-
| `_validity`
|
|
6828
|
-
| `user_id`
|
|
6829
|
-
| `scope`
|
|
6830
|
-
| `expires_at`
|
|
6831
|
-
| `auth_type`
|
|
6832
|
-
| `group_ids`
|
|
6833
|
-
| `organization_id`
|
|
6834
|
-
| `watermarking_json_base64` | -
|
|
6950
|
+
| Parameter | Default | Type | Description |
|
|
6951
|
+
|----------------------|---------------------------|---------|---------------------------------------|
|
|
6952
|
+
| `_scope` | `user:all` | Special | Either `user:all` or `admin:all` |
|
|
6953
|
+
| `_validity` | 86400 | Special | Validity in seconds from now. |
|
|
6954
|
+
| `user_id` | - | Mandatory | Identifier of user |
|
|
6955
|
+
| `scope` | `node.<access_key>:<_scope>` | Mandatory | API scope<br/>e.g. `node.<access_key>:<node scope>` |
|
|
6956
|
+
| `expires_at` | `now+<_validity>` | Mandatory | Format: `%Y-%m-%dT%H:%M:%SZ`<br/>e.g. `2021-12-31T23:59:59Z` |
|
|
6957
|
+
| `auth_type` | `access_key` | Optional | `access_key`, `node_user` |
|
|
6958
|
+
| `group_ids` | - | Optional | List of group IDs |
|
|
6959
|
+
| `organization_id` | - | Optional | Organization ID |
|
|
6960
|
+
| `watermarking_json_base64` | - | Optional | Watermarking information (not used) |
|
|
6835
6961
|
|
|
6836
6962
|
> [!NOTE]
|
|
6837
6963
|
> For convenience, `ascli` provides additional parameters `_scope` and `_validity`.
|
|
@@ -6969,6 +7095,7 @@ access_key do my_ak_name show %id:1
|
|
|
6969
7095
|
access_key do my_ak_name show /test_nd_ak3
|
|
6970
7096
|
access_key do my_ak_name upload 'faux:///test_nd_ak3?100k' --default-ports=no
|
|
6971
7097
|
access_key do self permission %id:root_id create @json:'{"access_type":"user","access_id":"666"}'
|
|
7098
|
+
access_key do self permission / delete 1
|
|
6972
7099
|
access_key do self permission / show 1
|
|
6973
7100
|
access_key do self show / --fields=id --output=root_id
|
|
6974
7101
|
access_key list
|
|
@@ -7022,10 +7149,15 @@ stream list
|
|
|
7022
7149
|
sync admin status /data/local_sync
|
|
7023
7150
|
sync pull /aspera-test-dir-tiny --to-folder=/data/local_sync @json:'{"name":"SYNC_NAME","reset":true}'
|
|
7024
7151
|
sync pull /aspera-test-dir-tiny --to-folder=/data/local_sync @json:'{"reset":true}'
|
|
7152
|
+
transfer bandwidth_average
|
|
7153
|
+
transfer cancel nd_xfer_id
|
|
7025
7154
|
transfer list --once-only=yes
|
|
7155
|
+
transfer list --query=@json:'{"active_only":true,"count":1}' --fields=id --output=nd_xfer_id
|
|
7026
7156
|
transfer list --query=@json:'{"active_only":true}'
|
|
7027
7157
|
transfer list --query=@json:'{"reset":true}' --once-only=yes
|
|
7158
|
+
transfer modify nd_xfer_id @json:'{"target_rate_kbps":10000}'
|
|
7028
7159
|
transfer sessions
|
|
7160
|
+
transfer show nd_xfer_id
|
|
7029
7161
|
transport
|
|
7030
7162
|
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"}'
|
|
7031
7163
|
upload --username=my_ak_name --password=my_ak_secret test_file.bin
|
|
@@ -7044,10 +7176,10 @@ The `node` plugin supports Open Telemetry (OTel) for monitoring and tracing.
|
|
|
7044
7176
|
|
|
7045
7177
|
The command expects the following parameters provided as a `Hash` positional parameter:
|
|
7046
7178
|
|
|
7047
|
-
| Parameter | Type | Default | Description
|
|
7048
|
-
|
|
7049
|
-
| `url` | `String` | - | URL of the Instana HTTPS backend for OTel.
|
|
7050
|
-
| `key` | `String` | - | Agent key for the backend.
|
|
7179
|
+
| Parameter | Type | Default | Description |
|
|
7180
|
+
|-------------|----------|---------|----------------------------------------------|
|
|
7181
|
+
| `url` | `String` | - | URL of the Instana HTTPS backend for OTel. |
|
|
7182
|
+
| `key` | `String` | - | Agent key for the backend. |
|
|
7051
7183
|
| `interval` | `Float` | 10 | Polling interval in seconds.<br/>`0` for single shot. |
|
|
7052
7184
|
|
|
7053
7185
|
To retrieve OTel backend information: Go to the Instana web interface, **More** → **Agents** → **Docker** and identify the agent endpoint and key, e.g. `endpoint=ingress-blue-saas.instana.io`.
|
|
@@ -7085,7 +7217,9 @@ IBM Aspera's newer self-managed application.
|
|
|
7085
7217
|
| `boot` | Use authentication token copied from browser (experimental) |
|
|
7086
7218
|
|
|
7087
7219
|
> [!TIP]
|
|
7088
|
-
> If you have a Faspex 5 public link, provide it,
|
|
7220
|
+
> If you have a Faspex 5 public link, provide it, as-is, through the option `url`.
|
|
7221
|
+
|
|
7222
|
+
### Faspex 5 quick start with wizard
|
|
7089
7223
|
|
|
7090
7224
|
For a quick start, one can use the wizard, which will help to create an [Option Preset](#option-preset):
|
|
7091
7225
|
|
|
@@ -7093,8 +7227,15 @@ For a quick start, one can use the wizard, which will help to create an [Option
|
|
|
7093
7227
|
ascli config wizard
|
|
7094
7228
|
```
|
|
7095
7229
|
|
|
7230
|
+
Then, answer questions interactively:
|
|
7231
|
+
|
|
7096
7232
|
```text
|
|
7097
7233
|
argument: url> faspex5.example.com
|
|
7234
|
+
```
|
|
7235
|
+
|
|
7236
|
+
Potentially, multiple applications may be detected, or if only Faspex is detected, it would skip this step:
|
|
7237
|
+
|
|
7238
|
+
```text
|
|
7098
7239
|
Multiple applications detected:
|
|
7099
7240
|
+---------+-------------------------------------------+-------------+
|
|
7100
7241
|
| product | url | version |
|
|
@@ -7103,12 +7244,28 @@ Multiple applications detected:
|
|
|
7103
7244
|
| server | ssh://faspex5.example.com:22 | OpenSSH_8.3 |
|
|
7104
7245
|
+---------+-------------------------------------------+-------------+
|
|
7105
7246
|
product> faspex5
|
|
7247
|
+
```
|
|
7248
|
+
|
|
7249
|
+
When Faspex is detected, it would ask for the path to a private key.
|
|
7250
|
+
If you don't have a private key, then leave that field blank, and it will generate one or use one that was previously generated.
|
|
7251
|
+
|
|
7252
|
+
```test
|
|
7106
7253
|
Using: Faspex at https://faspex5.example.com/aspera/faspex
|
|
7107
7254
|
Please provide the path to your private RSA key, or nothing to generate one:
|
|
7108
7255
|
option: key_path>
|
|
7109
7256
|
Using existing key:
|
|
7110
7257
|
/Users/someuser/.aspera/ascli/my_key
|
|
7258
|
+
```
|
|
7259
|
+
|
|
7260
|
+
Then, the email of the user shall be provided:
|
|
7261
|
+
|
|
7262
|
+
```text
|
|
7111
7263
|
option: username> someuser@example.com
|
|
7264
|
+
```
|
|
7265
|
+
|
|
7266
|
+
The administrator of Faspex shall provide you with a `client_id`, as specified below.
|
|
7267
|
+
|
|
7268
|
+
```text
|
|
7112
7269
|
Ask the ascli client ID and secret to your Administrator.
|
|
7113
7270
|
Admin should login to: https://faspex5.example.com/aspera/faspex
|
|
7114
7271
|
Navigate to: :: → Admin → Configurations → API clients
|
|
@@ -7132,10 +7289,16 @@ Saving configuration file.
|
|
|
7132
7289
|
```
|
|
7133
7290
|
|
|
7134
7291
|
> [!NOTE]
|
|
7135
|
-
> Paste the entire public key, including the BEGIN and END lines, into the user profile.
|
|
7292
|
+
> Paste the entire public key, including the BEGIN and END lines, into the user's profile.
|
|
7136
7293
|
|
|
7137
7294
|
For more information on the JWT method, refer to the section below.
|
|
7138
7295
|
|
|
7296
|
+
If you have generated a private key with the wizard and lost the public key, you can retrieve the public key like this:
|
|
7297
|
+
|
|
7298
|
+
```shell
|
|
7299
|
+
ascli faspex5 --show-config --show-secrets=yes --fields=private_key | ascli conf pubkey @stdin: --show-secrets=yes
|
|
7300
|
+
```
|
|
7301
|
+
|
|
7139
7302
|
### Faspex 5 JWT authentication
|
|
7140
7303
|
|
|
7141
7304
|
This is the general purpose and **recommended** method to use.
|
|
@@ -7156,15 +7319,15 @@ Activation is in two steps:
|
|
|
7156
7319
|
|
|
7157
7320
|
- The user will authenticate with a private key and set the public key in his Faspex 5 profile.
|
|
7158
7321
|
|
|
7159
|
-
> [!TIP]
|
|
7160
|
-
> If you don’t have a private key, see [Private Key](#private-key) to generate one.
|
|
7161
|
-
|
|
7162
7322
|
This operation is done by each user using the CLI.
|
|
7163
7323
|
|
|
7164
7324
|
- As a user, click the user logo located to the left of the app switcher in the top-right corner.
|
|
7165
7325
|
- Select `Account Settings`.
|
|
7166
7326
|
- At the bottom, in the `Public key in PEM format` field, paste the **public key** that corresponds to the private key assigned to your account.
|
|
7167
7327
|
|
|
7328
|
+
> [!TIP]
|
|
7329
|
+
> If you don’t have a private key, see [Private Key](#private-key) to generate one.
|
|
7330
|
+
|
|
7168
7331
|
Then use these options:
|
|
7169
7332
|
|
|
7170
7333
|
```text
|
|
@@ -7210,6 +7373,16 @@ The user will use the following options:
|
|
|
7210
7373
|
--redirect-uri=https://127.0.0.1:8888
|
|
7211
7374
|
```
|
|
7212
7375
|
|
|
7376
|
+
### Faspex 5 public link authentication
|
|
7377
|
+
|
|
7378
|
+
If all you have is a public link received by email or other, you can still do authorized actins with it.
|
|
7379
|
+
|
|
7380
|
+
For example, for a public link to post a package:
|
|
7381
|
+
|
|
7382
|
+
```shell
|
|
7383
|
+
ascli faspex5 packages send --url='https://faspex5.example.com/?context=_some_long_string_here_'
|
|
7384
|
+
```
|
|
7385
|
+
|
|
7213
7386
|
### Faspex 5 bootstrap authentication
|
|
7214
7387
|
|
|
7215
7388
|
For `boot` method: (will be removed in future)
|
|
@@ -7269,7 +7442,7 @@ admin smtp test my_email_external
|
|
|
7269
7442
|
admin workgroups list
|
|
7270
7443
|
bearer_token
|
|
7271
7444
|
gateway --pid-file=pid_f5_fxgw @json:'{"url":"https://localhost:12346/aspera/faspex"}' &
|
|
7272
|
-
health
|
|
7445
|
+
health --url=https://faspex5.example.com/path
|
|
7273
7446
|
invitation list
|
|
7274
7447
|
invitations create @json:'{"email_address":"aspera.user1+u@gmail.com"}'
|
|
7275
7448
|
packages browse f5_pack_id --query=@json:'{"recursive":true}'
|
|
@@ -7300,6 +7473,7 @@ shared list
|
|
|
7300
7473
|
shared_folders browse %name:my_shared_folder_name
|
|
7301
7474
|
shared_folders list
|
|
7302
7475
|
user account
|
|
7476
|
+
user account --query.expand=true
|
|
7303
7477
|
user profile modify @json:'{"preference":{"connect_disabled":false}}'
|
|
7304
7478
|
user profile show
|
|
7305
7479
|
version
|
|
@@ -7319,7 +7493,7 @@ By default, package operations (`send`, `receive`, `list`) are performed on the
|
|
|
7319
7493
|
To select another inbox, use option `box` with one of the following values:
|
|
7320
7494
|
|
|
7321
7495
|
| `box` | Comment |
|
|
7322
|
-
|
|
7496
|
+
|---------------------|----------------------------------------------------------------------|
|
|
7323
7497
|
| `inbox` | Default |
|
|
7324
7498
|
| `inbox_history` | |
|
|
7325
7499
|
| `inbox_all` | |
|
|
@@ -7329,8 +7503,8 @@ To select another inbox, use option `box` with one of the following values:
|
|
|
7329
7503
|
| `pending` | |
|
|
7330
7504
|
| `pending_history` | |
|
|
7331
7505
|
| `all` | |
|
|
7332
|
-
| `ALL` |
|
|
7333
|
-
| Open value |
|
|
7506
|
+
| `ALL` | All inboxes of all users. **admin only**. |
|
|
7507
|
+
| Open value | If `group_type` is `shared_inboxes`: name of a shared inbox (default)<br/>If `group_type` is `workgroups`: workgroup name |
|
|
7334
7508
|
|
|
7335
7509
|
> [!NOTE]
|
|
7336
7510
|
> In case the name of the `box` is an open value, use option `group_type` set to either `shared_inboxes` or `workgroups`.
|
|
@@ -7403,14 +7577,14 @@ Option `box` can be used to list packages from a specific box (see [Inbox Select
|
|
|
7403
7577
|
|
|
7404
7578
|
Option `query` can be used to filter the list of packages, based on native API parameters, directly sent to [Faspex 5 API `GET /packages`](https://developer.ibm.com/apis/catalog/aspera--ibm-aspera-faspex-5-0-api/api/API--aspera--ibm-aspera-faspex-api#getAllPackages).
|
|
7405
7579
|
|
|
7406
|
-
| Parameter | Type
|
|
7407
|
-
|
|
7408
|
-
| `offset
|
|
7409
|
-
| `limit`
|
|
7410
|
-
| `q`
|
|
7411
|
-
| ...
|
|
7412
|
-
| `max`
|
|
7413
|
-
| `pmax`
|
|
7580
|
+
| Parameter | Type | Description |
|
|
7581
|
+
|---------|---------|-----------------------------------------------------------------------|
|
|
7582
|
+
| `offset`| Native | Managed by `ascli`: Offset of first package. Default: 0 |
|
|
7583
|
+
| `limit` | Native | Managed by `ascli`: # of packages per API call. Default: 100 |
|
|
7584
|
+
| `q` | Native | General search string<br/>case-insensitive, matches if value is contained in several fields |
|
|
7585
|
+
| ... | Native | Other native parameters are supported (Refer to API documentation) |
|
|
7586
|
+
| `max` | Special | Maximum number of items to retrieve (stop pages when the maximum is passed) |
|
|
7587
|
+
| `pmax` | Special | Maximum number of pages to request (stop pages when the maximum is passed) |
|
|
7414
7588
|
|
|
7415
7589
|
A **Command Parameter** in last position, of type `Proc`, can be used to filter the list of packages.
|
|
7416
7590
|
This advantage of this method is that the expression can be any test, even complex, as it is Ruby code.
|
|
@@ -7438,15 +7612,15 @@ By default, paging is used.
|
|
|
7438
7612
|
|
|
7439
7613
|
Option `query` is available with parameters supported by the API and `ascli` :
|
|
7440
7614
|
|
|
7441
|
-
| Parameter
|
|
7442
|
-
|
|
7443
|
-
| `paging`
|
|
7444
|
-
| `recursive`
|
|
7445
|
-
| `max`
|
|
7446
|
-
| `filter`
|
|
7447
|
-
| `offset`
|
|
7448
|
-
| `limit`
|
|
7449
|
-
| `per_page
|
|
7615
|
+
| Parameter | Evaluation | Default | Description |
|
|
7616
|
+
|-----------|--------------|-------------------| ----------------------------------------|
|
|
7617
|
+
| `paging` | `ascli` | `true` | Use paging API. |
|
|
7618
|
+
| `recursive`| `ascli` | `false` | List inside folders. |
|
|
7619
|
+
| `max` | `ascli` | - | Maximum number of items. |
|
|
7620
|
+
| `filter` | API | `{"basenames":[]}`| Refer to API doc. |
|
|
7621
|
+
| `offset` | API (legacy) | `0` | Index of first item. |
|
|
7622
|
+
| `limit` | API (legacy) | `500` | Number of items in one API call result. |
|
|
7623
|
+
| `per_page`| API (paging) | `500` | Number of items in one API call result. |
|
|
7450
7624
|
|
|
7451
7625
|
### Faspex 5: Content of a received Package
|
|
7452
7626
|
|
|
@@ -7743,8 +7917,8 @@ A user can receive a package because the recipient is:
|
|
|
7743
7917
|
|
|
7744
7918
|
As inboxes may be large, it is possible to use the following query parameters:
|
|
7745
7919
|
|
|
7746
|
-
| Parameter | Evaluation | Description
|
|
7747
|
-
|
|
7920
|
+
| Parameter | Evaluation | Description |
|
|
7921
|
+
|--------------|------------|----------------------------------------------------------------------|
|
|
7748
7922
|
| `count` | API | Number of items in one API call result (default=0, equivalent to 10) |
|
|
7749
7923
|
| `page` | API | ID of page in call (default=0) |
|
|
7750
7924
|
| `startIndex` | API | Index of item to start (default=0) |
|
|
@@ -7931,17 +8105,17 @@ The payload for creation is the same as for the API, parameters are provided as
|
|
|
7931
8105
|
|
|
7932
8106
|
Example: Create a Node: Attributes are like API:
|
|
7933
8107
|
|
|
7934
|
-
| Attribute
|
|
7935
|
-
|
|
7936
|
-
| `name`
|
|
7937
|
-
| `host`
|
|
7938
|
-
| `api_username` | Yes
|
|
7939
|
-
| `api_password` | Yes
|
|
7940
|
-
| `port`
|
|
7941
|
-
| `ssl`
|
|
7942
|
-
| `verify_ssl` |
|
|
7943
|
-
| `timeout` |
|
|
7944
|
-
| `open_timeout` |
|
|
8108
|
+
| Attribute | Required | Default |
|
|
8109
|
+
|--------------|----------|---------|
|
|
8110
|
+
| `name` | Yes | |
|
|
8111
|
+
| `host` | Yes | |
|
|
8112
|
+
| `api_username` | Yes | |
|
|
8113
|
+
| `api_password` | Yes | |
|
|
8114
|
+
| `port` | | `9092` |
|
|
8115
|
+
| `ssl` | | `true` |
|
|
8116
|
+
| `verify_ssl` | | `false` |
|
|
8117
|
+
| `timeout` | | `30s` |
|
|
8118
|
+
| `open_timeout` | | `10s` |
|
|
7945
8119
|
|
|
7946
8120
|
Example: Create a share and add a user to it.
|
|
7947
8121
|
|
|
@@ -8051,12 +8225,12 @@ If you don't have credentials but have access to the IBM Cloud console, then use
|
|
|
8051
8225
|
|
|
8052
8226
|
If you have those parameters already, then following options shall be provided:
|
|
8053
8227
|
|
|
8054
|
-
| Option | Description
|
|
8055
|
-
|
|
8056
|
-
| `bucket` | Bucket name
|
|
8228
|
+
| Option | Description |
|
|
8229
|
+
|------------|---------------------------------------------------|
|
|
8230
|
+
| `bucket` | Bucket name |
|
|
8057
8231
|
| `endpoint` | Storage endpoint URL<br/>e.g. `https://s3.hkg02.cloud-object-storage.appdomain.cloud` |
|
|
8058
|
-
| `apikey` | API Key
|
|
8059
|
-
| `crn` | Resource instance ID
|
|
8232
|
+
| `apikey` | API Key |
|
|
8233
|
+
| `crn` | Resource instance ID |
|
|
8060
8234
|
|
|
8061
8235
|
For example, let us create a default configuration:
|
|
8062
8236
|
|
|
@@ -8120,7 +8294,7 @@ The field `apikey` is for option `apikey`
|
|
|
8120
8294
|
The required options for this method are:
|
|
8121
8295
|
|
|
8122
8296
|
| Option | Description |
|
|
8123
|
-
|
|
8297
|
+
|-----------------------|------------------------------------------------|
|
|
8124
8298
|
| `bucket` | Bucket name |
|
|
8125
8299
|
| `region` | Bucket region<br/>e.g. `eu-de` |
|
|
8126
8300
|
| `service_credentials` | JSON information saved from IBM Cloud console. |
|
|
@@ -8561,8 +8735,8 @@ An interface for the `async` utility is provided in the following plugins:
|
|
|
8561
8735
|
The `sync` command, available in above plugins, performs the following actions:
|
|
8562
8736
|
|
|
8563
8737
|
- Start a local Sync session by executing the `async` command with the appropriate parameters.
|
|
8564
|
-
- Get local Sync session information using the `asyncadmin` command, if available.
|
|
8565
8738
|
- Get local Sync session information accessing directly the Async snap database.
|
|
8739
|
+
- Get local Sync session information using the `asyncadmin` command, if available.
|
|
8566
8740
|
|
|
8567
8741
|
One advantage of using `ascli` over the `async` command line is the possibility to use a configuration file, using standard options of `ascli`.
|
|
8568
8742
|
Moreover, `ascli` supports sync with application requiring token-based authorization.
|
|
@@ -8575,7 +8749,7 @@ Some `sync` parameters are filled by the related plugin using transfer spec para
|
|
|
8575
8749
|
|
|
8576
8750
|
### Starting a sync session
|
|
8577
8751
|
|
|
8578
|
-
To start a sync session, use one of the three sync directions followed by a folder path (remote path for `pull`, local path
|
|
8752
|
+
To start a sync session, use one of the three sync directions followed by a folder path (remote path for `pull`, local path otherwise).
|
|
8579
8753
|
The path on the other side is specified using option: `to_folder`.
|
|
8580
8754
|
|
|
8581
8755
|
| Direction<br/>(parameter) | Path<br/>(parameter) | `to_folder`<br/>(option) |
|
|
@@ -8597,6 +8771,137 @@ Documentation on Async Node API can be found on [IBM Developer Portal](https://d
|
|
|
8597
8771
|
|
|
8598
8772
|
Parameters `local.path` and `remote.path` are not allowed since they are provided on command line.
|
|
8599
8773
|
|
|
8774
|
+
| Field | Type | Description |
|
|
8775
|
+
| ---------------------------------------- | ------- | -------------------------------------------------------------------------------- |
|
|
8776
|
+
| 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={boolean}`) |
|
|
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. |
|
|
8781
|
+
| 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
|
+
| 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. |
|
|
8784
|
+
| db_cache_size | integer | Specify DB cache size. |
|
|
8785
|
+
| db_journal_off | boolean | Turn off DB journal. |
|
|
8786
|
+
| 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` |
|
|
8791
|
+
| exclude_dirs_older_than | object | Don't scan directories with a recursive modified time older than absolute or async start time - relative_seconds |
|
|
8792
|
+
| exclude_dirs_older_than.absolute | string | UTC timestamp. Empty value for disabled. |
|
|
8793
|
+
| exclude_dirs_older_than.relative_seconds | integer | Relative to async start time. `-1` for disabled. |
|
|
8794
|
+
| 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
|
+
| ignore_delete | boolean | Do not copy removals to the peer. |
|
|
8796
|
+
| ignore_mode | boolean | Source files that have had their mode changed after the initial. transfer will not update the destination file mode. |
|
|
8797
|
+
| 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
|
+
| local | object | |
|
|
8799
|
+
| 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={boolean}`) |
|
|
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 |
|
|
8814
|
+
| local_stat_cache_size | integer | Set stat cache size on the local host. 0 for disabled. |
|
|
8815
|
+
| log | object | |
|
|
8816
|
+
| log.level | | Use the specified log level.<br/>Allowed values: `log`, `dbg1`, `dbg2` |
|
|
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. |
|
|
8819
|
+
| manifest_path | string | A directory path where ascp will create manifest TEXT files (passed to ascp as --file-manifest-path) |
|
|
8820
|
+
| 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={enum}`) |
|
|
8822
|
+
| 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. |
|
|
8827
|
+
| 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, otherwise always.<br/>Allowed values: `always`, `older`, `conflict` |
|
|
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. |
|
|
8839
|
+
| remote | object | |
|
|
8840
|
+
| remote.connect_mode | | Define how to connect to the remote.<br/>Allowed values: `ssh`, `ws` |
|
|
8841
|
+
| 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. |
|
|
8848
|
+
| remote.proxy.host | string | Use the specified host name or address of the proxy. |
|
|
8849
|
+
| remote.proxy.pass | string | Authenticate to the proxy with the specified password. |
|
|
8850
|
+
| remote.proxy.port | integer | Use the specified port, default is 9091 for dnat, 9092. for dnats |
|
|
8851
|
+
| remote.proxy.protocol | | The protocol to be used.<br/>Allowed values: `none`, `dnat`, `dnats` |
|
|
8852
|
+
| remote.proxy.user | string | Authenticate to the proxy with the specified username. |
|
|
8853
|
+
| remote.token | string | Token string passed to server's authentication service. |
|
|
8854
|
+
| 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. |
|
|
8856
|
+
| 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. |
|
|
8869
|
+
| 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 |
|
|
8872
|
+
| 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
|
+
| 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 |
|
|
8885
|
+
| transport | object | |
|
|
8886
|
+
| transport.cipher | | Specify encryption algorithm for file data.<br/>Allowed values: `none`, `aes128`, `aes192`, `aes256`, `aes128cfb`, `aes192cfb`, `aes256cfb`, `aes128gcm`, `aes192gcm`, `aes256gcm`<br/>(`--cipher={enum}`) |
|
|
8887
|
+
| transport.compression | | Compress a file before transfer using the specified MODE.<br/>Allowed values: `none`, `zlib`<br/>(`--compression={enum}`) |
|
|
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 | | Defines how `ascp` will manage the bandwidth.<br/>Allowed values: `fair`, `fixed`, `high`, `low` |
|
|
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`. |
|
|
8897
|
+
| watchd | object | When connection is configured, `asperawatchd` is used to detect the changes on the source directory.<br/>(special:`--watchd={object}`) |
|
|
8898
|
+
| watchd.datastore | | Specify the type of datastore, `none` for disabled.<br/>Allowed values: `none`, `redis`, `scalekv` |
|
|
8899
|
+
| watchd.domain | string | Specify the domain. Default is the current username. |
|
|
8900
|
+
| watchd.host | string | Use the specified host name or address to connect to the datastore. |
|
|
8901
|
+
| 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. |
|
|
8904
|
+
|
|
8600
8905
|
#### `sync_info`: `args` format
|
|
8601
8906
|
|
|
8602
8907
|
This is the **legacy** syntax.
|
|
@@ -8608,17 +8913,24 @@ This is the mode selection if there are either keys `sessions` or `instance` in
|
|
|
8608
8913
|
|
|
8609
8914
|
Parameters `local_dir` and `remote_dir` are not allowed since they are provided on command line.
|
|
8610
8915
|
|
|
8611
|
-
### Sync management and monitoring
|
|
8916
|
+
### Sync management and monitoring: `admin`
|
|
8612
8917
|
|
|
8613
|
-
The `admin` command provides several sub commands
|
|
8918
|
+
The `admin` command provides several sub commands that access directly the Async snap database (`snap.db`).
|
|
8919
|
+
(With the exception of `status` which uses the utility `asyncadmin`, available only on server products.)
|
|
8614
8920
|
|
|
8615
|
-
|
|
8616
|
-
- Other commands access directly the Async snap database (`snap.db`).
|
|
8921
|
+
To use the `admin` command, the gem `sqlite3` shall be installed:
|
|
8617
8922
|
|
|
8618
|
-
|
|
8619
|
-
|
|
8620
|
-
|
|
8621
|
-
|
|
8923
|
+
```shell
|
|
8924
|
+
gem install sqlite3
|
|
8925
|
+
```
|
|
8926
|
+
|
|
8927
|
+
In order to use the `admin` commands, the user must provide the path to the database folder:
|
|
8928
|
+
|
|
8929
|
+
- i.e. a folder containing a subfolder named `.private-asp`.
|
|
8930
|
+
- By default it is the local synchronized folder.
|
|
8931
|
+
- If an alternate folder is specified for the database, then specify it.
|
|
8932
|
+
- If this folder contains only one session information (i.e. a folder containing the `snap.db` file), it will be used by default.
|
|
8933
|
+
- Else, the user must specify a session name in the optional `Hash`, in the `name` key.
|
|
8622
8934
|
|
|
8623
8935
|
## Hot folder
|
|
8624
8936
|
|
|
@@ -8757,17 +9069,17 @@ This is done with option `smtp`.
|
|
|
8757
9069
|
The `smtp` option is a `Hash` (extended value) with the following fields:
|
|
8758
9070
|
|
|
8759
9071
|
<!-- markdownlint-disable MD034 -->
|
|
8760
|
-
| Field | Default
|
|
8761
|
-
|
|
8762
|
-
| `server` | -
|
|
8763
|
-
| `tls` | `true`
|
|
8764
|
-
| `ssl` | `false`
|
|
8765
|
-
| `port` | `587
|
|
8766
|
-
| `domain` | _domain
|
|
8767
|
-
| `username` | -
|
|
8768
|
-
| `password` | -
|
|
8769
|
-
| `from_email` | username if defined
|
|
8770
|
-
| `from_name` | same as email
|
|
9072
|
+
| Field | Default | Example | Description |
|
|
9073
|
+
|--------------|--------------------|------------------|----------------------------------|
|
|
9074
|
+
| `server` | - | `smtp.gmail.com` | SMTP server address |
|
|
9075
|
+
| `tls` | `true` | `true` | Enable `STARTTLS` (port 587) |
|
|
9076
|
+
| `ssl` | `false` | `false` | Enable `TLS` (port 465) |
|
|
9077
|
+
| `port` | `587`<br/>`465`<br/>`25` | `587` | Port for service |
|
|
9078
|
+
| `domain` | _domain of_ `server` | gmail.com | Email domain of user |
|
|
9079
|
+
| `username` | - | john@example.com | User to authenticate on SMTP server<br/>Leave empty for open auth. |
|
|
9080
|
+
| `password` | - | my_password_here | Password for above username |
|
|
9081
|
+
| `from_email` | username if defined|johnny@example.com| Address used if receiver replies |
|
|
9082
|
+
| `from_name` | same as email | John Wayne | Display name of sender |
|
|
8771
9083
|
<!-- markdownlint-enable MD034 -->
|
|
8772
9084
|
|
|
8773
9085
|
### Example of configuration
|
|
@@ -8873,22 +9185,23 @@ During execution, it generates all low level events, one per line, in JSON forma
|
|
|
8873
9185
|
|
|
8874
9186
|
Top level parameters supported by `asession`:
|
|
8875
9187
|
|
|
8876
|
-
| Parameter
|
|
8877
|
-
|
|
8878
|
-
| `spec`
|
|
8879
|
-
| `agent`
|
|
8880
|
-
| `loglevel`
|
|
8881
|
-
| `file_list_folder` | The folder used to store (for garbage collection) generated file lists.<br/>
|
|
9188
|
+
| Parameter | Description |
|
|
9189
|
+
|--------------------|------------------------------------------------------------------------|
|
|
9190
|
+
| `spec` | The [**transfer-spec**](#transfer-specification) |
|
|
9191
|
+
| `agent` | Same parameters as transfer-info for agent `direct` |
|
|
9192
|
+
| `loglevel` | Log level of `asession` |
|
|
9193
|
+
| `file_list_folder` | The folder used to store (for garbage collection) generated file lists.<br/>Default: `[system tmp folder]/[username]_asession_filelists` |
|
|
8882
9194
|
|
|
8883
9195
|
### Comparison of interfaces
|
|
8884
9196
|
|
|
8885
|
-
|
|
|
8886
|
-
|
|
8887
|
-
|
|
|
8888
|
-
|
|
|
8889
|
-
|
|
|
8890
|
-
|
|
|
8891
|
-
|
|
|
9197
|
+
| Feature/Tool | Transfer Daemon | FASPManager | `ascp` | `asession` |
|
|
9198
|
+
|------------|-------------|-------------|-------------|-------------|
|
|
9199
|
+
| status | Supported | Deprecated | Supported | Deprecated |
|
|
9200
|
+
| language integration | Many | C/C++<br/>C#/.net<br/>Go<br/>Python<br/>java<br/> | Any | Any |
|
|
9201
|
+
| required additional components to `ascp` | Daemon | Library<br/>(+headers) | - | Ruby<br/>Aspera gem |
|
|
9202
|
+
| startup | Daemon | API | Command line arguments | JSON on stdin<br/>(standard APIs:<br/>JSON.generate<br/>Process.spawn) |
|
|
9203
|
+
| events | Poll | Callback | Possibility to open management port<br/>and proprietary text syntax | JSON on stdout |
|
|
9204
|
+
| platforms | Like `ascp` and `transferd` | Like `ascp` and lib (if compiled) | Any with `ascp` | Any with Ruby and `ascp` |
|
|
8892
9205
|
|
|
8893
9206
|
### Simple session
|
|
8894
9207
|
|
|
@@ -9024,24 +9337,20 @@ This also requires Ruby header files.
|
|
|
9024
9337
|
If Ruby was installed as a Linux Packages, then also install Ruby development package:
|
|
9025
9338
|
`ruby-dev` or `ruby-devel`, depending on distribution.
|
|
9026
9339
|
|
|
9027
|
-
###
|
|
9028
|
-
|
|
9029
|
-
ED25519 keys are deactivated since `ascli` version 0.9.24 as it requires additional gems that require native compilation and thus caused problems.
|
|
9030
|
-
This type of key will just be ignored.
|
|
9340
|
+
### Private key type: `ed25519` not supported by default
|
|
9031
9341
|
|
|
9032
|
-
|
|
9342
|
+
There are a few aspects concerning ED25519 keys.
|
|
9033
9343
|
|
|
9034
|
-
|
|
9344
|
+
By default, the `aspera-cli` gem does not depend on the `ed25519` gem because it requires compilation of native code which can cause problems and prevent the installation of `ascli`, especially when using JRuby.
|
|
9345
|
+
Refer to [this](https://github.com/net-ssh/net-ssh/issues/565).
|
|
9346
|
+
If you want to use `ed25519` keys, then install the required gems:
|
|
9035
9347
|
|
|
9036
|
-
```
|
|
9037
|
-
|
|
9348
|
+
```shell
|
|
9349
|
+
gem install ed25519 bcrypt_pbkdf
|
|
9038
9350
|
```
|
|
9039
9351
|
|
|
9040
|
-
|
|
9041
|
-
|
|
9042
|
-
|
|
9043
|
-
In addition, host keys of type: `ecdsa-sha2` and `ecdh-sha2` are also deactivated by default.
|
|
9044
|
-
To re-activate, set env var `ASCLI_ENABLE_ECDSHA2` to `true`.
|
|
9352
|
+
In addition, if **JRuby** is used, host keys of type: `ecdsa-sha2` and `ecdh-sha2` are also deactivated by default.
|
|
9353
|
+
To activate, set env var `ASCLI_ENABLE_ECDSHA2` to `true`.
|
|
9045
9354
|
|
|
9046
9355
|
### JRuby: `net-ssh`: Unsupported algorithm
|
|
9047
9356
|
|
|
@@ -9068,11 +9377,11 @@ To deactivate this error, enable option `IGNORE_UNEXPECTED_EOF` for `ssl_options
|
|
|
9068
9377
|
--http-options=@json:'{"ssl_options":["IGNORE_UNEXPECTED_EOF"]}'
|
|
9069
9378
|
```
|
|
9070
9379
|
|
|
9071
|
-
### Error: `ascp`:
|
|
9380
|
+
### Error: `ascp`: `/lib64/libc.so.6`: version `GLIBC_2.28` not found
|
|
9072
9381
|
|
|
9073
9382
|
This happens on Linux x86 if you try to install `transferd` on a Linux version too old to support a newer `ascp` executable.
|
|
9074
9383
|
|
|
9075
|
-
Workaround: Install an older version
|
|
9384
|
+
Workaround: Install an older version of `transferd`:
|
|
9076
9385
|
|
|
9077
9386
|
```shell
|
|
9078
9387
|
ascli config transferd install 1.1.2
|