aspera-cli 4.20.0 → 4.21.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 +41 -3
- data/CONTRIBUTING.md +69 -142
- data/README.md +687 -461
- data/bin/ascli +5 -14
- data/bin/asession +3 -5
- data/examples/get_proto_file.rb +4 -3
- data/examples/proxy.pac +20 -20
- data/lib/aspera/agent/base.rb +2 -0
- data/lib/aspera/agent/connect.rb +20 -2
- data/lib/aspera/agent/{alpha.rb → desktop.rb} +12 -18
- data/lib/aspera/agent/direct.rb +30 -31
- data/lib/aspera/agent/node.rb +1 -11
- data/lib/aspera/agent/{trsdk.rb → transferd.rb} +37 -51
- data/lib/aspera/api/alee.rb +1 -1
- data/lib/aspera/api/aoc.rb +13 -8
- data/lib/aspera/api/cos_node.rb +1 -1
- data/lib/aspera/api/node.rb +49 -32
- data/lib/aspera/ascp/installation.rb +98 -77
- data/lib/aspera/ascp/management.rb +27 -6
- data/lib/aspera/cli/extended_value.rb +9 -3
- data/lib/aspera/cli/formatter.rb +155 -154
- data/lib/aspera/cli/info.rb +2 -1
- data/lib/aspera/cli/main.rb +12 -0
- data/lib/aspera/cli/manager.rb +4 -4
- data/lib/aspera/cli/plugin.rb +2 -2
- data/lib/aspera/cli/plugins/aoc.rb +134 -73
- data/lib/aspera/cli/plugins/config.rb +114 -83
- data/lib/aspera/cli/plugins/cos.rb +1 -0
- data/lib/aspera/cli/plugins/faspex.rb +4 -2
- data/lib/aspera/cli/plugins/faspex5.rb +29 -14
- data/lib/aspera/cli/plugins/node.rb +51 -41
- data/lib/aspera/cli/transfer_progress.rb +2 -0
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/command_line_builder.rb +1 -1
- data/lib/aspera/coverage.rb +5 -3
- data/lib/aspera/environment.rb +59 -16
- data/lib/aspera/faspex_postproc.rb +3 -5
- data/lib/aspera/hash_ext.rb +2 -12
- data/lib/aspera/node_simulator.rb +230 -112
- data/lib/aspera/oauth/base.rb +40 -48
- data/lib/aspera/oauth/factory.rb +41 -2
- data/lib/aspera/oauth/jwt.rb +4 -1
- data/lib/aspera/persistency_action_once.rb +1 -1
- data/lib/aspera/persistency_folder.rb +20 -2
- data/lib/aspera/preview/generator.rb +13 -10
- data/lib/aspera/preview/options.rb +2 -2
- data/lib/aspera/preview/terminal.rb +1 -1
- data/lib/aspera/preview/utils.rb +11 -6
- data/lib/aspera/products/connect.rb +82 -0
- data/lib/aspera/products/desktop.rb +30 -0
- data/lib/aspera/products/other.rb +82 -0
- data/lib/aspera/products/transferd.rb +61 -0
- data/lib/aspera/rest.rb +22 -17
- data/lib/aspera/secret_hider.rb +9 -2
- data/lib/aspera/ssh.rb +31 -24
- data/lib/aspera/temp_file_manager.rb +5 -4
- data/lib/aspera/transfer/parameters.rb +2 -1
- data/lib/aspera/transfer/spec.yaml +22 -20
- data/lib/aspera/transfer/sync.rb +1 -5
- data/lib/aspera/transfer/uri.rb +2 -2
- data/lib/aspera/uri_reader.rb +18 -1
- data/lib/transferd_pb.rb +86 -0
- data/lib/transferd_services_pb.rb +84 -0
- data.tar.gz.sig +0 -0
- metadata +13 -166
- metadata.gz.sig +0 -0
- data/examples/build_exec +0 -74
- data/examples/build_exec_rubyc +0 -40
- data/lib/aspera/ascp/products.rb +0 -168
- data/lib/transfer_pb.rb +0 -84
- data/lib/transfer_services_pb.rb +0 -82
data/README.md
CHANGED
@@ -5,7 +5,7 @@ Do not edit this README.md, edit docs/README.erb.md, for details, read docs/READ
|
|
5
5
|
markdownlint-disable MD033 MD003 MD053
|
6
6
|
cspell:ignore Serban Antipolis
|
7
7
|
PANDOC_META_BEGIN
|
8
|
-
subtitle: "ascli 4.
|
8
|
+
subtitle: "ascli 4.22.0.pre"
|
9
9
|
PANDOC_META_END
|
10
10
|
-->
|
11
11
|
|
@@ -15,7 +15,7 @@ PANDOC_META_END
|
|
15
15
|
|
16
16
|
## Introduction
|
17
17
|
|
18
|
-
Version : 4.
|
18
|
+
Version : 4.22.0.pre
|
19
19
|
|
20
20
|
Laurent/2016-2025
|
21
21
|
|
@@ -27,9 +27,9 @@ Ruby Gem: [https://rubygems.org/gems/aspera-cli](https://rubygems.org/gems/asper
|
|
27
27
|
|
28
28
|
Ruby Doc: [https://www.rubydoc.info/gems/aspera-cli](https://www.rubydoc.info/gems/aspera-cli)
|
29
29
|
|
30
|
-
Minimum required Ruby version: >=
|
30
|
+
Minimum required Ruby version: >= 3.1.
|
31
31
|
|
32
|
-
> **Deprecation notice**: the minimum Ruby version will be 3.
|
32
|
+
> **Deprecation notice**: the minimum Ruby version will be 3.2 in a future version.
|
33
33
|
|
34
34
|
[Aspera APIs on IBM developer](https://developer.ibm.com/?size=30&q=aspera&DWContentType[0]=APIs&sort=title_asc)
|
35
35
|
[Link 2](https://developer.ibm.com/apis/catalog/?search=aspera)
|
@@ -112,7 +112,7 @@ Once the gem is installed, `ascli` shall be accessible:
|
|
112
112
|
|
113
113
|
```console
|
114
114
|
$ ascli --version
|
115
|
-
4.
|
115
|
+
4.22.0.pre
|
116
116
|
```
|
117
117
|
|
118
118
|
### First use
|
@@ -132,14 +132,14 @@ ascli server browse /
|
|
132
132
|
```
|
133
133
|
|
134
134
|
```output
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
135
|
+
╭────────────┬──────┬───────────┬───────┬───────────────────────────┬───────────────────────╮
|
136
|
+
│ zmode │ zuid │ zgid │ size │ mtime │ name │
|
137
|
+
╞════════════╪══════╪═══════════╪═══════╪═══════════════════════════╪═══════════════════════╡
|
138
|
+
│ dr-xr-xr-x │ xfer │ demousers │ 4096 │ 2014-11-05 16:01:56 +0100 │ aspera-test-dir-large │
|
139
|
+
│ drwxrwxr-x │ xfer │ demousers │ 94208 │ 2025-03-31 11:27:33 +0200 │ Upload │
|
140
|
+
│ dr-xr-xr-x │ xfer │ demousers │ 4096 │ 2014-11-05 16:01:56 +0100 │ aspera-test-dir-small │
|
141
|
+
│ dr-xr-xr-x │ xfer │ demousers │ 4096 │ 2014-11-05 16:01:56 +0100 │ aspera-test-dir-tiny │
|
142
|
+
╰────────────┴──────┴───────────┴───────┴───────────────────────────┴───────────────────────╯
|
143
143
|
```
|
144
144
|
|
145
145
|
If you want to use `ascli` with another server, and in order to make further calls more convenient, it is advised to define a [Option Preset](#option-preset) for the server's authentication options.
|
@@ -173,17 +173,16 @@ ascli server browse /aspera-test-dir-large
|
|
173
173
|
```
|
174
174
|
|
175
175
|
```output
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
+------------+-----------+-----------+--------------+---------------------------+-------+
|
176
|
+
╭────────────┬──────┬───────────┬─────────────┬───────────────────────────┬───────╮
|
177
|
+
│ zmode │ zuid │ zgid │ size │ mtime │ name │
|
178
|
+
╞════════════╪══════╪═══════════╪═════════════╪═══════════════════════════╪═══════╡
|
179
|
+
│ -rw-r--r-- │ xfer │ demousers │ 5368709120 │ 2014-11-05 16:01:56 +0100 │ 5GB │
|
180
|
+
│ -rw-r--r-- │ xfer │ demousers │ 524288000 │ 2014-11-05 16:01:56 +0100 │ 500MB │
|
181
|
+
│ -rw-r--r-- │ xfer │ demousers │ 209715200 │ 2014-11-05 16:01:56 +0100 │ 200MB │
|
182
|
+
│ -rw-r--r-- │ xfer │ demousers │ 1048576000 │ 2014-11-05 16:01:56 +0100 │ 1GB │
|
183
|
+
│ -rw-r--r-- │ xfer │ demousers │ 104857600 │ 2014-11-05 16:01:56 +0100 │ 100MB │
|
184
|
+
│ -rw-r--r-- │ xfer │ demousers │ 10737418240 │ 2014-11-05 16:01:56 +0100 │ 10GB │
|
185
|
+
╰────────────┴──────┴───────────┴─────────────┴───────────────────────────┴───────╯
|
187
186
|
```
|
188
187
|
|
189
188
|
```bash
|
@@ -211,94 +210,61 @@ The direct installation is recommended and consists in installing:
|
|
211
210
|
- [aspera-cli](#ruby-gem-aspera-cli) <!-- markdownlint-disable-line -->
|
212
211
|
- [Aspera SDK (`ascp`)](#fasp-protocol-ascp)
|
213
212
|
|
214
|
-
Ruby version: >=
|
213
|
+
Ruby version: >= 3.1.
|
215
214
|
|
216
|
-
> **Deprecation notice**: the minimum Ruby version will be 3.
|
215
|
+
> **Deprecation notice**: the minimum Ruby version will be 3.2 in a future version.
|
217
216
|
|
218
217
|
The following sections provide information on the various installation methods.
|
219
218
|
|
220
219
|
An internet connection is required for the installation.
|
221
220
|
If you don't have internet for the installation, refer to section [Installation without internet access](#installation-in-air-gapped-environment).
|
222
221
|
|
223
|
-
A package with pre-installed Ruby, gem and ascp may also be provided.
|
222
|
+
A package with pre-installed Ruby, gem and `ascp` may also be provided.
|
224
223
|
|
225
|
-
###
|
226
|
-
|
227
|
-
Use this method to install on the native host (e.g. your Windows, macOS or Linux system).
|
228
|
-
|
229
|
-
A Ruby interpreter is required to run `ascli`.
|
230
|
-
|
231
|
-
Required Ruby version: >= 2.6.
|
232
|
-
|
233
|
-
> **Deprecation notice**: the minimum Ruby version will be 3.0 in a future version.
|
234
|
-
|
235
|
-
**Ruby can be installed using any method** : rpm, yum, dnf, rvm, brew, Windows installer, ... .
|
224
|
+
### `ascli` executable
|
236
225
|
|
237
|
-
|
238
|
-
|
239
|
-
- [Download Ruby](https://www.ruby-lang.org/en/downloads/)
|
240
|
-
- [Installation Guide](https://www.ruby-lang.org/en/documentation/installation/)
|
226
|
+
It is planned to provide `ascli` as a single platform-dependent executable.
|
227
|
+
[Releases can be found here](https://ibm.biz/aspera-cli-exe).
|
241
228
|
|
242
|
-
|
229
|
+
**Note:** This is an Alpha feature. On Linux, the executable requires a minimum GLIBC version.
|
243
230
|
|
244
|
-
|
231
|
+
On Linux, check your GLIBC version with `ldd`:
|
245
232
|
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
Execute the shell/curl command.
|
250
|
-
As regular user, it installs in the user's home: `~/.rvm` .
|
251
|
-
|
252
|
-
```bash
|
253
|
-
\curl -sSL https://get.rvm.io | bash -s stable
|
233
|
+
```console
|
234
|
+
$ ldd --version | head -n1
|
235
|
+
ldd (GNU libc) 2.34
|
254
236
|
```
|
255
237
|
|
256
|
-
|
238
|
+
Check an executable's min required version:
|
257
239
|
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
source ~/.rvm/scripts/rvm
|
240
|
+
```console
|
241
|
+
$ objdump -p /bin/bash | sed -n 's/^.*GLIBC_//p' | sort -V | tail -n1
|
242
|
+
2.34
|
262
243
|
```
|
263
244
|
|
264
|
-
|
265
|
-
|
266
|
-
```bash
|
267
|
-
rvm list --remote
|
268
|
-
```
|
245
|
+
> **Note:** if `objdump` is not available use `strings` or `grep -z 'GLIBC_'|tr \\0 \\n`
|
269
246
|
|
270
|
-
|
247
|
+
The `ascli` executable still requires installation of `ascp`: Refer to [Install `ascp`](#installation-of-ascp-through-transferd).
|
271
248
|
|
272
|
-
|
273
|
-
rvm install 3.2.2
|
274
|
-
```
|
249
|
+
### Ruby
|
275
250
|
|
276
|
-
Ruby is
|
251
|
+
A Ruby interpreter is required to run `ascli`.
|
277
252
|
|
278
|
-
|
279
|
-
It then installs by default in `/usr/local/rvm` for all users and creates `/etc/profile.d/rvm.sh`.
|
280
|
-
One can install in another location with:
|
253
|
+
Required Ruby version: >= 3.1.
|
281
254
|
|
282
|
-
|
283
|
-
curl -sSL https://get.rvm.io | bash -s -- --path /usr/local
|
284
|
-
```
|
255
|
+
> **Deprecation notice**: the minimum Ruby version will be 3.2 in a future version.
|
285
256
|
|
286
|
-
|
287
|
-
If so, one can rename the environment script so that it is not loaded by default:
|
257
|
+
**Ruby can be installed using any method** : rpm, yum, dnf, rvm, brew, Windows installer, ... .
|
288
258
|
|
289
|
-
|
290
|
-
mv /etc/profile.d/rvm.sh /etc/profile.d/rvm.sh.ok
|
291
|
-
```
|
259
|
+
**In priority**, refer to the official Ruby documentation:
|
292
260
|
|
293
|
-
|
261
|
+
- [Download Ruby](https://www.ruby-lang.org/en/downloads/)
|
262
|
+
- [Installation Guide](https://www.ruby-lang.org/en/documentation/installation/)
|
294
263
|
|
295
|
-
|
296
|
-
source /etc/profile.d/rvm.sh.ok
|
297
|
-
```
|
264
|
+
For convenience, you may refer to the following sections for a proposed method for specific operating systems.
|
298
265
|
|
299
|
-
|
300
|
-
|
301
|
-
```
|
266
|
+
Latest version of `ascli` requires a ruby version [at least under maintenance support](https://www.ruby-lang.org/en/downloads/branches/).
|
267
|
+
If an older Ruby version is needed, then use an older version of `ascli` that supports it.
|
302
268
|
|
303
269
|
#### Windows: Installer
|
304
270
|
|
@@ -322,20 +288,29 @@ rubyinstaller-devkit-3.2.2-1-x64.exe /silent /currentuser /noicons /dir=C:\asper
|
|
322
288
|
|
323
289
|
#### macOS: `brew`
|
324
290
|
|
325
|
-
**macOS**
|
326
|
-
|
291
|
+
**macOS** comes with Ruby 2.6.
|
292
|
+
It is an old unsupported version and [Apple has deprecated it](https://developer.apple.com/documentation/macos-release-notes/macos-catalina-10_15-release-notes), and it will be removed in the future.
|
293
|
+
Do not use it.
|
327
294
|
|
328
|
-
The recommended way is to either
|
295
|
+
The recommended way is to either use [Homebrew](https://brew.sh/) or [RVM](https://rvm.io/).
|
329
296
|
|
330
297
|
```bash
|
331
298
|
brew install ruby
|
332
299
|
```
|
333
300
|
|
301
|
+
This installs a recent ruby suitable for `ascli`.
|
302
|
+
|
303
|
+
If using `rvm`, one way to force use of openssl 3.0 is:
|
304
|
+
|
305
|
+
```bash
|
306
|
+
RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@3.0)" rvm install 3.4.0
|
307
|
+
```
|
308
|
+
|
334
309
|
#### Linux: Package
|
335
310
|
|
336
311
|
If your Linux distribution provides a standard Ruby package, you can use it provided that the version supported.
|
337
312
|
|
338
|
-
**Example:** RHEL 8+, Rocky Linux 8
|
313
|
+
**Example:** RHEL 8+, Rocky Linux 8+: with extensions to compile native gems
|
339
314
|
|
340
315
|
- Check available Ruby versions:
|
341
316
|
|
@@ -384,7 +359,66 @@ One can remove all installed gems, for example to start fresh:
|
|
384
359
|
gem uninstall -axI $(ls $(gem env gemdir)/gems/|sed -e 's/-[^-]*$//'|sort -u)
|
385
360
|
```
|
386
361
|
|
387
|
-
####
|
362
|
+
#### Unix-like: RVM: Single user installation (not root)
|
363
|
+
|
364
|
+
Install `rvm`.
|
365
|
+
Follow [https://rvm.io/](https://rvm.io/).
|
366
|
+
|
367
|
+
Execute the shell/curl command.
|
368
|
+
As regular user, it installs in the user's home: `~/.rvm` .
|
369
|
+
|
370
|
+
```bash
|
371
|
+
\curl -sSL https://get.rvm.io | bash -s stable
|
372
|
+
```
|
373
|
+
|
374
|
+
Follow on-screen instructions to install keys, and then re-execute the command.
|
375
|
+
|
376
|
+
Upon RVM installation, open a new terminal or initialize with:
|
377
|
+
|
378
|
+
```bash
|
379
|
+
source ~/.rvm/scripts/rvm
|
380
|
+
```
|
381
|
+
|
382
|
+
It is advised to get one of the pre-compiled Ruby version, you can list with:
|
383
|
+
|
384
|
+
```bash
|
385
|
+
rvm list --remote
|
386
|
+
```
|
387
|
+
|
388
|
+
Install the chosen pre-compiled Ruby version:
|
389
|
+
|
390
|
+
```bash
|
391
|
+
rvm install 3.2.2
|
392
|
+
```
|
393
|
+
|
394
|
+
Ruby is now installed for the user, go to [Gem installation](#ruby-gem-aspera-cli). <!-- markdownlint-disable-line -->
|
395
|
+
|
396
|
+
Alternatively RVM can be installed system-wide, for this execute as `root`.
|
397
|
+
It then installs by default in `/usr/local/rvm` for all users and creates `/etc/profile.d/rvm.sh`.
|
398
|
+
One can install in another location with:
|
399
|
+
|
400
|
+
```bash
|
401
|
+
curl -sSL https://get.rvm.io | bash -s -- --path /usr/local
|
402
|
+
```
|
403
|
+
|
404
|
+
As root, make sure this will not collide with other application using Ruby (e.g. Faspex).
|
405
|
+
If so, one can rename the environment script so that it is not loaded by default:
|
406
|
+
|
407
|
+
```bash
|
408
|
+
mv /etc/profile.d/rvm.sh /etc/profile.d/rvm.sh.ok
|
409
|
+
```
|
410
|
+
|
411
|
+
To activate Ruby (and ascli) later, source it:
|
412
|
+
|
413
|
+
```bash
|
414
|
+
source /etc/profile.d/rvm.sh.ok
|
415
|
+
```
|
416
|
+
|
417
|
+
```bash
|
418
|
+
rvm version
|
419
|
+
```
|
420
|
+
|
421
|
+
#### Linux as non-root
|
388
422
|
|
389
423
|
If you don't have root access, you can install Ruby in your home directory using `rbenv` see [rbenv-installer](https://github.com/rbenv/rbenv-installer#rbenv-installer):
|
390
424
|
|
@@ -392,7 +426,7 @@ If you don't have root access, you can install Ruby in your home directory using
|
|
392
426
|
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash
|
393
427
|
```
|
394
428
|
|
395
|
-
Then open a new terminal, or
|
429
|
+
Then open a new terminal, or `source` the shell initialization script:
|
396
430
|
|
397
431
|
```bash
|
398
432
|
source ~/.bashrc
|
@@ -411,8 +445,7 @@ For example for AIX, one can look at:
|
|
411
445
|
|
412
446
|
<https://www.ibm.com/support/pages/aix-toolbox-open-source-software-downloads-alpha#R>
|
413
447
|
|
414
|
-
If your Unix does not provide a pre-built Ruby, you can get it using one of those
|
415
|
-
[methods](https://www.ruby-lang.org/en/documentation/installation/).
|
448
|
+
If your Unix does not provide a pre-built Ruby, you can get it using one of those [methods](https://www.ruby-lang.org/en/documentation/installation/).
|
416
449
|
|
417
450
|
For instance to build from source and install in `/opt/ruby` :
|
418
451
|
|
@@ -465,16 +498,24 @@ JRUBY_OPTS=--dev ascli -v
|
|
465
498
|
|
466
499
|
#### Optional gems
|
467
500
|
|
468
|
-
Some additional gems
|
501
|
+
Some additional gems are required for some specific features, see [Gemfile](Gemfile):
|
469
502
|
|
470
|
-
|
471
|
-
|
472
|
-
|
503
|
+
| name | version | comment |
|
504
|
+
| ---- | ------- | ------- |
|
505
|
+
| grpc | ~> 1.65 | for transferSDK |
|
506
|
+
| mimemagic | ~> 0.4 | for preview |
|
507
|
+
| rmagick | ~> 5.5 | for terminal view |
|
508
|
+
| symmetric-encryption | ~> 4.6 | for file vault |
|
509
|
+
| bigdecimal | ~> 3.1.9 | if RUBY_VERSION >= '3.4' for symmetric-encryption ? |
|
473
510
|
|
474
511
|
Install like this:
|
475
512
|
|
476
513
|
```bash
|
477
|
-
gem install
|
514
|
+
gem install grpc -v '~> 1.65'
|
515
|
+
gem install mimemagic -v '~> 0.4'
|
516
|
+
gem install rmagick -v '~> 5.5'
|
517
|
+
gem install symmetric-encryption -v '~> 4.6'
|
518
|
+
gem install bigdecimal -v '~> 3.1.9'
|
478
519
|
```
|
479
520
|
|
480
521
|
> **Note:** Those are not installed as part of dependencies because they involve compilation of native code.
|
@@ -484,7 +525,7 @@ gem install rmagick grpc mimemagic
|
|
484
525
|
Once you have Ruby and rights to install gems, install the `aspera-cli` gem and its dependencies:
|
485
526
|
|
486
527
|
```bash
|
487
|
-
gem install aspera-cli
|
528
|
+
gem install aspera-cli --pre
|
488
529
|
```
|
489
530
|
|
490
531
|
To upgrade to the latest version:
|
@@ -494,7 +535,7 @@ gem update aspera-cli
|
|
494
535
|
```
|
495
536
|
|
496
537
|
During its execution, `ascli` checks every week if a new version is available and notifies the user in a WARN log.
|
497
|
-
To
|
538
|
+
To unactivate this feature, globally set the option `version_check_days` to `0`, or specify a different period in days.
|
498
539
|
|
499
540
|
To check if a new version is available (independently of `version_check_days`):
|
500
541
|
|
@@ -504,18 +545,18 @@ ascli config check_update
|
|
504
545
|
|
505
546
|
#### Gem installation with signature verification
|
506
547
|
|
507
|
-
The gem is signed with a private key, and the public certificate is available in the
|
548
|
+
The gem is signed with a private key, and the public certificate is available in the gitHub repository (`certs/aspera-cli-public-cert.pem`).
|
508
549
|
When installing the gem, the signature can be optionally verified.
|
509
550
|
|
510
551
|
For [secure installation](https://guides.rubygems.org/security/#using-gems), one can install the gem with the public key:
|
511
552
|
|
512
|
-
|
553
|
+
Import the verification certificate:
|
513
554
|
|
514
555
|
```bash
|
515
556
|
gem cert --add <(curl -Ls https://raw.githubusercontent.com/IBM/aspera-cli/main/certs/aspera-cli-public-cert.pem)
|
516
557
|
```
|
517
558
|
|
518
|
-
|
559
|
+
The user installs the gem with `HighSecurity` or `MediumSecurity`: this will succeed only of the gem is trusted:
|
519
560
|
|
520
561
|
```bash
|
521
562
|
gem install -P MediumSecurity aspera-cli
|
@@ -529,36 +570,65 @@ Only two additional files are required to perform an Aspera Transfer, which are
|
|
529
570
|
- `ascp`
|
530
571
|
- `aspera-license` (in same folder, or ../etc)
|
531
572
|
|
532
|
-
This can be installed either be installing an Aspera transfer software
|
573
|
+
This can be installed either be installing an Aspera transfer software or using an `ascli` command.
|
574
|
+
|
575
|
+
#### Installation of `ascp` through `transferd`
|
576
|
+
|
577
|
+
The easiest option to install `ascp` is through the use of the IBM Aspera Transfer Daemon.
|
578
|
+
|
579
|
+
Supported platforms are listed in the [Release Notes](https://developer.ibm.com/apis/catalog/aspera--aspera-transfer-sdk/Release+notes) and archives can be downloaded from [Downloads](https://developer.ibm.com/apis/catalog/aspera--aspera-transfer-sdk/downloads/downloads.json).
|
580
|
+
|
581
|
+
Install using `ascli` for the current platform with:
|
533
582
|
|
534
583
|
```bash
|
535
584
|
ascli config ascp install
|
536
585
|
```
|
537
586
|
|
538
|
-
|
539
|
-
In this case, the default value for option `sdk_url` is `DEF`.
|
587
|
+
or
|
540
588
|
|
541
|
-
|
589
|
+
```bash
|
590
|
+
ascli config transferd install
|
591
|
+
```
|
542
592
|
|
543
|
-
|
593
|
+
The installation of the transfer binary follows those steps:
|
544
594
|
|
545
|
-
|
546
|
-
|
595
|
+
- Check the value of option `sdk_url`: if the value is the default value `DEF`, then the procedure follows, else it specified a URL where to take the archive from.
|
596
|
+
- The location of archives is retrieved from the url specified by option `locations_url` whose default value is <https://ibm.biz/sdk_location>
|
597
|
+
- The archive for the current system architecture (CPU and OS) is selected and downloaded.
|
547
598
|
|
548
|
-
|
599
|
+
The option `locations_url` can be set to override the URL where the list of versions is located, in case of air-gap environment or for testing.
|
600
|
+
Option `sdk_url` can be set to specify a direct location for the transfer binaries.
|
549
601
|
|
550
|
-
|
551
|
-
curl -Lso sdk.zip https://...
|
552
|
-
```
|
602
|
+
Available Transfer Daemon versions available from `locations_url` can be listed with: `ascli config transferd list`
|
553
603
|
|
554
|
-
|
604
|
+
To install a specific version, e.g. 1.1.3:
|
555
605
|
|
556
|
-
|
557
|
-
|
558
|
-
|
606
|
+
```bash
|
607
|
+
ascli config ascp install 1.1.3
|
608
|
+
```
|
609
|
+
|
610
|
+
To get the download URL for a specific platform and version:
|
611
|
+
|
612
|
+
```bash
|
613
|
+
ascli config transferd list --select=@json:'{"platform":"osx-arm64","version":"1.1.3"}' --fields=url
|
614
|
+
```
|
615
|
+
|
616
|
+
To download it, pipe to `config download`:
|
617
|
+
|
618
|
+
```bash
|
619
|
+
ascli config transferd list --select=@json:'{"platform":"osx-arm64","version":"1.1.3"}' --fields=url | ascli config download @stdin:
|
620
|
+
```
|
621
|
+
|
622
|
+
If installation from a local file preferred instead of fetching from internet: one can specify the location of the SDK file with option `sdk_url`:
|
623
|
+
|
624
|
+
```bash
|
625
|
+
ascli config ascp install --sdk-url=file:///macos-arm64-1.1.3-c6c7a2a.zip
|
626
|
+
```
|
559
627
|
|
560
628
|
The format is: `file:///<path>`, where `<path>` can be either a relative path (not starting with `/`), or an absolute path.
|
561
629
|
|
630
|
+
#### Installation of `ascp` through other component
|
631
|
+
|
562
632
|
If the embedded method is not used, the following packages are also suitable:
|
563
633
|
|
564
634
|
- IBM Aspera Connect Client (Free)
|
@@ -604,17 +674,7 @@ The procedure:
|
|
604
674
|
cd $HOME && tar zcvf rvm-ascli.tgz .rvm
|
605
675
|
```
|
606
676
|
|
607
|
-
-
|
608
|
-
|
609
|
-
```bash
|
610
|
-
ascli --show-config --fields=sdk_url
|
611
|
-
```
|
612
|
-
|
613
|
-
- Download the SDK archive from that URL
|
614
|
-
|
615
|
-
```bash
|
616
|
-
curl -Lso sdk.zip https://ibm.biz/aspera_transfer_sdk
|
617
|
-
```
|
677
|
+
- Download the SDK archive for the selected architecture, follow [Install `ascp`](#installation-of-ascp-through-transferd)
|
618
678
|
|
619
679
|
- Transfer those 2 files to the target system
|
620
680
|
|
@@ -627,7 +687,7 @@ tar zxvf rvm-ascli.tgz
|
|
627
687
|
|
628
688
|
source ~/.rvm/scripts/rvm
|
629
689
|
|
630
|
-
ascli config ascp install --sdk-url=file:///
|
690
|
+
ascli config ascp install --sdk-url=file:///[SDK archive file path]
|
631
691
|
```
|
632
692
|
|
633
693
|
- Add those lines to shell init (`.profile`)
|
@@ -642,18 +702,18 @@ Installation without network:
|
|
642
702
|
|
643
703
|
It is essentially the same procedure as installation for Windows with internet, but instead of retrieving files from internet, copy the files from a machine with internet access, and then install from those archives:
|
644
704
|
|
645
|
-
- Download the
|
705
|
+
- Download the Ruby installer from <https://rubyinstaller.org/downloads/>
|
646
706
|
|
647
707
|
```bash
|
648
|
-
v=$(curl -s https://rubyinstaller.org/downloads
|
708
|
+
v=$(curl -s https://rubyinstaller.org/downloads/ | sed -nEe 's|.*(https://.*/releases/download/.*exe).*|\1|p' | head -n 1)
|
649
709
|
curl -o ${v##*/} $v
|
650
710
|
```
|
651
711
|
|
652
712
|
- Create an archive with necessary gems like in previous section
|
653
713
|
|
654
|
-
- Download the SDK
|
714
|
+
- Download the SDK following [Install `ascp`](#installation-of-ascp-through-transferd)
|
655
715
|
|
656
|
-
- Create a Zip with all those files
|
716
|
+
- Create a Zip with all those files and transfer to the target system.
|
657
717
|
|
658
718
|
Then, on the target system:
|
659
719
|
|
@@ -664,7 +724,7 @@ Then, on the target system:
|
|
664
724
|
rubyinstaller-devkit-3.2.2-1-x64.exe /silent /currentuser /noicons /dir=C:\aspera-cli
|
665
725
|
```
|
666
726
|
|
667
|
-
- Install the gems: Extract the gem archive
|
727
|
+
- Install the gems: Extract the gem archive and then:
|
668
728
|
|
669
729
|
```bat
|
670
730
|
gem install --force --local *.gem
|
@@ -738,7 +798,7 @@ ascli -v
|
|
738
798
|
```
|
739
799
|
|
740
800
|
```text
|
741
|
-
4.
|
801
|
+
4.22.0.pre
|
742
802
|
```
|
743
803
|
|
744
804
|
In order to keep persistency of configuration on the host, you should specify your user's configuration folder as a volume for the container.
|
@@ -839,7 +899,7 @@ podman load -i ascli_image_latest.tar.gz
|
|
839
899
|
|
840
900
|
#### Container: `aspera.conf`
|
841
901
|
|
842
|
-
`ascp`'s configuration file `aspera.conf` is located in the container at: `/
|
902
|
+
`ascp`'s configuration file `aspera.conf` is located in the container at: `/ibm_aspera/aspera.conf` (see Dockerfile).
|
843
903
|
As the container is immutable, it is not recommended to modify this file.
|
844
904
|
If one wants to change the content, it is possible to tell `ascp` to use another file using `ascp` option `-f`, e.g. by locating it on the host folder `$HOME/.aspera/ascli` mapped to the container folder `/home/cliuser/.aspera/ascli`:
|
845
905
|
|
@@ -1501,16 +1561,33 @@ To redirect results to a file, use option `output`.
|
|
1501
1561
|
|
1502
1562
|
Depending on action, the output will contain:
|
1503
1563
|
|
1504
|
-
|
1505
|
-
|
1506
|
-
|
1507
|
-
|
1508
|
-
|
1509
|
-
|
1564
|
+
| Result Type | Description |
|
1565
|
+
|-----------------|-------------------|
|
1566
|
+
| `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. |
|
1567
|
+
| `object_list` | displayed as a 2 dimensional table: one line per item, one column per field. |
|
1568
|
+
| `value_list` | a table with one column. |
|
1569
|
+
| `empty` | nothing |
|
1570
|
+
| `status` | a message |
|
1571
|
+
| `other_struct` | a complex structure that cannot be displayed as an array |
|
1572
|
+
|
1573
|
+
#### Option: `format`
|
1510
1574
|
|
1511
|
-
|
1575
|
+
The style of output can be set using the `format` option:
|
1512
1576
|
|
1513
|
-
|
1577
|
+
| `format` | Output formatting |
|
1578
|
+
|----------|-------------------|
|
1579
|
+
| `table` | Text table (default) |
|
1580
|
+
| `text` | Value as `String` |
|
1581
|
+
| `ruby` | Ruby code |
|
1582
|
+
| `json` | JSON code |
|
1583
|
+
| `jsonpp` | JSON pretty printed |
|
1584
|
+
| `yaml` | YAML |
|
1585
|
+
| `csv` | Comma Separated Values |
|
1586
|
+
| `image` | Image URL or Image data |
|
1587
|
+
|
1588
|
+
By default, result of type `single_object` and `object_list` are displayed using format `table`.
|
1589
|
+
|
1590
|
+
#### Option: `table_style`
|
1514
1591
|
|
1515
1592
|
The table style can be customized with option: `table_style` which expects a `Hash`, options are the ones described in gem [`terminal-table`](https://github.com/tj/terminal-table).
|
1516
1593
|
|
@@ -1522,28 +1599,64 @@ ascli config preset over --table-style=@ruby:'{border: :unicode_thick_edge}'
|
|
1522
1599
|
|
1523
1600
|
> **Note:** Other border styles exist, not limited to: `:unicode`, `:unicode_round`.
|
1524
1601
|
|
1525
|
-
|
1526
|
-
|
1527
|
-
|
1528
|
-
|
1602
|
+
#### Option: `flat_hash`: `.`-join keys
|
1603
|
+
|
1604
|
+
This optin controls how object fields are displayed for complex objects.
|
1605
|
+
|
1606
|
+
Effective only when `format` is `table` to display `single_object` or `object_list`.
|
1529
1607
|
|
1530
|
-
|
1531
|
-
Single objects (or tables with a single result) are transposed: one attribute per line.
|
1532
|
-
If transposition of single object is not desired, use option: `transpose_single` set to `no`.
|
1533
|
-
If option `multi_table` is `yes`, then elements of a table are displayed individually in a table.
|
1608
|
+
If value is `no`, then object's `field` names are only the first level keys of the `Hash` result and values that are `Hash` are displayed as such in Ruby syntax.
|
1534
1609
|
|
1535
|
-
|
1610
|
+
If value is `yes` (default), then object are flattened, i.e. deep `Hash` are transformed into 1-level Hash, where keys are `.`-junction of deep keys.
|
1611
|
+
In this case, it is possible to filter fields using the option `fields` using the compound field name using `.` (dot) as separator.
|
1536
1612
|
|
1537
|
-
|
1538
|
-
|
1539
|
-
|
1540
|
-
|
1541
|
-
|
1542
|
-
|
1543
|
-
|
1544
|
-
|
1613
|
+
Example: Result of command is a list of objects with a single object:
|
1614
|
+
|
1615
|
+
```console
|
1616
|
+
$ ascli config echo @json:'[{"user":{"id":1,"name":"toto"},"project":"blah"}]'
|
1617
|
+
╭─────────┬───────────┬─────────╮
|
1618
|
+
│ user.id │ user.name │ project │
|
1619
|
+
╞═════════╪═══════════╪═════════╡
|
1620
|
+
│ 1 │ toto │ blah │
|
1621
|
+
╰─────────┴───────────┴─────────╯
|
1622
|
+
|
1623
|
+
$ ascli config echo @json:'[{"user":{"id":1,"name":"toto"},"project":"blah"}]' --flat-hash=no
|
1624
|
+
╭───────────────────────────┬─────────╮
|
1625
|
+
│ user │ project │
|
1626
|
+
╞═══════════════════════════╪═════════╡
|
1627
|
+
│ {"id"=>1, "name"=>"toto"} │ blah │
|
1628
|
+
╰───────────────────────────┴─────────╯
|
1629
|
+
```
|
1545
1630
|
|
1546
|
-
####
|
1631
|
+
#### Option: `multi_single`
|
1632
|
+
|
1633
|
+
This option controls if object fields are displayed as columns or lines.
|
1634
|
+
|
1635
|
+
If value is `no` (default), `object_list` are displayed with one object per line, with fields as columns (see above).
|
1636
|
+
`single_object` are displayed with one field per line (and columns are: `field`, `value`).
|
1637
|
+
|
1638
|
+
If an `object_list` has a single element, it is possible to have `ascli` display the object as a single object (one field per line instead of columns) with option: `multi_single` set to `single`.
|
1639
|
+
|
1640
|
+
This parameter can be set as a global default with:
|
1641
|
+
|
1642
|
+
```bash
|
1643
|
+
ascli config preset set GLOBAL multi_single single
|
1644
|
+
```
|
1645
|
+
|
1646
|
+
In case multiple objects are returned, it is possible to display one table per object with option `multi_single` set to `yes`.
|
1647
|
+
|
1648
|
+
```console
|
1649
|
+
$ ascli config echo @json:'[{"user":{"id":1,"name":"toto"},"project":"blash"}]' --multi-single=yes
|
1650
|
+
╭───────────┬───────╮
|
1651
|
+
│ field │ value │
|
1652
|
+
╞═══════════╪═══════╡
|
1653
|
+
│ user.id │ 1 │
|
1654
|
+
│ user.name │ toto │
|
1655
|
+
│ project │ blash │
|
1656
|
+
╰───────────┴───────╯
|
1657
|
+
```
|
1658
|
+
|
1659
|
+
#### Option: `display`: Verbosity of output
|
1547
1660
|
|
1548
1661
|
Output messages are categorized in 3 types:
|
1549
1662
|
|
@@ -1557,13 +1670,17 @@ The option `display` controls the level of output:
|
|
1557
1670
|
- `data` display `data` and `error` messages
|
1558
1671
|
- `error` display only error messages.
|
1559
1672
|
|
1560
|
-
|
1561
|
-
|
1673
|
+
#### Option: `show_secrets`: Hide or show secrets in results
|
1674
|
+
|
1675
|
+
If value is `no` (default), then secrets are redacted from command results.
|
1676
|
+
|
1677
|
+
If value is `yes`, then secrets shown in clear in results.
|
1678
|
+
|
1679
|
+
If `display` is `data`, secrets are included to allows piping results.
|
1562
1680
|
|
1563
|
-
#### Option: `fields`: Selection of output object
|
1681
|
+
#### Option: `fields`: Selection of output object fields
|
1564
1682
|
|
1565
|
-
|
1566
|
-
Depending on the command, columns may include by default all fields, or only some selected fields.
|
1683
|
+
Depending on the command, results may include by default all fields, or only some selected fields.
|
1567
1684
|
It is possible to define specific columns to be displayed, by setting the `fields` option.
|
1568
1685
|
|
1569
1686
|
The `fields` option is a list that can be either a comma separated list or an extended value `Array`.
|
@@ -1572,8 +1689,8 @@ Individual elements of the list can be:
|
|
1572
1689
|
|
1573
1690
|
- **property** : add property to the current list
|
1574
1691
|
- `-`**property** : remove property from the current list
|
1575
|
-
- `DEF` : default list of
|
1576
|
-
- `ALL` : all
|
1692
|
+
- `DEF` : default list of fields (that's the default, when not set)
|
1693
|
+
- `ALL` : all fields
|
1577
1694
|
- A Ruby `RegEx` : using `@ruby:'/.../'`, or `@re:...` add those matching to the list
|
1578
1695
|
|
1579
1696
|
Examples:
|
@@ -1581,13 +1698,13 @@ Examples:
|
|
1581
1698
|
- `a,b,c` : the list of attributes specified as a comma separated list (overrides the all default)
|
1582
1699
|
- `@json:'["a","b","c"]'` : `Array` extended value: same as above
|
1583
1700
|
- `b,DEF,-a` : default property list, remove `a` and add `b` in first position
|
1584
|
-
- `@ruby:'/^server/'` : Display all
|
1701
|
+
- `@ruby:'/^server/'` : Display all fields whose name begin with `server`
|
1585
1702
|
|
1586
1703
|
#### Option: `select`
|
1587
1704
|
|
1588
1705
|
Table output (`object_list`) can be filtered using option `select`.
|
1589
1706
|
This option is either a `Hash` or `Proc`.
|
1590
|
-
The `Proc` takes as argument a line (`Hash`) in the table and is a Ruby lambda expression that returns `true` or `false
|
1707
|
+
The `Proc` takes as argument a line (`Hash`) in the table and is a Ruby lambda expression that shall returns `true` to select or `false` to remove an entry.
|
1591
1708
|
|
1592
1709
|
Example:
|
1593
1710
|
|
@@ -1596,12 +1713,12 @@ ascli aoc admin user list --fields=name,email,ats_admin --query=@json:'{"sort":"
|
|
1596
1713
|
```
|
1597
1714
|
|
1598
1715
|
```output
|
1599
|
-
|
1600
|
-
|
1601
|
-
|
1602
|
-
|
1603
|
-
|
1604
|
-
|
1716
|
+
╭────────────────┬─────────────────────┬───────────╮
|
1717
|
+
│ name │ email │ ats_admin │
|
1718
|
+
╞════════════════╪═════════════════════╪═══════════╡
|
1719
|
+
│ John Curtis │ john@example.com │ true │
|
1720
|
+
│ Laurent Martin │ laurent@example.com │ true │
|
1721
|
+
╰────────────────┴─────────────────────┴───────────╯
|
1605
1722
|
```
|
1606
1723
|
|
1607
1724
|
> **Note:** Option `select` filters elements from the result of command, while the `query` option gives filtering parameters to the API when listing elements.
|
@@ -1616,19 +1733,26 @@ In above example, the same result is obtained with option:
|
|
1616
1733
|
|
1617
1734
|
The percent selector allows identification of an entity by another unique identifier other than the native identifier.
|
1618
1735
|
|
1619
|
-
|
1620
|
-
e.g. `ascli aoc admin user show 1234` where `1234` is the user's identifier.
|
1736
|
+
Syntax: `%<field>:<value>`
|
1621
1737
|
|
1622
|
-
|
1623
|
-
|
1738
|
+
When a command is executed on a single entity, the entity is identified by a unique identifier that follows the command.
|
1739
|
+
For example, in the following command, `1234` is the user's identifier:
|
1624
1740
|
|
1625
|
-
|
1741
|
+
```bash
|
1742
|
+
ascli aoc admin user show 1234
|
1743
|
+
```
|
1744
|
+
|
1745
|
+
Some commands provide the following capability:
|
1746
|
+
If the entity can also be uniquely identified by a name, then the name can be used instead of the identifier, using the **percent selector**.
|
1747
|
+
For example, if the name of the user is `john` and a field for this entity named `name` has a value `john`:
|
1626
1748
|
|
1627
|
-
|
1749
|
+
```bash
|
1750
|
+
ascli aoc admin user show %name:john
|
1751
|
+
```
|
1628
1752
|
|
1629
1753
|
### Extended Value Syntax
|
1630
1754
|
|
1631
|
-
Most options and arguments are specified by a simple string (e.g. username or url).
|
1755
|
+
Most options and arguments are specified by a simple string (e.g. `username` or `url`).
|
1632
1756
|
Sometime it is convenient to read a value from a file: for example read the PEM value of a private key, or a list of files.
|
1633
1757
|
Some options expect a more complex value such as `Hash` or `Array`.
|
1634
1758
|
|
@@ -1644,31 +1768,31 @@ Decoders act like a function with its parameter on right hand side and are recog
|
|
1644
1768
|
|
1645
1769
|
The following decoders are supported:
|
1646
1770
|
|
1647
|
-
| Decoder | Parameter| Returns
|
1648
|
-
|
1649
|
-
| `base64` | String
|
1650
|
-
| `csvt` | String
|
1651
|
-
| `env` | String
|
1652
|
-
| `file` | String
|
1653
|
-
| `json` | String
|
1654
|
-
| `lines` | String
|
1655
|
-
| `list` | String
|
1656
|
-
| `none` | None | Nil
|
1657
|
-
| `path` | String
|
1658
|
-
| `preset` | String
|
1659
|
-
| `extend` | String
|
1660
|
-
| `re` | String
|
1661
|
-
| `ruby` | String
|
1662
|
-
| `secret` | None | String
|
1663
|
-
| `stdin` | None | String
|
1664
|
-
| `stdbin` | None | String
|
1665
|
-
| `uri` | String
|
1666
|
-
| `val` | String
|
1667
|
-
| `yaml` | String
|
1668
|
-
| `zlib` | String
|
1771
|
+
| Decoder | Parameter| Returns | Description |
|
1772
|
+
|----------|----------|----------|-------------|
|
1773
|
+
| `base64` | `String` | `String` | Decode a base64 encoded string |
|
1774
|
+
| `csvt` | `String` | `Array` | Decode a titled CSV value |
|
1775
|
+
| `env` | `String` | `String` | Read from a named env var name, e.g. `--password=@env:MYPASSVAR` |
|
1776
|
+
| `file` | `String` | `String` | Read value from specified file (prefix `~/` is replaced with the users home folder), e.g. `--key=@file:~/.ssh/mykey` |
|
1777
|
+
| `json` | `String` | Any | Decode JSON values (convenient to provide complex structures) |
|
1778
|
+
| `lines` | `String` | `Array` | Split a string in multiple lines and return an array |
|
1779
|
+
| `list` | `String` | `Array` | Split a string in multiple items taking first character as separator and return an array |
|
1780
|
+
| `none` | None | Nil | A null value |
|
1781
|
+
| `path` | `String` | `String` | Performs path expansion on specified path (prefix `~/` is replaced with the users home folder), e.g. `--config-file=@path:~/sample_config.yml` |
|
1782
|
+
| `preset` | `String` | `Hash` | Get whole option preset value by name. Sub-values can also be used using `.` as separator. e.g. `foo.bar` is `conf[foo][bar]` |
|
1783
|
+
| `extend` | `String` | `String` | Evaluates embedded extended value syntax in string |
|
1784
|
+
| `re` | `String` | `Regexp` | Ruby Regular Expression (short for `@ruby:/.../`) |
|
1785
|
+
| `ruby` | `String` | Any | Execute specified Ruby code |
|
1786
|
+
| `secret` | None | `String` | Ask password interactively (hides input) |
|
1787
|
+
| `stdin` | None | `String` | Read from stdin in text mode (no value on right) |
|
1788
|
+
| `stdbin` | None | `String` | Read from stdin in binary mode (no value on right) |
|
1789
|
+
| `uri` | `String` | `String` | Read value from specified URL, e.g. `--fpac=@uri:http://serv/f.pac` |
|
1790
|
+
| `val` | `String` | `String` | Prevent decoders on the right to be decoded. e.g. `--key=@val:@file:foo` sets the option `key` to value `@file:foo`. |
|
1791
|
+
| `yaml` | `String` | Any | Decode YAML |
|
1792
|
+
| `zlib` | `String` | `String` | Un-compress zlib data |
|
1669
1793
|
|
1670
1794
|
> **Note:** A few commands support a value of type `Proc` (lambda expression).
|
1671
|
-
For example, the **Extended Value** `@ruby:'->(i){i["attr"]}'` is a lambda expression that returns the value
|
1795
|
+
For example, the **Extended Value** `@ruby:'->(i){i["attr"]}'` is a lambda expression that returns the value for key `attr` of the `Hash` `i`.
|
1672
1796
|
|
1673
1797
|
To display the result of an extended value, use the `config echo` command.
|
1674
1798
|
|
@@ -1725,15 +1849,15 @@ ascli config echo @json:@extend:'{"hello":true,"version":"@preset:config.version
|
|
1725
1849
|
```
|
1726
1850
|
|
1727
1851
|
```output
|
1728
|
-
|
1729
|
-
|
1730
|
-
|
1731
|
-
|
1732
|
-
|
1733
|
-
|
1852
|
+
╭─────────┬────────╮
|
1853
|
+
│ field │ value │
|
1854
|
+
╞═════════╪════════╡
|
1855
|
+
│ hello │ true │
|
1856
|
+
│ version │ 4.21.1 │
|
1857
|
+
╰─────────┴────────╯
|
1734
1858
|
```
|
1735
1859
|
|
1736
|
-
Example: Create a `Hash` from YAML provided as **heredoc**:
|
1860
|
+
Example: Create a `Hash` from YAML provided as shell **heredoc**:
|
1737
1861
|
|
1738
1862
|
```bash
|
1739
1863
|
ascli config echo @yaml:@stdin: --format=json<<EOF
|
@@ -1753,7 +1877,7 @@ EOF
|
|
1753
1877
|
|
1754
1878
|
### Configuration and Persistency Folder
|
1755
1879
|
|
1756
|
-
`ascli` configuration and
|
1880
|
+
`ascli` configuration and persistency files (token cache, file lists, persistency files) are stored by default in `[User's home folder]/.aspera/ascli`.
|
1757
1881
|
|
1758
1882
|
> **Note:** `[User's home folder]` is found using Ruby's `Dir.home` (`rb_w32_home_dir`).
|
1759
1883
|
It uses the `HOME` env var primarily, and on MS Windows it also looks at `%HOMEDRIVE%%HOMEPATH%` and `%USERPROFILE%`.
|
@@ -1782,9 +1906,9 @@ ascli config folder
|
|
1782
1906
|
C:\Users\Kenji\.aspera\ascli
|
1783
1907
|
```
|
1784
1908
|
|
1785
|
-
When OAuth is used (AoC,
|
1909
|
+
When OAuth is used (AoC, Faspex5) `ascli` keeps a cache of generated bearer tokens in folder `persist_store` in configuration folder by default.
|
1786
1910
|
Option `cache_tokens` (**yes**/no) allows to control if Oauth tokens are cached on file system, or generated for each request.
|
1787
|
-
The command `config
|
1911
|
+
The command `config tokens flush` clears that cache.
|
1788
1912
|
Tokens are kept on disk for a maximum of 30 minutes (`TOKEN_CACHE_EXPIRY_SEC`) and garbage collected after that.
|
1789
1913
|
When a token has expired, then a new token is generated, either using a refresh_token if it is available, or by the default method.
|
1790
1914
|
|
@@ -1954,11 +2078,11 @@ ascp errors
|
|
1954
2078
|
ascp info --sdk-folder=sdk_test_dir
|
1955
2079
|
ascp install
|
1956
2080
|
ascp install --sdk-folder=sdk_test_dir
|
2081
|
+
ascp install 1.1.3
|
1957
2082
|
ascp products list
|
1958
2083
|
ascp products use 'IBM Aspera Connect'
|
1959
2084
|
ascp show
|
1960
2085
|
ascp spec
|
1961
|
-
ascp use /usr/bin/ascp
|
1962
2086
|
check_update
|
1963
2087
|
coffee
|
1964
2088
|
coffee --ui=text
|
@@ -1977,6 +2101,8 @@ echo -- --special-string
|
|
1977
2101
|
echo @base64:SGVsbG8gV29ybGQK
|
1978
2102
|
echo @csvt:@stdin:
|
1979
2103
|
echo @env:USER
|
2104
|
+
echo @json:'[{"user":{"id":1,"name":"foo"},"project":"bar"}]' --multi-single=single
|
2105
|
+
echo @json:'[{"user":{"id":1,"name":"foo"},"project":"bar"}]' --multi-single=yes
|
1980
2106
|
echo @lines:@stdin:
|
1981
2107
|
echo @list:,1,2,3
|
1982
2108
|
echo @secret:
|
@@ -1990,7 +2116,6 @@ echo hello
|
|
1990
2116
|
email_test --notify-to=my_email_external
|
1991
2117
|
file
|
1992
2118
|
file --logger=syslog --log-level=debug
|
1993
|
-
flush_tokens
|
1994
2119
|
folder
|
1995
2120
|
gem name
|
1996
2121
|
gem path
|
@@ -2006,6 +2131,7 @@ preset delete conf_name
|
|
2006
2131
|
preset initialize conf_name @json:'{"p1":"v1","p2":"v2"}'
|
2007
2132
|
preset list
|
2008
2133
|
preset overview
|
2134
|
+
preset set GLOBAL version_check_days 0
|
2009
2135
|
preset set conf_name param value
|
2010
2136
|
preset set default shares conf_name
|
2011
2137
|
preset show conf_name
|
@@ -2017,6 +2143,9 @@ remote_certificate chain https://node.example.com/path
|
|
2017
2143
|
remote_certificate name https://node.example.com/path
|
2018
2144
|
remote_certificate only https://node.example.com/path
|
2019
2145
|
smtp_settings
|
2146
|
+
tokens flush
|
2147
|
+
transferd install
|
2148
|
+
transferd list
|
2020
2149
|
vault create my_label @json:'{"password":"my_password_here","description":"my secret"}'
|
2021
2150
|
vault delete my_label
|
2022
2151
|
vault info
|
@@ -2145,7 +2274,7 @@ ascli config wizard
|
|
2145
2274
|
#### Example of configuration for a plugin
|
2146
2275
|
|
2147
2276
|
For Faspex, Shares, Node (including ATS, Aspera Transfer Service), Console,
|
2148
|
-
only username/password and
|
2277
|
+
only username/password and URL are required (either on command line, or from configuration file).
|
2149
2278
|
Those can usually be provided on the command line:
|
2150
2279
|
|
2151
2280
|
```bash
|
@@ -2391,16 +2520,16 @@ This is available:
|
|
2391
2520
|
- in the `thumbnail` command of `node` when using **gen4/access key** API.
|
2392
2521
|
- when using the `show` command of `preview` plugin.
|
2393
2522
|
- `coffee` and `image` commands of `config` plugin.
|
2394
|
-
- any displayed value which is
|
2523
|
+
- any displayed value which is a URL to image can be displayed with option `format` set to `image`
|
2395
2524
|
|
2396
2525
|
The following options can be specified in the option `image`:
|
2397
2526
|
|
2398
2527
|
| Option | Type | Description |
|
2399
2528
|
|------------|---------|-------------|
|
2400
|
-
| reserve | Integer | Lines reserved to display a status |
|
2401
|
-
| text | Bool | Display text instead of image|
|
2402
|
-
| double | Bool | Display double text resolution (half characters) |
|
2403
|
-
| font_ratio | Float | Font height/width ratio in terminal |
|
2529
|
+
| reserve | `Integer` | Lines reserved to display a status |
|
2530
|
+
| text | `Bool` | Display text instead of image|
|
2531
|
+
| double | `Bool` | Display double text resolution (half characters) |
|
2532
|
+
| font_ratio | `Float` | Font height/width ratio in terminal |
|
2404
2533
|
|
2405
2534
|
```bash
|
2406
2535
|
ascli config image https://eudemo.asperademo.com/wallpaper.jpg --ui=text --image=@json:'{"text":true}'
|
@@ -2433,12 +2562,12 @@ The gem is equipped with traces, mainly for debugging and learning APIs.
|
|
2433
2562
|
By default logging level is `warn` and the output channel is `stderr`.
|
2434
2563
|
To increase debug level, use option `log_level` (e.g. using command line `--log-level=xx`, env var `ASCLI_LOG_LEVEL`, or an [Option Preset](#option-preset)).
|
2435
2564
|
|
2436
|
-
By default passwords and secrets are
|
2437
|
-
|
2565
|
+
By default passwords and secrets are redacted from logs.
|
2566
|
+
Set option `log_secrets` to `yes` to include secrets in logs.
|
2438
2567
|
|
2439
|
-
|
2568
|
+
Option `logger`: `stdout`, `stderr`, `syslog`.
|
2440
2569
|
|
2441
|
-
|
2570
|
+
Option `log_level`: `debug`, `info`, `warn`, `error`.
|
2442
2571
|
|
2443
2572
|
> **Note:** When using the `direct` agent (`ascp`), additional transfer logs can be activated using `ascp` options and `ascp_args`, see [`direct`](#agent-direct).
|
2444
2573
|
|
@@ -2472,13 +2601,13 @@ It will display the exact content of HTTP requests and responses.
|
|
2472
2601
|
To ignore SSL certificate for **any** address/port, use option: `insecure`, i.e. `--insecure=yes`.
|
2473
2602
|
To ignore SSL certificate for a list of specific address/port, use option `ignore_certificate`, set to an `Array` of URL for which certificate will be ignored (only the address and port are matched), e.g. `--ignore-certificate=@list:,https://127.0.0.1:9092`
|
2474
2603
|
|
2475
|
-
> **Note:** Ignoring certificate also applies to `ascp`
|
2604
|
+
> **Note:** Ignoring certificate also applies to `ascp` WSS.
|
2476
2605
|
|
2477
2606
|
Ignoring a certificate is not recommended, it is better to add the certificate to the trusted store.
|
2478
2607
|
So, a warning is displayed when a certificate is ignored.
|
2479
2608
|
To disable the warning, use option `silent_insecure` set to `no`.
|
2480
2609
|
|
2481
|
-
HTTP connection parameters (not `ascp`
|
2610
|
+
HTTP connection parameters (not `ascp` WSS) can be adjusted using option `http_options`:
|
2482
2611
|
|
2483
2612
|
| Parameter | Default | Where |
|
2484
2613
|
|---------------------------|---------------|-----------|
|
@@ -2491,7 +2620,7 @@ HTTP connection parameters (not `ascp` wss) can be adjusted using option `http_o
|
|
2491
2620
|
| `retry_on_error` | 0 | `ascli` |
|
2492
2621
|
| `retry_sleep` | nil | `ascli` |
|
2493
2622
|
|
2494
|
-
Time values are in set **seconds** and can be of type either
|
2623
|
+
Time values are in set **seconds** and can be of type either `Integer` or `Float`.
|
2495
2624
|
Default values are the ones of Ruby:
|
2496
2625
|
For a full list, refer to the Ruby library: [`Net::HTTP`](https://ruby-doc.org/stdlib/libdoc/net/http/rdoc/Net/HTTP.html).
|
2497
2626
|
|
@@ -2644,11 +2773,12 @@ ascli config ascp info
|
|
2644
2773
|
```
|
2645
2774
|
|
2646
2775
|
```output
|
2647
|
-
|
2648
|
-
|
2649
|
-
|
2650
|
-
|
2776
|
+
╭─────────┬──────────────────────────────────────────────────╮
|
2777
|
+
│ field │ value │
|
2778
|
+
╞═════════╪══════════════════════════════════════════════════╡
|
2779
|
+
│ ascp │ /Users/john/.aspera/sdk/ascp │
|
2651
2780
|
...
|
2781
|
+
╰─────────┴──────────────────────────────────────────────────╯
|
2652
2782
|
```
|
2653
2783
|
|
2654
2784
|
#### Selection of `ascp` location for [`direct`](#agent-direct) agent
|
@@ -2762,51 +2892,53 @@ Downloaded: IBMAsperaConnectInstaller-3.11.2.63.dmg
|
|
2762
2892
|
### Transfer Clients: Agents
|
2763
2893
|
|
2764
2894
|
Some of the actions on Aspera Applications lead to file transfers (upload and download) using the FASP protocol (`ascp`).
|
2765
|
-
|
2766
|
-
When a transfer needs to be started, a [**transfer-spec**](#transfer-specification) has been internally prepared.
|
2767
|
-
This [**transfer-spec**](#transfer-specification) will be executed by a transfer client, here called **Transfer Agent**.
|
2895
|
+
Transfers will be executed by a transfer client, here called **Transfer Agent**.
|
2768
2896
|
|
2769
2897
|
The following agents are supported and selected with option `transfer`:
|
2770
2898
|
|
2771
|
-
|
2772
|
-
|
2773
|
-
|
2774
|
-
|
2775
|
-
|
2776
|
-
|
2899
|
+
| `transfer` | location | Description of agent |
|
2900
|
+
|------------------------------------|----------|-------------------------------|
|
2901
|
+
| [`direct`](#agent-direct) | local | direct execution of `ascp` |
|
2902
|
+
| [`transferd`](#agent-transfer-sdk) | local | Aspera Transfer Daemon |
|
2903
|
+
| [`connect`](#agent-connect-client) | local | Aspera Connect Client |
|
2904
|
+
| [`desktop`](#agent-desktop-client) | local | Aspera for Desktop |
|
2905
|
+
| [`node`](#agent-node-api) | remote | Aspera Transfer Node |
|
2906
|
+
| [`httpgw`](#agent-http-gateway) | remote | Aspera HTTP Gateway |
|
2777
2907
|
|
2778
2908
|
> **Note:** All transfer operations are seen from the point of view of the agent.
|
2779
|
-
For example,
|
2780
|
-
will effectively push files to the related server from the agent node.
|
2909
|
+
For example, an agent executing an **upload**, or **package send** operation will effectively push files to the related server from the system where the agent runs.
|
2781
2910
|
|
2782
|
-
`
|
2911
|
+
All of above agents (including `direct`) receive transfer parameters as a [**transfer-spec**](#transfer-specification).
|
2912
|
+
Parameters in transfer-spec can be modified with option `ts`.
|
2783
2913
|
|
2784
|
-
Specific options for agents are provided with option `transfer_info
|
2914
|
+
**Specific** options for agents are provided with option `transfer_info`.
|
2915
|
+
|
2916
|
+
> **Note:** Parameters in `transfer_info` are specific for each agent type and are described in the agents respective sections.
|
2785
2917
|
|
2786
2918
|
#### Agent: Direct
|
2787
2919
|
|
2788
|
-
The `direct` agent directly executes a local `ascp`.
|
2920
|
+
The `direct` agent directly executes a local `ascp` in `ascli`.
|
2789
2921
|
This is the default agent for `ascli` (option `--transfer=direct`).
|
2790
|
-
`ascli` will search
|
2922
|
+
`ascli` will locally search installed Aspera products, including SDK, and use `ascp` from that component.
|
2791
2923
|
Refer to section [FASP](#fasp-configuration).
|
2792
2924
|
|
2793
2925
|
The `transfer_info` option accepts the following optional parameters to control multi-session, Web Socket Session, Resume policy and add any argument to `ascp`:
|
2794
2926
|
|
2795
2927
|
| Name | Type | Description |
|
2796
2928
|
|------------------------|---------|-------------|
|
2797
|
-
| `wss` | Bool | Web Socket Session<br/>Enable use of web socket session in case it is available<br/>Default: true |
|
2798
|
-
| `quiet` | Bool | If `true`, then `ascp` progress bar is not shown.<br/>Default: `false` |
|
2799
|
-
| `trusted_certs` | Array | List of repositories for trusted certificates. |
|
2800
|
-
| `client_ssh_key` | String
|
2801
|
-
| `ascp_args` | Array | Array of strings with native `ascp` arguments.<br/>Default: `[]` |
|
2802
|
-
| `spawn_timeout_sec` | Float | Multi session<br/>Verification time that `ascp` is running<br/>Default: `3` |
|
2803
|
-
| `spawn_delay_sec` | Float | Multi session<br/>Delay between startup of sessions<br/>Default: `2` |
|
2804
|
-
| `multi_incr_udp` | Bool | Multi Session<br/>Increment UDP port on multi-session<br/>If `true`, each session will have a different UDP port starting at `fasp_port` (or default 33001)<br/>Else, each session will use `fasp_port` (or `ascp` default)<br/>Default: `true` on Windows, else `false` |
|
2805
|
-
| `resume` | Hash | Resume parameters. See below |
|
2806
|
-
| `resume.iter_max` | Integer | Max number of retry on error<br/>Default: `7` |
|
2807
|
-
| `resume.sleep_initial` | Integer | First Sleep before retry<br/>Default: `2` |
|
2808
|
-
| `resume.sleep_factor` | Integer | Multiplier of sleep period between attempts<br/>Default: `2` |
|
2809
|
-
| `resume.sleep_max` | Integer | Default: `60` |
|
2929
|
+
| `wss` | `Bool` | Web Socket Session<br/>Enable use of web socket session in case it is available<br/>Default: `true` |
|
2930
|
+
| `quiet` | `Bool` | If `true`, then `ascp` progress bar is not shown.<br/>Default: `false` |
|
2931
|
+
| `trusted_certs` | `Array` | List of repositories for trusted certificates. |
|
2932
|
+
| `client_ssh_key` | `String` | SSH Keys to use for token-based transfers. One of: `dsa_rsa`, `rsa`, `per_client`. Default: `rsa` |
|
2933
|
+
| `ascp_args` | `Array` | Array of strings with native `ascp` arguments.<br/>Default: `[]` |
|
2934
|
+
| `spawn_timeout_sec` | `Float` | Multi session<br/>Verification time that `ascp` is running<br/>Default: `3` |
|
2935
|
+
| `spawn_delay_sec` | `Float` | Multi session<br/>Delay between startup of sessions<br/>Default: `2` |
|
2936
|
+
| `multi_incr_udp` | `Bool` | Multi Session<br/>Increment UDP port on multi-session<br/>If `true`, each session will have a different UDP port starting at `fasp_port` (or default 33001)<br/>Else, each session will use `fasp_port` (or `ascp` default)<br/>Default: `true` on Windows, else `false` |
|
2937
|
+
| `resume` | `Hash` | Resume parameters. See below |
|
2938
|
+
| `resume.iter_max` | `Integer` | Max number of retry on error<br/>Default: `7` |
|
2939
|
+
| `resume.sleep_initial` | `Integer` | First Sleep before retry<br/>Default: `2` |
|
2940
|
+
| `resume.sleep_factor` | `Integer` | Multiplier of sleep period between attempts<br/>Default: `2` |
|
2941
|
+
| `resume.sleep_max` | `Integer` | Default: `60` |
|
2810
2942
|
|
2811
2943
|
In case of transfer interruption, the agent will **resume** a transfer up to `iter_max` time.
|
2812
2944
|
Sleep between iterations is given by the following formula where `iter_index` is the current iteration index, starting at 0:
|
@@ -2928,7 +3060,7 @@ There are no option for `transfer_info`.
|
|
2928
3060
|
|
2929
3061
|
#### Agent: Desktop Client
|
2930
3062
|
|
2931
|
-
By specifying option: `--transfer=
|
3063
|
+
By specifying option: `--transfer=desktop`, `ascli` will start transfers using the locally installed **IBM Aspera Desktop Client**.
|
2932
3064
|
There are no option for `transfer_info`.
|
2933
3065
|
|
2934
3066
|
#### Agent: Node API
|
@@ -2938,12 +3070,12 @@ This is especially useful for direct node-to-node transfers.
|
|
2938
3070
|
|
2939
3071
|
Parameters provided in option `transfer_info` are:
|
2940
3072
|
|
2941
|
-
|
|
2942
|
-
|
2943
|
-
| url |
|
2944
|
-
| username |
|
2945
|
-
| password |
|
2946
|
-
| root_id |
|
3073
|
+
| Nam e | Type | Description |
|
3074
|
+
|------------|--------|--------------------------------------------------|
|
3075
|
+
| `url` | `String` | URL of the node API<br/>Mandatory |
|
3076
|
+
| `username` | `String` | Node api user or access key<br/>Mandatory |
|
3077
|
+
| `password` | `String` | Password, secret or bearer token<br/>Mandatory |
|
3078
|
+
| `root_id` | `String` | Root file id<br/>Mandatory only for bearer token |
|
2947
3079
|
|
2948
3080
|
Like any other option, `transfer_info` can get its value from a pre-configured [Option Preset](#option-preset) :
|
2949
3081
|
|
@@ -2970,12 +3102,12 @@ By specifying option: `--transfer=httpgw`, `ascli` will start transfers using th
|
|
2970
3102
|
|
2971
3103
|
Parameters provided in option `transfer_info` are:
|
2972
3104
|
|
2973
|
-
| Name
|
2974
|
-
|
2975
|
-
| url
|
2976
|
-
| upload_chunk_size
|
2977
|
-
| api_version
|
2978
|
-
| synchronous
|
3105
|
+
| Name | Type | Description |
|
3106
|
+
|---------------------|-----------|---------------------------------------|
|
3107
|
+
| `url` | `String` | URL of the HTTP GW<br/>Mandatory |
|
3108
|
+
| `upload_chunk_size` | `Integer` | Size in bytes of chunks for upload<br/>Default: `64000` |
|
3109
|
+
| `api_version` | `String` | Force use of version (`v1`, `v2`)<br/>Default: `v2` |
|
3110
|
+
| `synchronous` | `Bool` | Wait for each message acknowledgment<br/>Default: `false` |
|
2979
3111
|
|
2980
3112
|
Example:
|
2981
3113
|
|
@@ -2990,15 +3122,15 @@ If the application, e.g. AoC or Faspex 5, is configured to use the HTTP Gateway,
|
|
2990
3122
|
#### Agent: Transfer SDK
|
2991
3123
|
|
2992
3124
|
Another possibility is to use the Transfer SDK daemon (`asperatransferd`).
|
2993
|
-
Set option `transfer` to `
|
3125
|
+
Set option `transfer` to `transferd`.
|
2994
3126
|
|
2995
3127
|
Options for `transfer_info` are:
|
2996
3128
|
|
2997
|
-
| Name | Type
|
2998
|
-
|
2999
|
-
| `url`
|
3000
|
-
| `
|
3001
|
-
| `
|
3129
|
+
| Name | Type | Description |
|
3130
|
+
|----------|----------|-------------|
|
3131
|
+
| `url` | `String` | IP address and port listened by the daemon<br/>Mandatory<br/>Default: `:0` |
|
3132
|
+
| `start` | `Bool` | Start a new daemon.<br/>Default: `true` |
|
3133
|
+
| `stop` | `Bool` | Stop daemon when exiting `ascli`<br/>Default: `true` |
|
3002
3134
|
|
3003
3135
|
> **Note:** If port zero is specified in the URL, then the daemon will listen on a random available port. If no address is specified, then `127.0.0.1` is used.
|
3004
3136
|
|
@@ -3081,91 +3213,92 @@ Columns:
|
|
3081
3213
|
|
3082
3214
|
`ascp` argument or environment variable is provided in description.
|
3083
3215
|
|
3084
|
-
| Field | Type | D | N |
|
3085
|
-
| ----- | ---- | - | - | - | - | - | ----------- |
|
3086
|
-
| apply_local_docroot | bool | Y | | | | | Apply local docroot to source paths.<br/>(--apply-local-docroot) |
|
3087
|
-
| authentication | string | | |
|
3088
|
-
| cipher | string | Y | Y | Y | Y | Y | In transit encryption type.<br/>Allowed values: none, aes-128, aes-192, aes-256, aes-128-cfb, aes-192-cfb, aes-256-cfb, aes-128-gcm, aes-192-gcm, aes-256-gcm<br/>(-c (conversion){enum}) |
|
3089
|
-
| cipher_allowed | string | Y | Y | Y | Y | Y | returned by node API. Valid literals include "aes-128" and "none".<br/>(<ignored>) |
|
3090
|
-
| compression | int | | | | | | ascp4 only, 0 / 1?<br/>(<ignored>) |
|
3091
|
-
| content_protection | string | Y | Y | Y | Y | Y | Enable client-side encryption at rest. (CSEAR, content protection)<br/>Allowed values: encrypt, decrypt<br/>(--file-crypt {enum}) |
|
3092
|
-
| content_protection_password | string | Y | Y | Y | Y | Y | Specifies CSEAR password. (content protection)<br/>(env:ASPERA_SCP_FILEPASS) |
|
3093
|
-
| cookie | string | Y | Y | Y | Y | Y | Metadata for transfer specified by application<br/>(env:ASPERA_SCP_COOKIE) |
|
3094
|
-
| create_dir | bool | Y | Y | Y | Y | Y | Specifies whether to create new directories.<br/>(-d) |
|
3095
|
-
| delete_before_transfer | bool | Y | Y | Y | Y | Y | Before transfer, delete files that exist at the destination but not at the source.<br/>The source and destination arguments must be directories that have matching names.<br/>Objects on the destination that have the same name but different type or size as objects<br/>on the source are not deleted.<br/>(--delete-before-transfer) |
|
3096
|
-
| delete_source | bool | Y | Y | | | | Remove SRC files after transfer success<br/>(--remove-after-transfer) |
|
3097
|
-
| destination_root | string | Y | Y | Y | Y | Y | Destination root directory.<br/>(<special>) |
|
3098
|
-
| destination_root_id | string | | | | | | The file ID of the destination root directory.<br/>Required when using Bearer token auth for the destination node.<br/>(<ignored>) |
|
3099
|
-
| dgram_size | int | Y | Y | Y | Y | Y | UDP datagram size in bytes<br/>(-Z {int}) |
|
3100
|
-
| direction | string | Y | Y | Y | Y | Y | Direction of transfer (on client side)<br/>Allowed values: send, receive<br/>(--mode (conversion){enum}) |
|
3101
|
-
| exclude_newer_than |
|
3102
|
-
| exclude_older_than |
|
3103
|
-
| fasp_port | int | Y | Y | Y | Y | Y | Specifies fasp (UDP) port.<br/>(-O {int}) |
|
3104
|
-
| fasp_url | string | | | | | | Only used in Faspex.<br/>(<ignored>) |
|
3105
|
-
| file_checksum | string | Y | Y | | | | Enable checksum reporting for transferred files by specifying the hash to use.<br/>Allowed values: sha-512, sha-384, sha-256, sha1, md5, none<br/>(<ignored>) |
|
3106
|
-
| http_fallback | bool<br/>string | Y | Y | Y | Y | Y | When true(1), attempts to perform an HTTP transfer if a FASP transfer cannot be performed.<br/>(-y (conversion){bool}\|{string}) |
|
3107
|
-
| http_fallback_port | int | Y | | | | | Specifies http port when no cipher is used<br/>(-t {int}) |
|
3108
|
-
| https_fallback_port | int | Y | Y | Y | Y | Y | Specifies https port when cipher is used<br/>(-t {int}) |
|
3109
|
-
| keepalive | bool | Y | | | | | The session is running in persistent session mode.<br/>(--keepalive) |
|
3110
|
-
| lock_min_rate | bool | Y | Y | Y | Y | Y | TODO: remove ?<br/>(<ignored>) |
|
3111
|
-
| lock_min_rate_kbps | bool | | |
|
3112
|
-
| lock_rate_policy | bool | | |
|
3113
|
-
| lock_target_rate | bool | Y | Y | Y | Y | Y | TODO: remove ?<br/>(<ignored>) |
|
3114
|
-
| lock_target_rate_kbps | bool | Y | Y | Y | Y | Y | If true, lock the target transfer rate to the default value set for target_rate_kbps.<br/>If false, users can adjust the transfer rate up to the value set for target_rate_cap_kbps.<br/>(<ignored>) |
|
3115
|
-
| min_rate_cap_kbps | int | Y | Y | Y | Y | Y | The highest minimum rate that an incoming transfer can request, in kilobits per second.<br/>Client minimum rate requests that exceed the minimum rate cap are ignored.<br/>The default value of unlimited applies no cap to the minimum rate. (Default: 0)<br/>(<ignored>) |
|
3116
|
-
| min_rate_kbps | int | Y | Y | Y | Y | Y | Set the minimum transfer rate in kilobits per second.<br/>(-m {int}) |
|
3117
|
-
| move_after_transfer | string | Y | Y | | | | The relative path to which the files will be moved after the transfer at the source side. Available as of 3.8.0.<br/>(--move-after-transfer {string}) |
|
3118
|
-
| multi_session | int | Y | Y | Y | Y | Y | Use multi-session transfer. max 128.<br/>Each participant on one host needs an independent UDP (-O) port.<br/>Large files are split between sessions only when transferring with resume_policy=none.<br/><br/>(<special>) |
|
3119
|
-
| multi_session_threshold | int | Y | Y | | | | Split files across multiple ascp sessions if their size in bytes is greater than or equal to the specified value.<br/>(0=no file is split)<br/>(--multi-session-threshold {int}) |
|
3120
|
-
| obfuscate_file_names | bool | | | | | Y | HTTP Gateway obfuscates file names when set to true.<br/>(<ignored>) |
|
3121
|
-
| overwrite | string | Y | Y | Y | Y | Y | Overwrite destination files with the source files of the same name.<br/>Allowed values: never, always, diff, older, diff+older<br/>(--overwrite {enum}) |
|
3122
|
-
| password | string | | Y | | | | Password for local Windows user when transfer user associated with node api user is not the same as the one running asperanoded.<br/>Allows impersonating the transfer user and have access to resources (e.g. network shares).<br/>Windows only, node api only.<br/>(<ignored>) |
|
3123
|
-
| paths | array | Y | Y | Y | Y | Y | Array of path to the source (required) and a path to the destination (optional).<br/>(<special>) |
|
3124
|
-
| precalculate_job_size | bool | Y | Y | Y | Y | Y | Specifies whether to precalculate the job size.<br/>(--precalculate-job-size) |
|
3125
|
-
| preserve_access_time | bool | Y | Y | Y | Y | Y | Preserve the source-file access timestamps at the destination.<br/>Because source access times are updated by the transfer operation,<br/>the timestamp that is preserved is the one just before to the transfer.<br/>(--preserve-access-time) |
|
3126
|
-
| preserve_acls | string | Y | | | | | Preserve access control lists.<br/>Allowed values: none, native, metafile<br/>(--preserve-acls {enum}) |
|
3127
|
-
| preserve_creation_time | bool | Y | Y | Y | Y | Y | (Windows only) Preserve source-file creation timestamps at the destination.<br/>Only Windows systems retain information about creation time.<br/>If the destination is not a Windows computer, this option is ignored.<br/>(--preserve-creation-time) |
|
3128
|
-
| preserve_extended_attrs | string | | | | | | Preserve the extended attributes.<br/>Allowed values: none, native, metafile<br/>(--preserve-xattrs {enum}) |
|
3129
|
-
| preserve_file_owner_gid | bool | Y | | | | | Preserve the group ID for a file owner<br/>(--preserve-file-owner-gid) |
|
3130
|
-
| preserve_file_owner_uid | bool | Y | | | | | Preserve the user ID for a file owner<br/>(--preserve-file-owner-uid) |
|
3131
|
-
| preserve_modification_time | bool | Y | Y | Y | Y | Y | Set the modification time, the last time a file or directory was modified (written), of a transferred file<br/>to the modification of the source file or directory.<br/>Preserve source-file modification timestamps at the destination.<br/>(--preserve-modification-time) |
|
3132
|
-
| preserve_remote_acls | string | Y | | | | | Preserve remote access control lists.<br/>Allowed values: none, native, metafile<br/>(--remote-preserve-acls {enum}) |
|
3133
|
-
| preserve_source_access_time | bool | Y | | | | | Preserve the time logged for when the source file was accessed<br/>(--preserve-source-access-time) |
|
3134
|
-
| preserve_times | bool | | Y | | | | Preserve file timestamps.<br/>(--preserve-times) |
|
3135
|
-
| proxy | string | Y | | | | | Specify the address of the Aspera high-speed proxy server.<br/>dnat(s)://[user[:password]@]server:port<br/>Default ports for DNAT and DNATS protocols are 9091 and 9092.<br/>Password, if specified here, overrides the value of environment variable ASPERA_PROXY_PASS.<br/>(--proxy {string}) |
|
3136
|
-
| rate_policy | string | Y | Y | Y | Y | Y | The transfer rate policy to use when sharing bandwidth.<br/>Allowed values: low, fair, high, fixed<br/>(--policy {enum}) |
|
3137
|
-
| rate_policy_allowed | string | | |
|
3138
|
-
| read_threads | int | | | | | | ascp4 only<br/>(<ignored>) |
|
3139
|
-
| remote_access_key | string | | | | | | The access key ID of the access key that was used to construct the bearer token that is used to authenticate to the remote node.<br/>(<ignored>) |
|
3140
|
-
| remote_host | string | Y | Y | Y | Y | Y | IP or fully qualified domain name of the remote server<br/>(--host {string}) |
|
3141
|
-
| remote_password | string | Y | Y | Y | Y | Y | SSH session password<br/>(env:ASPERA_SCP_PASS) |
|
3142
|
-
| remote_user | string | Y | Y | Y | Y | Y | Remote user. Default value is "xfer" on node or connect.<br/>(--user {string}) |
|
3143
|
-
| remove_after_transfer | bool | Y | Y | | | | Remove SRC files after transfer success<br/>(--remove-after-transfer) |
|
3144
|
-
| remove_empty_directories | bool | Y | Y | | | | Specifies whether to remove empty directories.<br/>(--remove-empty-directories) |
|
3145
|
-
| remove_empty_source_directory | bool | Y | | | | | Remove empty source subdirectories and remove the source directory itself, if empty<br/>(--remove-empty-source-directory) |
|
3146
|
-
| remove_skipped | bool | Y | Y | Y | | | Must also have remove_after_transfer set to true, Defaults to false, if true, skipped files will be removed as well.<br/>(--remove-skipped) |
|
3147
|
-
| resume_policy | string | Y | Y | Y | Y | Y | If a transfer is interrupted or fails to finish, resume without re-transferring the whole files.<br/>Allowed values: none, attrs, sparse_csum, full_csum<br/>(-k (conversion){enum}) |
|
3148
|
-
| retry_duration | string<br/>int | | Y |
|
3149
|
-
| source_root | string | Y | Y | Y | Y | Y | Path to be prepended to each source path.<br/>This is either a conventional path or it can be a URI but only if there is no root defined.<br/>(--source-prefix64 (conversion){string}) |
|
3150
|
-
| source_root_id | string | | Y | | | | The file ID of the source root directory. Required when using Bearer token auth for the source node.<br/>(<ignored>) |
|
3151
|
-
| src_base | string | Y | Y | | | | Specify the prefix to be stripped off from each source object.<br/>The remaining portion of the source path is kept intact at the destination.<br/>Special care must be taken when used with cloud storage.<br/>(--src-base64 (conversion){string}) |
|
3152
|
-
| ssh_args | string | | | | | | Array of arguments to pass to SSH. Use with caution.<br/>(<ignored>) |
|
3153
|
-
| ssh_port | int | Y | Y | Y | Y | Y | Specifies SSH (TCP) port. Default: local:22, other:33001<br/>(-P {int}) |
|
3154
|
-
| ssh_private_key | string | Y | | | | | Private key used for SSH authentication.<br/>Shall look like: -----BEGIN RSA PRIV4TE KEY-----\nMII...<br/>Note the JSON encoding: \n for newlines.<br/>(env:ASPERA_SCP_KEY) |
|
3155
|
-
| ssh_private_key_passphrase | string | Y | | | | | The passphrase associated with the transfer user's SSH private key. Available as of 3.7.2.<br/>(env:ASPERA_SCP_PASS) |
|
3156
|
-
| sshfp | string | Y | Y | Y | Y | Y | Check it against server SSH host key fingerprint<br/>(--check-sshfp {string}) |
|
3157
|
-
| symlink_policy | string | Y | Y | Y | Y | Y | Handle source side symbolic links<br/>Allowed values: follow, copy, copy+force, skip<br/>(--symbolic-links {enum}) |
|
3158
|
-
| tags | hash | Y | Y | Y | Y | Y | Metadata for transfer as JSON
|
3159
|
-
| target_rate_cap_kbps | int | | |
|
3160
|
-
| target_rate_kbps | int | Y | Y | Y | Y | Y | Specifies desired speed for the transfer.<br/>(-l {int}) |
|
3161
|
-
| target_rate_percentage | string | Y | Y | Y | Y | Y | TODO: remove ?<br/>(<ignored>) |
|
3162
|
-
| title | string | | Y |
|
3163
|
-
| token | string | Y | Y | Y | Y | Y | Authorization token: Bearer, Basic or ATM (Also arg -W)<br/>(env:ASPERA_SCP_TOKEN) |
|
3164
|
-
| use_ascp4 | bool | Y | Y | | | | specify version of protocol<br/>(<special>) |
|
3165
|
-
| use_system_ssh | string | | | | | | TODO, comment...<br/>(<ignored>) |
|
3166
|
-
| write_threads | int | | | | | | ascp4 only<br/>(<ignored>) |
|
3167
|
-
| wss_enabled | bool | Y | Y | Y | Y | Y | Server has Web Socket service enabled<br/>(<special>) |
|
3168
|
-
| wss_port | int | Y | Y | Y | Y | Y | TCP port used for websocket service feed<br/>(<special>) |
|
3216
|
+
| Field | Type | D | N | D | T | H | C | Description |
|
3217
|
+
| ----- | ---- | - | - | - | - | - | - | ----------- |
|
3218
|
+
| apply_local_docroot | bool | Y | | Y | | | | Apply local docroot to source paths.<br/>(--apply-local-docroot) |
|
3219
|
+
| authentication | string | | | | | | Y | value=token for SSH bypass keys, else password asked if not provided.<br/>(<ignored>) |
|
3220
|
+
| cipher | string | Y | Y | Y | Y | Y | Y | In transit encryption type.<br/>Allowed values: none, aes-128, aes-192, aes-256, aes-128-cfb, aes-192-cfb, aes-256-cfb, aes-128-gcm, aes-192-gcm, aes-256-gcm<br/>(-c (conversion){enum}) |
|
3221
|
+
| cipher_allowed | string | Y | Y | Y | Y | Y | Y | returned by node API. Valid literals include "aes-128" and "none".<br/>(<ignored>) |
|
3222
|
+
| compression | int | | | | | | | ascp4 only, 0 / 1?<br/>(<ignored>) |
|
3223
|
+
| content_protection | string | Y | Y | Y | Y | Y | Y | Enable client-side encryption at rest. (CSEAR, content protection)<br/>Allowed values: encrypt, decrypt<br/>(--file-crypt {enum}) |
|
3224
|
+
| content_protection_password | string | Y | Y | Y | Y | Y | Y | Specifies CSEAR password. (content protection)<br/>(env:ASPERA_SCP_FILEPASS) |
|
3225
|
+
| cookie | string | Y | Y | Y | Y | Y | Y | Metadata for transfer specified by application<br/>(env:ASPERA_SCP_COOKIE) |
|
3226
|
+
| create_dir | bool | Y | Y | Y | Y | Y | Y | Specifies whether to create new directories.<br/>(-d) |
|
3227
|
+
| delete_before_transfer | bool | Y | Y | Y | Y | Y | Y | Before transfer, delete files that exist at the destination but not at the source.<br/>The source and destination arguments must be directories that have matching names.<br/>Objects on the destination that have the same name but different type or size as objects<br/>on the source are not deleted.<br/>(--delete-before-transfer) |
|
3228
|
+
| delete_source | bool | Y | Y | Y | | | | Remove SRC files after transfer success<br/>(--remove-after-transfer) |
|
3229
|
+
| destination_root | string | Y | Y | Y | Y | Y | Y | Destination root directory.<br/>(<special>) |
|
3230
|
+
| destination_root_id | string | | | | | | | The file ID of the destination root directory.<br/>Required when using Bearer token auth for the destination node.<br/>(<ignored>) |
|
3231
|
+
| dgram_size | int | Y | Y | Y | Y | Y | Y | UDP datagram size in bytes<br/>(-Z {int}) |
|
3232
|
+
| direction | string | Y | Y | Y | Y | Y | Y | Direction of transfer (on client side)<br/>Allowed values: send, receive<br/>(--mode (conversion){enum}) |
|
3233
|
+
| exclude_newer_than | string | Y | Y | Y | Y | Y | Y | Exclude files, but not directories, from the transfer if they are newer than the specified number of seconds added to the source computer's epoch. e.g. "-86400" for newer than a day back.<br/>(--exclude-newer-than {string}) |
|
3234
|
+
| exclude_older_than | string | Y | Y | Y | Y | Y | Y | Exclude files, but not directories, from the transfer if they are older than the specified number of seconds added to the source computer's epoch. e.g. "-86400" for older than a day back.<br/>(--exclude-older-than {string}) |
|
3235
|
+
| fasp_port | int | Y | Y | Y | Y | Y | Y | Specifies fasp (UDP) port.<br/>(-O {int}) |
|
3236
|
+
| fasp_url | string | | | | | | | Only used in Faspex.<br/>(<ignored>) |
|
3237
|
+
| file_checksum | string | Y | Y | Y | | | | Enable checksum reporting for transferred files by specifying the hash to use.<br/>Allowed values: sha-512, sha-384, sha-256, sha1, md5, none<br/>(<ignored>) |
|
3238
|
+
| http_fallback | bool<br/>string | Y | Y | Y | Y | Y | Y | When true(1), attempts to perform an HTTP transfer if a FASP transfer cannot be performed.<br/>(-y (conversion){bool}\|{string}) |
|
3239
|
+
| http_fallback_port | int | Y | | Y | | | | Specifies http port when no cipher is used<br/>(-t {int}) |
|
3240
|
+
| https_fallback_port | int | Y | Y | Y | Y | Y | Y | Specifies https port when cipher is used<br/>(-t {int}) |
|
3241
|
+
| keepalive | bool | Y | | Y | | | | The session is running in persistent session mode.<br/>(--keepalive) |
|
3242
|
+
| lock_min_rate | bool | Y | Y | Y | Y | Y | Y | TODO: remove ?<br/>(<ignored>) |
|
3243
|
+
| lock_min_rate_kbps | bool | | | | | | Y | If true, lock the minimum transfer rate to the value set for min_rate_kbps.<br/>If false, users can adjust the transfer rate up to the value set for target_rate_cap_kbps.<br/>(<ignored>) |
|
3244
|
+
| lock_rate_policy | bool | | | | | | Y | If true, lock the rate policy to the default value.<br/>(<ignored>) |
|
3245
|
+
| lock_target_rate | bool | Y | Y | Y | Y | Y | Y | TODO: remove ?<br/>(<ignored>) |
|
3246
|
+
| lock_target_rate_kbps | bool | Y | Y | Y | Y | Y | Y | If true, lock the target transfer rate to the default value set for target_rate_kbps.<br/>If false, users can adjust the transfer rate up to the value set for target_rate_cap_kbps.<br/>(<ignored>) |
|
3247
|
+
| min_rate_cap_kbps | int | Y | Y | Y | Y | Y | Y | The highest minimum rate that an incoming transfer can request, in kilobits per second.<br/>Client minimum rate requests that exceed the minimum rate cap are ignored.<br/>The default value of unlimited applies no cap to the minimum rate. (Default: 0)<br/>(<ignored>) |
|
3248
|
+
| min_rate_kbps | int | Y | Y | Y | Y | Y | Y | Set the minimum transfer rate in kilobits per second.<br/>(-m {int}) |
|
3249
|
+
| move_after_transfer | string | Y | Y | Y | | | | The relative path to which the files will be moved after the transfer at the source side. Available as of 3.8.0.<br/>(--move-after-transfer {string}) |
|
3250
|
+
| multi_session | int | Y | Y | Y | Y | Y | Y | Use multi-session transfer. max 128.<br/>Each participant on one host needs an independent UDP (-O) port.<br/>Large files are split between sessions only when transferring with resume_policy=none.<br/><br/>(<special>) |
|
3251
|
+
| multi_session_threshold | int | Y | Y | Y | | | | Split files across multiple ascp sessions if their size in bytes is greater than or equal to the specified value.<br/>(0=no file is split)<br/>(--multi-session-threshold {int}) |
|
3252
|
+
| obfuscate_file_names | bool | | | | | Y | | HTTP Gateway obfuscates file names when set to true.<br/>(<ignored>) |
|
3253
|
+
| overwrite | string | Y | Y | Y | Y | Y | Y | Overwrite destination files with the source files of the same name.<br/>Allowed values: never, always, diff, older, diff+older<br/>(--overwrite {enum}) |
|
3254
|
+
| password | string | | Y | | | | | Password for local Windows user when transfer user associated with node api user is not the same as the one running asperanoded.<br/>Allows impersonating the transfer user and have access to resources (e.g. network shares).<br/>Windows only, node api only.<br/>(<ignored>) |
|
3255
|
+
| paths | array | Y | Y | Y | Y | Y | Y | Array of path to the source (required) and a path to the destination (optional).<br/>(<special>) |
|
3256
|
+
| precalculate_job_size | bool | Y | Y | Y | Y | Y | Y | Specifies whether to precalculate the job size.<br/>(--precalculate-job-size) |
|
3257
|
+
| preserve_access_time | bool | Y | Y | Y | Y | Y | Y | Preserve the source-file access timestamps at the destination.<br/>Because source access times are updated by the transfer operation,<br/>the timestamp that is preserved is the one just before to the transfer.<br/>(--preserve-access-time) |
|
3258
|
+
| preserve_acls | string | Y | | Y | | | | Preserve access control lists.<br/>Allowed values: none, native, metafile<br/>(--preserve-acls {enum}) |
|
3259
|
+
| preserve_creation_time | bool | Y | Y | Y | Y | Y | Y | (Windows only) Preserve source-file creation timestamps at the destination.<br/>Only Windows systems retain information about creation time.<br/>If the destination is not a Windows computer, this option is ignored.<br/>(--preserve-creation-time) |
|
3260
|
+
| preserve_extended_attrs | string | | | | | | | Preserve the extended attributes.<br/>Allowed values: none, native, metafile<br/>(--preserve-xattrs {enum}) |
|
3261
|
+
| preserve_file_owner_gid | bool | Y | | Y | | | | Preserve the group ID for a file owner<br/>(--preserve-file-owner-gid) |
|
3262
|
+
| preserve_file_owner_uid | bool | Y | | Y | | | | Preserve the user ID for a file owner<br/>(--preserve-file-owner-uid) |
|
3263
|
+
| preserve_modification_time | bool | Y | Y | Y | Y | Y | Y | Set the modification time, the last time a file or directory was modified (written), of a transferred file<br/>to the modification of the source file or directory.<br/>Preserve source-file modification timestamps at the destination.<br/>(--preserve-modification-time) |
|
3264
|
+
| preserve_remote_acls | string | Y | | Y | | | | Preserve remote access control lists.<br/>Allowed values: none, native, metafile<br/>(--remote-preserve-acls {enum}) |
|
3265
|
+
| preserve_source_access_time | bool | Y | | Y | | | | Preserve the time logged for when the source file was accessed<br/>(--preserve-source-access-time) |
|
3266
|
+
| preserve_times | bool | | Y | | | | | Preserve file timestamps.<br/>(--preserve-times) |
|
3267
|
+
| proxy | string | Y | | Y | | | | Specify the address of the Aspera high-speed proxy server.<br/>dnat(s)://[user[:password]@]server:port<br/>Default ports for DNAT and DNATS protocols are 9091 and 9092.<br/>Password, if specified here, overrides the value of environment variable ASPERA_PROXY_PASS.<br/>(--proxy {string}) |
|
3268
|
+
| rate_policy | string | Y | Y | Y | Y | Y | Y | The transfer rate policy to use when sharing bandwidth.<br/>Allowed values: low, fair, high, fixed<br/>(--policy {enum}) |
|
3269
|
+
| rate_policy_allowed | string | | | | | | Y | Specifies most aggressive rate policy that is allowed.<br/>Returned by node API.<br/>Allowed values: low, fair, high, fixed<br/>(<ignored>) |
|
3270
|
+
| read_threads | int | | | | | | | ascp4 only<br/>(<ignored>) |
|
3271
|
+
| remote_access_key | string | | | | | | | The access key ID of the access key that was used to construct the bearer token that is used to authenticate to the remote node.<br/>(<ignored>) |
|
3272
|
+
| remote_host | string | Y | Y | Y | Y | Y | Y | IP or fully qualified domain name of the remote server<br/>(--host {string}) |
|
3273
|
+
| remote_password | string | Y | Y | Y | Y | Y | Y | SSH session password<br/>(env:ASPERA_SCP_PASS) |
|
3274
|
+
| remote_user | string | Y | Y | Y | Y | Y | Y | Remote user. Default value is "xfer" on node or connect.<br/>(--user {string}) |
|
3275
|
+
| remove_after_transfer | bool | Y | Y | Y | | | | Remove SRC files after transfer success<br/>(--remove-after-transfer) |
|
3276
|
+
| remove_empty_directories | bool | Y | Y | Y | | | | Specifies whether to remove empty directories.<br/>(--remove-empty-directories) |
|
3277
|
+
| remove_empty_source_directory | bool | Y | | Y | | | | Remove empty source subdirectories and remove the source directory itself, if empty<br/>(--remove-empty-source-directory) |
|
3278
|
+
| remove_skipped | bool | Y | Y | Y | | | Y | Must also have remove_after_transfer set to true, Defaults to false, if true, skipped files will be removed as well.<br/>(--remove-skipped) |
|
3279
|
+
| resume_policy | string | Y | Y | Y | Y | Y | Y | If a transfer is interrupted or fails to finish, resume without re-transferring the whole files.<br/>Allowed values: none, attrs, sparse_csum, full_csum<br/>(-k (conversion){enum}) |
|
3280
|
+
| retry_duration | string<br/>int | | Y | | | | Y | Specifies how long to wait before retrying transfer. (e.g. "5min")<br/>(<ignored>) |
|
3281
|
+
| source_root | string | Y | Y | Y | Y | Y | Y | Path to be prepended to each source path.<br/>This is either a conventional path or it can be a URI but only if there is no root defined.<br/>(--source-prefix64 (conversion){string}) |
|
3282
|
+
| source_root_id | string | | Y | | | | | The file ID of the source root directory. Required when using Bearer token auth for the source node.<br/>(<ignored>) |
|
3283
|
+
| src_base | string | Y | Y | Y | | | | Specify the prefix to be stripped off from each source object.<br/>The remaining portion of the source path is kept intact at the destination.<br/>Special care must be taken when used with cloud storage.<br/>(--src-base64 (conversion){string}) |
|
3284
|
+
| ssh_args | string | | | | | | | Array of arguments to pass to SSH. Use with caution.<br/>(<ignored>) |
|
3285
|
+
| ssh_port | int | Y | Y | Y | Y | Y | Y | Specifies SSH (TCP) port. Default: local:22, other:33001<br/>(-P {int}) |
|
3286
|
+
| ssh_private_key | string | Y | | Y | | | | Private key used for SSH authentication.<br/>Shall look like: -----BEGIN RSA PRIV4TE KEY-----\nMII...<br/>Note the JSON encoding: \n for newlines.<br/>(env:ASPERA_SCP_KEY) |
|
3287
|
+
| ssh_private_key_passphrase | string | Y | | Y | | | | The passphrase associated with the transfer user's SSH private key. Available as of 3.7.2.<br/>(env:ASPERA_SCP_PASS) |
|
3288
|
+
| sshfp | string | Y | Y | Y | Y | Y | Y | Check it against server SSH host key fingerprint<br/>(--check-sshfp {string}) |
|
3289
|
+
| symlink_policy | string | Y | Y | Y | Y | Y | Y | Handle source side symbolic links<br/>Allowed values: follow, copy, copy+force, skip<br/>(--symbolic-links {enum}) |
|
3290
|
+
| tags | hash | Y | Y | Y | Y | Y | Y | Metadata for transfer as JSON. Key `aspera` is reserved. Key `aspera.xfer_retry` specified a retry timeout for node api initiated transfers.<br/>(--tags64 (conversion){hash}) |
|
3291
|
+
| target_rate_cap_kbps | int | | | | | | Y | Returned by upload/download_setup node API.<br/>(<ignored>) |
|
3292
|
+
| target_rate_kbps | int | Y | Y | Y | Y | Y | Y | Specifies desired speed for the transfer.<br/>(-l {int}) |
|
3293
|
+
| target_rate_percentage | string | Y | Y | Y | Y | Y | Y | TODO: remove ?<br/>(<ignored>) |
|
3294
|
+
| title | string | | Y | | | | Y | Title of the transfer<br/>(<ignored>) |
|
3295
|
+
| token | string | Y | Y | Y | Y | Y | Y | Authorization token: Bearer, Basic or ATM (Also arg -W)<br/>(env:ASPERA_SCP_TOKEN) |
|
3296
|
+
| use_ascp4 | bool | Y | Y | Y | | | | specify version of protocol<br/>(<special>) |
|
3297
|
+
| use_system_ssh | string | | | | | | | TODO, comment...<br/>(<ignored>) |
|
3298
|
+
| write_threads | int | | | | | | | ascp4 only<br/>(<ignored>) |
|
3299
|
+
| wss_enabled | bool | Y | Y | Y | Y | Y | Y | Server has Web Socket service enabled<br/>(<special>) |
|
3300
|
+
| wss_port | int | Y | Y | Y | Y | Y | Y | TCP port used for websocket service feed<br/>(<special>) |
|
3301
|
+
| xfer_max_retries | int | | Y | | | | | maximum number of retries, for node API initiated transfers. Shall not exceed aspera.conf `transfer_manager_max_retries` (default 5).<br/>(<ignored>) |
|
3169
3302
|
|
3170
3303
|
#### Destination folder for transfers
|
3171
3304
|
|
@@ -3561,9 +3694,9 @@ where:
|
|
3561
3694
|
| Name | Type | Description |
|
3562
3695
|
|--------|------|-------------|
|
3563
3696
|
|count |int |Number of files<br/>Mandatory|
|
3564
|
-
|file |string|Basename for files<br
|
3565
|
-
|size |int |Size of first file.<br
|
3566
|
-
|inc |int |Increment applied to determine next file size<br
|
3697
|
+
|file |string|Basename for files<br/>Default: `file`|
|
3698
|
+
|size |int |Size of first file.<br/>Default: 0|
|
3699
|
+
|inc |int |Increment applied to determine next file size<br/>Default: 0|
|
3567
3700
|
|seq |enum |Sequence in determining next file size<br/>Values: random, sequential<br/>Default: sequential|
|
3568
3701
|
|buf_init|enum |How source data is initialized<br/>Option 'none' is not allowed for downloads.<br/>Values:none, zero, random<br/>Default:zero|
|
3569
3702
|
|
@@ -3610,7 +3743,7 @@ ascli server upload "faux:///mydir?file=testfile&count=1m&size=0&inc=2&seq=seque
|
|
3610
3743
|
```text
|
3611
3744
|
ascli -h
|
3612
3745
|
NAME
|
3613
|
-
ascli -- a command line tool for Aspera Applications (v4.
|
3746
|
+
ascli -- a command line tool for Aspera Applications (v4.22.0.pre)
|
3614
3747
|
|
3615
3748
|
SYNOPSIS
|
3616
3749
|
ascli COMMANDS [OPTIONS] [ARGS]
|
@@ -3649,8 +3782,7 @@ OPTIONS: global
|
|
3649
3782
|
--select=VALUE Select only some items in lists: column, value (Hash, Proc)
|
3650
3783
|
--table-style=VALUE Table display style (Hash)
|
3651
3784
|
--flat-hash=ENUM (Table) Display deep values as additional keys: no, [yes]
|
3652
|
-
--
|
3653
|
-
--multi-table=ENUM (Table) Each element of a table are displayed as a table: [no], yes
|
3785
|
+
--multi-single=ENUM (Table) Control how object list is displayed as single table, or multiple objects: [no], yes, single
|
3654
3786
|
--show-secrets=ENUM Show secrets on command output: [no], yes
|
3655
3787
|
--image=VALUE Options for image display (Hash)
|
3656
3788
|
-h, --help Show this message
|
@@ -3684,7 +3816,8 @@ OPTIONS: global
|
|
3684
3816
|
--key-path=VALUE Wizard: path to private key for JWT
|
3685
3817
|
--ascp-path=VALUE Path to ascp
|
3686
3818
|
--use-product=VALUE Use ascp from specified product
|
3687
|
-
--sdk-url=VALUE URL to get
|
3819
|
+
--sdk-url=VALUE URL to get Aspera Transfer Daemon
|
3820
|
+
--locations-url=VALUE URL to get locations of Aspera Transfer Daemon
|
3688
3821
|
--sdk-folder=VALUE SDK folder path
|
3689
3822
|
--progress-bar=ENUM Display progress bar: [no], yes
|
3690
3823
|
--smtp=VALUE SMTP configuration (Hash)
|
@@ -3703,11 +3836,11 @@ OPTIONS: global
|
|
3703
3836
|
--to-folder=VALUE Destination folder for transferred files
|
3704
3837
|
--sources=VALUE How list of transferred files is provided (@args,@ts,Array)
|
3705
3838
|
--src-type=ENUM Type of file list: [list], pair
|
3706
|
-
--transfer=ENUM Type of transfer agent: node, [direct],
|
3839
|
+
--transfer=ENUM Type of transfer agent: desktop, node, [direct], transferd, httpgw, connect
|
3707
3840
|
--transfer-info=VALUE Parameters for transfer agent (Hash)
|
3708
3841
|
|
3709
3842
|
COMMAND: config
|
3710
|
-
SUBCOMMANDS: ascp check_update coffee detect documentation echo email_test file
|
3843
|
+
SUBCOMMANDS: ascp check_update coffee detect documentation download echo email_test file folder gem genkey image initdemo open platform plugins preset proxy_check pubkey remote_certificate smtp_settings test tokens transferd vault wizard
|
3711
3844
|
|
3712
3845
|
|
3713
3846
|
COMMAND: shares
|
@@ -3848,10 +3981,10 @@ OPTIONS:
|
|
3848
3981
|
--thumb-vid-scale=VALUE Png: video: size (ffmpeg scale argument)
|
3849
3982
|
--thumb-vid-fraction=VALUE Png: video: time percent position of snapshot
|
3850
3983
|
--thumb-img-size=VALUE Png: non-video: height (and width)
|
3851
|
-
--thumb-text-font=VALUE Png: plaintext: font
|
3984
|
+
--thumb-text-font=VALUE Png: plaintext: font for text rendering: `magick identify -list font`
|
3852
3985
|
--video-conversion=ENUM Mp4: method for preview generation: [reencode], blend, clips
|
3853
3986
|
--video-png-conv=ENUM Mp4: method for thumbnail generation: [fixed], animated
|
3854
|
-
--video-scale=VALUE Mp4: all: video scale (ffmpeg)
|
3987
|
+
--video-scale=VALUE Mp4: all: video scale (ffmpeg scale argument)
|
3855
3988
|
--video-start-sec=VALUE Mp4: all: start offset (seconds) of video preview
|
3856
3989
|
--reencode-ffmpeg=VALUE Mp4: reencode: options to ffmpeg
|
3857
3990
|
--blend-keyframes=VALUE Mp4: blend: # key frames
|
@@ -4018,7 +4151,7 @@ ascli aoc user profile show
|
|
4018
4151
|
Optionally, it is possible to create a new organization-specific integration, i.e. client application identification.
|
4019
4152
|
For this, specify the option: `--use-generic-client=no`.
|
4020
4153
|
|
4021
|
-
If you already know the application, and want to limit the detection to it, provide
|
4154
|
+
If you already know the application, and want to limit the detection to it, provide URL and plugin name:
|
4022
4155
|
|
4023
4156
|
```bash
|
4024
4157
|
ascli config wizard _your_instance_ aoc
|
@@ -4036,7 +4169,7 @@ Several types of OAuth authentication are supported:
|
|
4036
4169
|
|
4037
4170
|
- JSON Web Token (JWT) : authentication is secured by a private key (recommended for `ascli`)
|
4038
4171
|
- Web based authentication : authentication is made by user using a browser
|
4039
|
-
- URL Token : external users authentication with
|
4172
|
+
- URL Token : external users authentication with URL tokens (public links)
|
4040
4173
|
|
4041
4174
|
The authentication method is controlled by option `auth`.
|
4042
4175
|
|
@@ -4781,7 +4914,7 @@ So, for example, the creation of a node using ATS in IBM Cloud looks like (see o
|
|
4781
4914
|
First, Retrieve the ATS node address
|
4782
4915
|
|
4783
4916
|
```bash
|
4784
|
-
ascli aoc admin ats cluster show --cloud=softlayer --region=eu-de --fields=transfer_setup_url --format=csv
|
4917
|
+
ascli aoc admin ats cluster show --cloud=softlayer --region=eu-de --fields=transfer_setup_url --format=csv
|
4785
4918
|
```
|
4786
4919
|
|
4787
4920
|
Then use the returned address for the `url` key to actually create the AoC Node entity:
|
@@ -4845,6 +4978,20 @@ If a user recipient (email) is not already registered and the workspace allows e
|
|
4845
4978
|
- if the option `new_user_option` is `@json:{"package_contact":true}` (default), then a public link is sent and the external user does not need to create an account
|
4846
4979
|
- if the option `new_user_option` is `@json:{}`, then external users are invited to join the workspace
|
4847
4980
|
|
4981
|
+
#### List packages
|
4982
|
+
|
4983
|
+
By default, when using `aoc packages list`, the following `query` is performed:
|
4984
|
+
|
4985
|
+
| query parameter | value |
|
4986
|
+
|----------------------------|-------|
|
4987
|
+
| `archived` | `false` |
|
4988
|
+
| `has_content` | `true` |
|
4989
|
+
| `received` | `true` |
|
4990
|
+
| `completed` | `true` |
|
4991
|
+
| `workspace_id` | based on current workspace |
|
4992
|
+
| `exclude_dropbox_packages` | `true` or `false` depending if watching a dropbox|
|
4993
|
+
| `dropbox_id` | set accoring to `dropbox_name` |
|
4994
|
+
|
4848
4995
|
#### Example: Send a package with one file to two users, using their email
|
4849
4996
|
|
4850
4997
|
```bash
|
@@ -4875,7 +5022,7 @@ To list packages in a shared inbox, the query has to be specified with the the s
|
|
4875
5022
|
Additional parameters can be specified, as supported by the API (to find out available filters, consult the API definition, or use the web interface in developer mode).
|
4876
5023
|
The current workspace is added unless specified in the query.
|
4877
5024
|
|
4878
|
-
> **Note:** By default, `exclude_dropbox_packages` is set to true for user packages, and to false for shared inbox packages. This can be overridden in the query.
|
5025
|
+
> **Note:** By default, `exclude_dropbox_packages` is set to `true` for user packages, and to false for shared inbox packages. This can be overridden in the query.
|
4879
5026
|
|
4880
5027
|
Using shared inbox name:
|
4881
5028
|
|
@@ -4886,7 +5033,7 @@ ascli aoc packages list --query=@json:'{"dropbox_name":"My Shared Inbox","archiv
|
|
4886
5033
|
Using shared inbox identifier: first retrieve the id of the shared inbox, and then list packages with the appropriate filter.
|
4887
5034
|
|
4888
5035
|
```bash
|
4889
|
-
shared_box_id=$(ascli aoc packages shared_inboxes show --name='My Shared Inbox' --format=csv --display=data --fields=id
|
5036
|
+
shared_box_id=$(ascli aoc packages shared_inboxes show --name='My Shared Inbox' --format=csv --display=data --fields=id)
|
4890
5037
|
```
|
4891
5038
|
|
4892
5039
|
```bash
|
@@ -4938,6 +5085,26 @@ ascli aoc packages recv ALL --once-only=yes --lock-port=12345
|
|
4938
5085
|
|
4939
5086
|
Typically, one would execute this command on a regular basis, using the method of your choice: see [Scheduler](#scheduler).
|
4940
5087
|
|
5088
|
+
### Example: Content of a received Package
|
5089
|
+
|
5090
|
+
Some `node` operations are available for a package, such as `browse` and `find`.
|
5091
|
+
|
5092
|
+
To list the content of a package, use command `packages browse <package id> <folder>`:
|
5093
|
+
|
5094
|
+
```bash
|
5095
|
+
ascli aoc package browse my5CnbeWng /
|
5096
|
+
```
|
5097
|
+
|
5098
|
+
To list recursively, use command `find`.
|
5099
|
+
|
5100
|
+
To download only some of the files listed in the package, just add the path of the files on the command line.
|
5101
|
+
|
5102
|
+
For advanced users, it's also possible to pipe node information for the package and use node operations:
|
5103
|
+
|
5104
|
+
```bash
|
5105
|
+
ascli aoc package node_info <package id here> / --format=json --show-secrets=yes --display=data | ascli node -N --preset=@json:@stdin: access_key do self browse /
|
5106
|
+
```
|
5107
|
+
|
4941
5108
|
### Files
|
4942
5109
|
|
4943
5110
|
The Files application presents a **Home** folder to users in a given workspace.
|
@@ -5092,7 +5259,7 @@ For instructions, refer to section `find` for plugin `node`.
|
|
5092
5259
|
|
5093
5260
|
```bash
|
5094
5261
|
admin analytics transfers nodes
|
5095
|
-
admin analytics transfers organization --query=@json:'{"status":"completed","direction":"receive"}' --notify-to=my_email_external --notify-template=@ruby:'%Q{From: <%=from_name%> <<%=from_email%>>\nTo: <<%=to%>>\nSubject: <%=ev["files_completed"]%> files received\n\n<%=ev.to_yaml%>}'
|
5262
|
+
admin analytics transfers organization --query=@json:'{"status":"completed","direction":"receive","limit":2}' --notify-to=my_email_external --notify-template=@ruby:'%Q{From: <%=from_name%> <<%=from_email%>>\nTo: <<%=to%>>\nSubject: <%=ev["files_completed"]%> files received\n\n<%=ev.to_yaml%>}'
|
5096
5263
|
admin analytics transfers users --once-only=yes
|
5097
5264
|
admin application list
|
5098
5265
|
admin ats access_key create --cloud=aws --region=my_region --params=@json:'{"id":"ak_aws","name":"my test key AWS","storage":{"type":"aws_s3","bucket":"my_bucket","credentials":{"access_key_id":"my_access_key","secret_access_key":"my_secret_key"},"path":"/"}}'
|
@@ -5117,8 +5284,10 @@ admin group list
|
|
5117
5284
|
admin kms_profile list
|
5118
5285
|
admin node do %name:my_node_name --secret=my_ak_secret browse /
|
5119
5286
|
admin node do %name:my_node_name --secret=my_ak_secret delete /folder1
|
5287
|
+
admin node do %name:my_node_name --secret=my_ak_secret delete /folder_sub
|
5120
5288
|
admin node do %name:my_node_name --secret=my_ak_secret mkdir /folder1
|
5121
|
-
admin node do %name:my_node_name --secret=my_ak_secret
|
5289
|
+
admin node do %name:my_node_name --secret=my_ak_secret mkdir /folder_sub
|
5290
|
+
admin node do %name:my_node_name --secret=my_ak_secret v3 access_key create @json:'{"id":"testsub1","storage":{"path":"/folder_sub"}}'
|
5122
5291
|
admin node do %name:my_node_name --secret=my_ak_secret v3 access_key delete testsub1
|
5123
5292
|
admin node do %name:my_node_name --secret=my_ak_secret v3 events
|
5124
5293
|
admin node do %name:my_node_name delete test_shared_folder
|
@@ -5133,7 +5302,9 @@ admin package list --http-options=@json:'{"read_timeout":120.0}'
|
|
5133
5302
|
admin saml_configuration list
|
5134
5303
|
admin self show
|
5135
5304
|
admin short_link list
|
5136
|
-
admin subscription
|
5305
|
+
admin subscription account
|
5306
|
+
admin subscription usage
|
5307
|
+
admin subscription usage MONTH
|
5137
5308
|
admin user list
|
5138
5309
|
admin user modify %name:my_user_email @json:'{"deactivated":false}'
|
5139
5310
|
admin workspace list
|
@@ -5156,8 +5327,8 @@ files browse my_remote_file
|
|
5156
5327
|
files browse my_remote_folder
|
5157
5328
|
files browse my_remote_folder/
|
5158
5329
|
files delete /testsrc
|
5159
|
-
files download --transfer=alpha testdst/test_file.bin
|
5160
5330
|
files download --transfer=connect testdst/test_file.bin
|
5331
|
+
files download --transfer=desktop testdst/test_file.bin
|
5161
5332
|
files find /
|
5162
5333
|
files find / '\.partial$'
|
5163
5334
|
files find / @ruby:'->(f){f["type"].eql?("file")}'
|
@@ -5189,13 +5360,14 @@ files v3 info
|
|
5189
5360
|
gateway --pid-file=pid_aocfxgw https://localhost:12345/aspera/faspex &
|
5190
5361
|
org --url=my_public_link_recv_from_aoc_user
|
5191
5362
|
organization
|
5192
|
-
packages browse package_id3 /
|
5363
|
+
packages browse package_id3 /
|
5193
5364
|
packages list
|
5194
5365
|
packages list --query=@json:'{"dropbox_name":"my_shared_inbox_name","sort":"-received_at","archived":false,"received":true,"has_content":true,"exclude_dropbox_packages":false}'
|
5195
5366
|
packages receive ALL --once-only=yes --to-folder=. --lock-port=12345
|
5196
5367
|
packages receive ALL --once-only=yes --to-folder=. --lock-port=12345 --query=@json:'{"dropbox_name":"my_shared_inbox_name","archived":false,"received":true,"has_content":true,"exclude_dropbox_packages":false,"include_draft":false}' --ts=@json:'{"resume_policy":"sparse_csum","target_rate_kbps":50000}'
|
5197
5368
|
packages receive INIT --once-only=yes --query=@json:'{"dropbox_name":"my_shared_inbox_name"}'
|
5198
5369
|
packages receive package_id3 --to-folder=.
|
5370
|
+
packages receive package_id3 --to-folder=. /
|
5199
5371
|
packages send --workspace=my_workspace_shared_inbox --validate-metadata=yes @json:'{"name":"$(notdir test) PACKAGE_TITLE_BASE","recipients":["my_shared_inbox_meta"],"metadata":[{"input_type":"single-text","name":"Project Id","values":["123"]},{"input_type":"single-dropdown","name":"Type","values":["Opt2"]},{"input_type":"multiple-checkbox","name":"CheckThose","values":["Check1","Check2"]},{"input_type":"date","name":"Optional Date","values":["2021-01-13T15:02:00.000Z"]}]}' test_file.bin
|
5200
5372
|
packages send --workspace=my_workspace_shared_inbox --validate-metadata=yes @json:'{"name":"$(notdir test) PACKAGE_TITLE_BASE","recipients":["my_shared_inbox_meta"],"metadata":{"Project Id":"456","Type":"Opt2","CheckThose":["Check1","Check2"],"Optional Date":"2021-01-13T15:02:00.000Z"}}' test_file.bin
|
5201
5373
|
packages send --workspace=my_workspace_shared_inbox --validate-metadata=yes @json:'{"name":"$(notdir test) PACKAGE_TITLE_BASE","recipients":["my_shared_inbox_meta"],"metadata":{"Type":"Opt2","CheckThose":["Check1","Check2"],"Optional Date":"2021-01-13T15:02:00.000Z"}}' test_file.bin
|
@@ -5290,7 +5462,7 @@ ascli ats api_key create
|
|
5290
5462
|
|
5291
5463
|
```output
|
5292
5464
|
+--------+----------------------------------------------+
|
5293
|
-
|
|
5465
|
+
| field | value |
|
5294
5466
|
+--------+----------------------------------------------+
|
5295
5467
|
| id | ats_XXXXXXXXXXXXXXXXXXXXXXXX |
|
5296
5468
|
| secret | YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY |
|
@@ -5392,7 +5564,7 @@ delete my_inside_folder
|
|
5392
5564
|
delete my_upload_folder/to.delete
|
5393
5565
|
df
|
5394
5566
|
download my_inside_folder/test_file.bin --to-folder=. --transfer-info=@json:'{"wss":false,"resume":{"iter_max":1}}'
|
5395
|
-
download
|
5567
|
+
download my_large_file --to-folder=my_upload_folder --transfer=node --ts=@json:'{"resume_policy":"none"}'
|
5396
5568
|
du /
|
5397
5569
|
health transfer --to-folder=my_upload_folder --format=nagios
|
5398
5570
|
info
|
@@ -5410,10 +5582,10 @@ upload 'faux:///test1?100m' 'faux:///test2?100m' --to-folder=/Upload --ts=@json:
|
|
5410
5582
|
upload 'test_file.bin' --to-folder=my_inside_folder --ts=@json:'{"multi_session":3,"multi_session_threshold":1,"resume_policy":"none","target_rate_kbps":100000}' --transfer-info=@json:'{"spawn_delay_sec":2.5,"multi_incr_udp":false}' --progress-bar=yes
|
5411
5583
|
upload --sources=@ts --transfer-info=@json:'{"ascp_args":["--file-list","filelist.txt"]}' --to-folder=my_inside_folder
|
5412
5584
|
upload --sources=@ts --transfer-info=@json:'{"ascp_args":["--file-pair-list","file_pair_list.txt"]}'
|
5413
|
-
upload --sources=@ts --ts=@json:'{"paths":[{"source":"test_file.bin","destination":"my_inside_folder/other_name_4"}]}' --transfer=
|
5585
|
+
upload --sources=@ts --ts=@json:'{"paths":[{"source":"test_file.bin","destination":"my_inside_folder/other_name_4"}]}' --transfer=transferd
|
5414
5586
|
upload --src-type=pair 'test_file.bin' my_inside_folder/other_name_2 --notify-to=my_email_external --transfer-info=@json:'{"ascp_args":["-l","100m"]}'
|
5415
|
-
upload --src-type=pair --sources=@json:'["test_file.bin","my_inside_folder/other_name_3"]' --transfer-info=@json:'{"quiet":false}' --
|
5416
|
-
upload --src-type=pair test_file.bin my_upload_folder/other_name_5 --ts=@json:'{"cipher":"aes-192-gcm","content_protection":"encrypt","content_protection_password":"my_secret_here","cookie":"biscuit","create_dir":true,"delete_before_transfer":false,"delete_source":false,"exclude_newer_than":1,"exclude_older_than":10000,"fasp_port":33001,"http_fallback":false,"multi_session":0,"overwrite":"diff+older","precalculate_job_size":true,"preserve_access_time":true,"preserve_creation_time":true,"rate_policy":"fair","resume_policy":"sparse_csum","symlink_policy":"follow"}'
|
5587
|
+
upload --src-type=pair --sources=@json:'["test_file.bin","my_inside_folder/other_name_3"]' --transfer-info=@json:'{"quiet":false}' --progress=no
|
5588
|
+
upload --src-type=pair test_file.bin my_upload_folder/other_name_5 --ts=@json:'{"cipher":"aes-192-gcm","content_protection":"encrypt","content_protection_password":"my_secret_here","cookie":"biscuit","create_dir":true,"delete_before_transfer":false,"delete_source":false,"exclude_newer_than":"-1","exclude_older_than":"-10000","fasp_port":33001,"http_fallback":false,"multi_session":0,"overwrite":"diff+older","precalculate_job_size":true,"preserve_access_time":true,"preserve_creation_time":true,"rate_policy":"fair","resume_policy":"sparse_csum","symlink_policy":"follow"}'
|
5417
5589
|
upload --to-folder=my_upload_folder/target_hot --lock-port=12345 --transfer-info=@json:'{"ascp_args":["--remove-after-transfer","--remove-empty-directories","--exclude-newer-than=-8","--src-base","source_hot"]}' source_hot
|
5418
5590
|
```
|
5419
5591
|
|
@@ -5523,6 +5695,8 @@ This plugin gives access to capabilities provided by the HSTS node API.
|
|
5523
5695
|
The authentication is `username` and `password` or `access_key` and `secret` through options: `username` and `password`.
|
5524
5696
|
|
5525
5697
|
> **Note:** Capabilities of this plugin are used in other plugins which access to the node API, such as `aoc`, `ats`, `shares`.
|
5698
|
+
>
|
5699
|
+
> **Note:** This plugin can be used with any type of **Aspera Node**, either on-prem or ATS, provided that you have node api credentials. Those credentials can be either Node API user or Access Key (e.g. on ATS).
|
5526
5700
|
|
5527
5701
|
### File Operations
|
5528
5702
|
|
@@ -5583,10 +5757,10 @@ Examples of expressions:
|
|
5583
5757
|
ascli node access_keys do self find /Documents '*.txt'
|
5584
5758
|
```
|
5585
5759
|
|
5586
|
-
The following are examples of
|
5760
|
+
The following are examples of Ruby lambda code to be provided in the following template command:
|
5587
5761
|
|
5588
5762
|
```bash
|
5589
|
-
ascli node access_keys do self find / @ruby:'
|
5763
|
+
ascli node access_keys do self find / @ruby:'->(f){[code here]}'
|
5590
5764
|
```
|
5591
5765
|
|
5592
5766
|
> **Note:** Single quotes are used here above to protect the whole **Ruby** expression from the shell. Then double quotes are used for strings in the **Ruby** expression to not mix with the shell.
|
@@ -5634,7 +5808,7 @@ ascli node access_keys do self find / @ruby:'->(f){f["type"].eql?("file") and (D
|
|
5634
5808
|
When a transfer is run, its information is stored (typicall, 1 day) in the HSTS database (Redis).
|
5635
5809
|
This information can be retrieved with command: `transfer list`.
|
5636
5810
|
|
5637
|
-
If the number of
|
5811
|
+
If the number of transfers is too large, then the list will be retrieved using several API calls.
|
5638
5812
|
|
5639
5813
|
In addition, it is possible to list "only new information" using option `once_only`.
|
5640
5814
|
|
@@ -5642,7 +5816,7 @@ In addition, it is possible to list "only new information" using option `once_on
|
|
5642
5816
|
ascli node transfer list --once-only=yes
|
5643
5817
|
```
|
5644
5818
|
|
5645
|
-
The `
|
5819
|
+
The `iteration_token` that keeps memory of latest event is stored in the persistance repository of `ascli`.
|
5646
5820
|
To reset it, add option: `--query=@json:'{"reset": true}'`.
|
5647
5821
|
To list only a number of events, use the `max` parameter in query.
|
5648
5822
|
Other parameters are directly transmitted to the underlying API (`GET /ops/transfers`).
|
@@ -5792,7 +5966,7 @@ Bearer tokens are part of the **gen4/access key** API.
|
|
5792
5966
|
It follows the model of OAuth 2.
|
5793
5967
|
For example, they are used in Aspera on Cloud.
|
5794
5968
|
This is also available for developers for any application integrating Aspera.
|
5795
|
-
In this API, files, users and groups are identified by an id (a String
|
5969
|
+
In this API, files, users and groups are identified by an id (a `String`, e.g. `"125"`, not necessarily numerical).
|
5796
5970
|
|
5797
5971
|
Bearer tokens are typically generated by the authentication application and then recognized by the node API.
|
5798
5972
|
A bearer token is authorized on the node by creating `permissions` on a **folder**.
|
@@ -5804,6 +5978,8 @@ Bearer tokens can be generated using command `bearer_token`: it takes two argume
|
|
5804
5978
|
|
5805
5979
|
| parameter | Default | type | description |
|
5806
5980
|
| ------------------------ |-----------------------------|-----------|----------------------------------------------------------|
|
5981
|
+
| _scope | `user:all` | Special | Either `user:all` or `admin:all` |
|
5982
|
+
| _validity | 86400 | Special | Validity in seconds from now. |
|
5807
5983
|
| user_id | - | Mandatory | Identifier of user |
|
5808
5984
|
| scope | `node.<access_key>:<_scope>`| Mandatory | API scope, e.g. `node.<access_key>:<node scope>` |
|
5809
5985
|
| expires_at | `now+<_validity>` | Mandatory | Format: `%Y-%m-%dT%H:%M:%SZ` e.g. `2021-12-31T23:59:59Z` |
|
@@ -5811,12 +5987,10 @@ Bearer tokens can be generated using command `bearer_token`: it takes two argume
|
|
5811
5987
|
| group_ids | - | Optional | List of group ids |
|
5812
5988
|
| organization_id | - | Optional | Organization id |
|
5813
5989
|
| watermarking_json_base64 | - | Optional | Watermarking information (not used) |
|
5814
|
-
| _scope | `user:all` | Special | Either `user:all` or `admin:all` |
|
5815
|
-
| _validity | 86400 | Special | Validity in seconds from now. |
|
5816
5990
|
|
5817
5991
|
> **Note:** For convenience, `ascli` provides additional parameters `_scope` and `_validity`.
|
5818
5992
|
> They are not part of the API and are removed from the final payload.
|
5819
|
-
> They are used respectively to
|
5993
|
+
> They are used respectively to easily set a value for `scope` and `expires_at`.
|
5820
5994
|
|
5821
5995
|
#### Bearer token: Environment
|
5822
5996
|
|
@@ -5899,7 +6073,7 @@ Using `ascli`, an access key can be created using the `access_key create` on the
|
|
5899
6073
|
|
5900
6074
|
Now, let's assume we are the user, the only information received are:
|
5901
6075
|
|
5902
|
-
- The
|
6076
|
+
- The URL of the node API
|
5903
6077
|
- A Bearer token
|
5904
6078
|
- A file `id` for which we have access
|
5905
6079
|
|
@@ -5923,7 +6097,6 @@ access_key do my_ak_name delete test_nd_ak3
|
|
5923
6097
|
access_key do my_ak_name download test_nd_ak3 --to-folder=.
|
5924
6098
|
access_key do my_ak_name find my_test_folder
|
5925
6099
|
access_key do my_ak_name find my_test_folder @ruby:'->(f){f["name"].end_with?(".jpg")}'
|
5926
|
-
access_key do my_ak_name find my_test_folder exec:'f["name"].end_with?(".jpg")'
|
5927
6100
|
access_key do my_ak_name mkdir /tst_nd_ak
|
5928
6101
|
access_key do my_ak_name node_info /
|
5929
6102
|
access_key do my_ak_name rename /tst_nd_ak test_nd_ak2
|
@@ -5931,6 +6104,7 @@ access_key do my_ak_name show %id:1
|
|
5931
6104
|
access_key do my_ak_name show /test_nd_ak3
|
5932
6105
|
access_key do my_ak_name upload 'faux:///test_nd_ak3?100k' --default-ports=no
|
5933
6106
|
access_key do self permission %id:root_id create @json:'{"access_type":"user","access_id":"666"}'
|
6107
|
+
access_key do self permission / show 1
|
5934
6108
|
access_key do self show / --fields=id --output=root_id
|
5935
6109
|
access_key list
|
5936
6110
|
access_key set_bearer_key self @file:my_private_key
|
@@ -5968,7 +6142,7 @@ slash
|
|
5968
6142
|
space /
|
5969
6143
|
ssync bandwidth %name:my_node_sync
|
5970
6144
|
ssync counters %name:my_node_sync
|
5971
|
-
ssync create @json:'{"configuration":{"name":"my_node_sync","local":{"path":"
|
6145
|
+
ssync create @json:'{"configuration":{"name":"my_node_sync","local":{"path":"my_local_path_real"},"remote":{"host":"my_host","port":my_port,"user":"my_username","pass":"my_password_here","path":"my_remote_path"}}}'
|
5972
6146
|
ssync delete %name:my_node_sync
|
5973
6147
|
ssync files %name:my_node_sync
|
5974
6148
|
ssync list
|
@@ -6073,16 +6247,16 @@ Activation is in two steps:
|
|
6073
6247
|
- Click on `Create` Button
|
6074
6248
|
- Take note of Client Id (and Client Secret, but not used in current version)
|
6075
6249
|
|
6076
|
-
- The user
|
6250
|
+
- The user will authenticate with a private key and set the public key in his faspex 5 profile.
|
6077
6251
|
|
6252
|
+
**Note:** If you don't have a private key refer to section [Private Key](#private-key) to generate one.
|
6253
|
+
|
6078
6254
|
This operation is done by each user using the CLI.
|
6079
6255
|
|
6080
6256
|
- As user, click on the user logo, left to the app switcher on top right.
|
6081
6257
|
- Select `Account Settings`
|
6082
6258
|
- on the bottom in the text field: `Public key in PEM format` paste the **public** key corresponding to the private key used by the user.
|
6083
6259
|
|
6084
|
-
**Note:** If you don't have any refer to section [Private Key](#private-key)
|
6085
|
-
|
6086
6260
|
Then use these options:
|
6087
6261
|
|
6088
6262
|
```text
|
@@ -6147,16 +6321,22 @@ ascli config preset update f5boot --url=https://localhost/aspera/faspex --auth=b
|
|
6147
6321
|
|
6148
6322
|
```bash
|
6149
6323
|
admin accounts list
|
6324
|
+
admin alternate_addresses list
|
6150
6325
|
admin clean_deleted
|
6151
6326
|
admin contacts list
|
6152
6327
|
admin distribution_lists create @json:'{"name":"test4","contacts":[{"name":"john@example.com"}]}'
|
6153
6328
|
admin distribution_lists delete %name:test4
|
6154
6329
|
admin distribution_lists list --query=@json:'{"type":"global"}'
|
6155
|
-
admin event app
|
6330
|
+
admin event app --query=@json:'{"max":20}'
|
6156
6331
|
admin event web
|
6157
6332
|
admin jobs list --query=@json:'{"job_type":"email","status":"failed"}' --fields=id,error_desc
|
6158
6333
|
admin metadata_profiles list
|
6334
|
+
admin node browse %name:Local
|
6159
6335
|
admin node list
|
6336
|
+
admin node shared_folders %name:Local list
|
6337
|
+
admin node shared_folders %name:Local show %name:Main
|
6338
|
+
admin node shared_folders %name:Local user %name:Main list
|
6339
|
+
admin node show %name:Local
|
6160
6340
|
admin oauth_clients list --query=@json:'[["client_types[]","public"]]'
|
6161
6341
|
admin registrations list
|
6162
6342
|
admin saml_configs list
|
@@ -6175,6 +6355,8 @@ gateway --pid-file=pid_f5_fxgw https://localhost:12346/aspera/faspex &
|
|
6175
6355
|
health
|
6176
6356
|
invitation list
|
6177
6357
|
invitations create @json:'{"email_address":"aspera.user1+u@gmail.com"}'
|
6358
|
+
packages browse f5_pack_id --query=@json:'{"recursive":true}'
|
6359
|
+
packages delete f5_pack_id
|
6178
6360
|
packages list --box=my_shared_box_name
|
6179
6361
|
packages list --box=my_workgroup --group-type=workgroups
|
6180
6362
|
packages list --query=@json:'{"mailbox":"inbox","status":"completed"}'
|
@@ -6182,8 +6364,8 @@ packages receive --box=my_shared_box_name package_box_id1 --to-folder=.
|
|
6182
6364
|
packages receive --box=my_workgroup --group-type=workgroups workgroup_package_id1 --to-folder=.
|
6183
6365
|
packages receive ALL --once-only=yes --to-folder=.
|
6184
6366
|
packages receive INIT --once-only=yes
|
6185
|
-
packages receive
|
6186
|
-
packages send --shared-folder=%name:my_shared_folder_name @json:'{"title":"test title","recipients":["my_email_internal"]}' my_shared_folder_file
|
6367
|
+
packages receive f5_pack_id --to-folder=. --ts=@json:'{"content_protection_password":"my_secret_here"}'
|
6368
|
+
packages send --shared-folder=%name:my_shared_folder_name @json:'{"title":"test title","recipients":["my_email_internal"]}' my_shared_folder_file --fields=id --display=data --output=test
|
6187
6369
|
packages send --url=my_public_link_send_f5_user @json:'{"title":"test title"}' test_file.bin
|
6188
6370
|
packages send --url=my_public_link_send_shared_box @json:'{"title":"test title"}' test_file.bin
|
6189
6371
|
packages send @json:'{"title":"test title","recipients":["my_shared_box_name"],"metadata":{"Options":"Opt1","TextInput":"example text"}}' test_file.bin
|
@@ -6191,9 +6373,9 @@ packages send @json:'{"title":"test title","recipients":["my_workgroup"]}' test_
|
|
6191
6373
|
packages send @json:'{"title":"test title","recipients":[{"name":"my_username"}]my_meta}' test_file.bin --ts=@json:'{"content_protection_password":"my_secret_here"}'
|
6192
6374
|
packages show --box=my_shared_box_name package_box_id1
|
6193
6375
|
packages show --box=my_workgroup --group-type=workgroups workgroup_package_id1
|
6194
|
-
packages show
|
6195
|
-
packages status
|
6196
|
-
postprocessing --pid-file=pid_f5_postproc @json:'{"url":"
|
6376
|
+
packages show f5_pack_id
|
6377
|
+
packages status f5_pack_id
|
6378
|
+
postprocessing --pid-file=pid_f5_postproc @json:'{"url":"http://localhost:8088/asclihook","processing":{"script_folder":""}}' &
|
6197
6379
|
shared browse %name:my_src
|
6198
6380
|
shared list
|
6199
6381
|
shared_folders browse %name:my_shared_folder_name
|
@@ -6230,13 +6412,23 @@ To select another inbox, use option `box` with one of the following values:
|
|
6230
6412
|
|
6231
6413
|
### Faspex 5: Send a package
|
6232
6414
|
|
6233
|
-
|
6415
|
+
A package can be sent with the command:
|
6416
|
+
|
6417
|
+
```bash
|
6418
|
+
ascli faspex5 packages send [extended value: Hash with package info ] [files...]
|
6419
|
+
```
|
6234
6420
|
|
6235
|
-
The
|
6421
|
+
The `Hash` creation **Command Parameter** provided to command corresponds to the Faspex 5 API: `POST /packages` (refer to the API reference for a full list of parameters, or look at request in browser).
|
6236
6422
|
|
6237
6423
|
Required fields are `title` and `recipients`.
|
6238
6424
|
|
6239
|
-
Example
|
6425
|
+
Example (assuming a default preset is created for the connection information):
|
6426
|
+
|
6427
|
+
```bash
|
6428
|
+
ascli faspex5 packages send @json:'{"title":"some title","recipients":["user@example.com"]}' mybygfile1
|
6429
|
+
```
|
6430
|
+
|
6431
|
+
Longer example for the ayload of `@json:`:
|
6240
6432
|
|
6241
6433
|
```json
|
6242
6434
|
{"title":"some title","recipients":[{"recipient_type":"user","name":"user@example.com"}]}
|
@@ -6320,7 +6512,7 @@ To list the content of a package, use command `faspex5 packages browse /`.
|
|
6320
6512
|
|
6321
6513
|
Option `query` is available.
|
6322
6514
|
|
6323
|
-
To list recursively add option `--query=@json:{"recursive":true}`.
|
6515
|
+
To list recursively add option `--query=@json:'{"recursive":true}'`.
|
6324
6516
|
|
6325
6517
|
> **Note:** Option `recursive` makes recursive API calls, so it can take a long time on large packages.
|
6326
6518
|
|
@@ -6393,15 +6585,15 @@ ascli faspex5 admin shared create @json:'{"name":"the shared inbox","metadata_pr
|
|
6393
6585
|
### Faspex 5: List content in Shared folder and send package from remote source
|
6394
6586
|
|
6395
6587
|
```bash
|
6396
|
-
ascli faspex5 shared_folders list
|
6588
|
+
ascli faspex5 shared_folders list --fields=id,name
|
6397
6589
|
```
|
6398
6590
|
|
6399
6591
|
```markdown
|
6400
|
-
|
6401
|
-
| id | name |
|
6402
|
-
|
6403
|
-
| 3 | partages |
|
6404
|
-
|
6592
|
+
+----+----------+
|
6593
|
+
| id | name |
|
6594
|
+
+----+----------+
|
6595
|
+
| 3 | partages |
|
6596
|
+
+----+----------+
|
6405
6597
|
```
|
6406
6598
|
|
6407
6599
|
```bash
|
@@ -6444,13 +6636,13 @@ Private invitations are for internal users, provide the user or shared inbox ide
|
|
6444
6636
|
|
6445
6637
|
> **Note:** Operation requires admin level.
|
6446
6638
|
|
6447
|
-
|
6639
|
+
The default automated cleanup period can be displayed with:
|
6448
6640
|
|
6449
6641
|
```bash
|
6450
6642
|
ascli faspex5 admin configuration show --fields=days_before_deleting_package_records
|
6451
6643
|
```
|
6452
6644
|
|
6453
|
-
This parameter can
|
6645
|
+
This parameter can be modified with:
|
6454
6646
|
|
6455
6647
|
```bash
|
6456
6648
|
ascli faspex5 admin configuration modify @json:'{"days_before_deleting_package_records":30}'
|
@@ -6462,6 +6654,8 @@ To start package purge, i.e. permanently remove packages marked for deletion old
|
|
6462
6654
|
ascli faspex5 admin clean_deleted
|
6463
6655
|
```
|
6464
6656
|
|
6657
|
+
> **Note:** The expiration perid taken by default is the one from `admin configuration show`. To use a different period than the default, specify it on command line with: `@json:'{"days_before_deleting_package_records":15}'`
|
6658
|
+
|
6465
6659
|
To delete all packages, one can use the following command:
|
6466
6660
|
|
6467
6661
|
```bash
|
@@ -6469,12 +6663,32 @@ ascli faspex5 packages list --box=ALL --format=yaml --fields=id | ascli faspex5
|
|
6469
6663
|
```
|
6470
6664
|
|
6471
6665
|
> **Note:** Above command will mark all packages for deletion, and will be permanently removed after the configured period (`clean_deleted` command).
|
6472
|
-
> It is possible to add a filter to the list command to only delete packages matching some criteria, e.g. using `--select=@ruby
|
6666
|
+
> It is possible to add a filter to the list command to only delete packages matching some criteria, e.g. using `--select=@ruby:'->(p){...}'` on `packages list`.
|
6667
|
+
|
6668
|
+
### Faspex 5: Admin: Unlock user
|
6669
|
+
|
6670
|
+
To unlock a user, you can de-activate and then re-activate the user:
|
6671
|
+
|
6672
|
+
```bash
|
6673
|
+
ascli faspex5 admin accounts modify %name:some.user@example.com @json:'{"account_activated":false}'
|
6674
|
+
```
|
6675
|
+
|
6676
|
+
```bash
|
6677
|
+
ascli faspex5 admin accounts modify %name:some.user@example.com @json:'{"account_activated":true}'
|
6678
|
+
```
|
6679
|
+
|
6680
|
+
> **Note:** here we use the convenient percent selector, but the numerical if can be used as well.
|
6681
|
+
|
6682
|
+
To send a password reset link to a user, use command `reset_password` on the `account`.
|
6473
6683
|
|
6474
6684
|
### Faspex 5: Faspex 4-style postprocessing
|
6475
6685
|
|
6476
|
-
|
6477
|
-
It implements Faspex 5 web hooks
|
6686
|
+
The command command `ascli faspex5 postprocessing` emulates Faspex 4 postprocessing script execution in Faspex 5.
|
6687
|
+
It implements Faspex 5 web hooks and calls a script with the same environment variables as set by Faspex 4.
|
6688
|
+
Environment variables at set to the values provided by the web hook which are the same as Faspex 4 postprocessing.
|
6689
|
+
|
6690
|
+
It allows to quickly migrate workflows to Faspex 5 while preserving scripts.
|
6691
|
+
Nevertheless, on long term, a native approach shall be considered, such as using Aspera Orchestrator or other workflow engine.
|
6478
6692
|
|
6479
6693
|
It is invoked like this:
|
6480
6694
|
|
@@ -6482,41 +6696,46 @@ It is invoked like this:
|
|
6482
6696
|
ascli faspex5 postprocessing @json:'{"url":"http://localhost:8080/processing"}'
|
6483
6697
|
```
|
6484
6698
|
|
6485
|
-
The following parameters are supported
|
6699
|
+
The following parameters are supported in the extended value `Hash`:
|
6486
6700
|
|
6487
|
-
| parameter | type
|
6488
|
-
|
6489
|
-
| url |
|
6490
|
-
| certificate |
|
6491
|
-
| certificate.key |
|
6492
|
-
| certificate.cert |
|
6493
|
-
| certificate.chain |
|
6494
|
-
| processing |
|
6495
|
-
| processing.script_folder |
|
6496
|
-
| processing.fail_on_error |
|
6497
|
-
| processing.timeout_seconds |
|
6701
|
+
| parameter | type | default | description |
|
6702
|
+
|----------------------------|----------|---------|-----------------------------------------------------|
|
6703
|
+
| url | `String` | `http://localhost:8080` | Base URL on which requests are listened, a path can be provided. | <!-- markdownlint-disable-line -->
|
6704
|
+
| certificate | `Hash` | nil | Certificate information (if URL is HTTPS) |
|
6705
|
+
| certificate.key | `String` | nil | Path to private key file |
|
6706
|
+
| certificate.cert | `String` | nil | Path to certificate |
|
6707
|
+
| certificate.chain | `String` | nil | Path to certificate chain |
|
6708
|
+
| processing | `Hash` | nil | Behavior of post processing |
|
6709
|
+
| processing.script_folder | `String` | . | Prefix added to script path |
|
6710
|
+
| processing.fail_on_error | `Bool` | false | Fail if true and process exits with non zero code |
|
6711
|
+
| processing.timeout_seconds | `Integer`| 60 | Max. execution time before script is killed |
|
6498
6712
|
|
6499
|
-
Parameter `url` defines:
|
6713
|
+
Parameter `url` (base URL) defines:
|
6500
6714
|
|
6501
6715
|
- If `http` or `https` is used
|
6502
|
-
- The local port number
|
6503
|
-
- The **base path**, i.e. the path under which requests are received.
|
6716
|
+
- The local port number (default 443 for HTTPS, 80 for HTTP)
|
6717
|
+
- The **base path**, i.e. the path under which requests are received, if a reverse proxy is used this can be used to route.
|
6504
6718
|
|
6505
6719
|
When a request is received the following happens:
|
6506
6720
|
|
6507
|
-
-
|
6508
|
-
- It removes the **base path**
|
6721
|
+
- `ascli` gets the path of the URL called
|
6722
|
+
- It removes the **base path** of base URL.
|
6509
6723
|
- It prepends it with the value of `script_folder`
|
6510
6724
|
- It executes the script
|
6511
6725
|
- Upon success, a success code is returned
|
6512
6726
|
|
6513
|
-
|
6727
|
+
For example:
|
6514
6728
|
|
6515
|
-
|
6729
|
+
The base URL is defined as: `http://localhost:8080/processing`.
|
6730
|
+
The parameter `script_folder` is set to `/opt/scripts`
|
6516
6731
|
|
6517
|
-
|
6732
|
+
In Faspex 5, the URL of the webhook endpoint shall be reachable from within Faspex containers.
|
6733
|
+
For example, if `ascli` in running in the base host, the URL hostname shall not be localhost, as this refers to the local address inside Faspex container.
|
6734
|
+
Instead, one can specify the IP address of the host or `host.containers.internal`.
|
6518
6735
|
|
6519
|
-
|
6736
|
+
**Webhook endpoint URI** : `http://host.containers.internal:8080/processing/script1.sh`
|
6737
|
+
|
6738
|
+
Then the postprocessing script executed will be `/opt/scripts/script1.sh`.
|
6520
6739
|
|
6521
6740
|
### Faspex 5: Faspex 4 Gateway
|
6522
6741
|
|
@@ -6524,7 +6743,7 @@ Environment variables at set to the values provided by the web hook which are th
|
|
6524
6743
|
|
6525
6744
|
For legacy faspex client applications that use the `send` API (only) of Faspex v4, the command `gateway` provides the capability to present an API compatible with Faspex 4, and it will call the Faspex 5 API.
|
6526
6745
|
|
6527
|
-
It takes a single argument which is the
|
6746
|
+
It takes a single argument which is the URL at which the gateway will be located (locally):
|
6528
6747
|
|
6529
6748
|
```bash
|
6530
6749
|
ascli faspex5 gateway https://localhost:12345/aspera/faspex
|
@@ -6551,6 +6770,8 @@ curl -H "Authorization: $(ascli ascli bearer)" https://faspex5.example.com/asper
|
|
6551
6770
|
|
6552
6771
|
## Plugin: `faspex`: IBM Aspera Faspex v4
|
6553
6772
|
|
6773
|
+
> **Note:** Faspex v4 is end of support since Sept. 30th, 2024. So this plugin for faspex v4 is deprecated. If you still need to use Faspex4, then use `ascli` version 4.19.0 or earlier.
|
6774
|
+
>
|
6554
6775
|
> **Note:** For full details on Faspex API, refer to: [Reference on Developer Site](https://developer.ibm.com/apis/catalog/?search=faspex)
|
6555
6776
|
|
6556
6777
|
This plugin uses APIs versions 3 Faspex v4.
|
@@ -6846,7 +7067,7 @@ If you don't have credentials but have access to the IBM Cloud console, then use
|
|
6846
7067
|
If you have those parameters already, then following options shall be provided:
|
6847
7068
|
|
6848
7069
|
- `bucket` bucket name
|
6849
|
-
- `endpoint` storage endpoint
|
7070
|
+
- `endpoint` storage endpoint URL, e.g. `https://s3.hkg02.cloud-object-storage.appdomain.cloud`
|
6850
7071
|
- `apikey` API Key
|
6851
7072
|
- `crn` resource instance id
|
6852
7073
|
|
@@ -6932,7 +7153,7 @@ ascli cos node info
|
|
6932
7153
|
ascli cos node upload 'faux:///sample1G?1g'
|
6933
7154
|
```
|
6934
7155
|
|
6935
|
-
> **Note:** A dummy file `sample1G` of size 2GB is generated using the `faux` PVCL (
|
7156
|
+
> **Note:** A dummy file `sample1G` of size 2GB is generated using the `faux` PVCL scheme (see previous section and `man ascp`), but you can, of course, send a real file by specifying a real file path instead.
|
6936
7157
|
|
6937
7158
|
### Cos sample commands
|
6938
7159
|
|
@@ -7022,13 +7243,17 @@ To display the value, use `asuserdata`:
|
|
7022
7243
|
|
7023
7244
|
```bash
|
7024
7245
|
asuserdata -a | grep max_request_file_create_size_kb
|
7246
|
+
```
|
7025
7247
|
|
7248
|
+
```console
|
7026
7249
|
max_request_file_create_size_kb: "1024"
|
7250
|
+
```
|
7027
7251
|
|
7252
|
+
```bash
|
7028
7253
|
asconfigurator -x "server; max_request_file_create_size_kb,16384"
|
7029
7254
|
```
|
7030
7255
|
|
7031
|
-
If you use a value different than 16777216
|
7256
|
+
If you use a value different than `16777216`, then specify it using option `max_size`.
|
7032
7257
|
|
7033
7258
|
> **Note:** The HSTS parameter (`max_request_file_create_size_kb`) is in **kiloBytes** while the generator parameter is in **Bytes** (factor of 1024).
|
7034
7259
|
|
@@ -7036,12 +7261,12 @@ If you use a value different than 16777216, then specify it using option `max_si
|
|
7036
7261
|
|
7037
7262
|
`ascli` requires the following external tools available in the `PATH`:
|
7038
7263
|
|
7039
|
-
- **ImageMagick**
|
7264
|
+
- **ImageMagick** v7+: `magick` `composite`
|
7040
7265
|
- **OptiPNG** : `optipng`
|
7041
7266
|
- **FFmpeg** : `ffmpeg` `ffprobe`
|
7042
|
-
- **Libreoffice** : `
|
7267
|
+
- **Libreoffice** : `unoconv`
|
7043
7268
|
|
7044
|
-
Here shown on Redhat/
|
7269
|
+
Here shown on Redhat/Rocky Linux.
|
7045
7270
|
|
7046
7271
|
Other OSes should work as well, but are note tested.
|
7047
7272
|
|
@@ -7075,9 +7300,9 @@ curl -s https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.ta
|
|
7075
7300
|
|
7076
7301
|
If you don't want to have preview for office documents or if it is too complex you can skip office document preview generation by using option: `--skip-types=office`
|
7077
7302
|
|
7078
|
-
The generation of preview in based on the use of `unoconv
|
7303
|
+
The generation of preview in based on the use of Libreoffice's `unoconv`.
|
7079
7304
|
|
7080
|
-
-
|
7305
|
+
- RHEL 8/Rocky Linux 8+
|
7081
7306
|
|
7082
7307
|
```bash
|
7083
7308
|
dnf install unoconv
|
@@ -7281,6 +7506,7 @@ If the preview generator does not have access to files on the file system (it is
|
|
7281
7506
|
|
7282
7507
|
```bash
|
7283
7508
|
check --skip-types=office
|
7509
|
+
events --once-only=yes --skip-types=office --log-level=info
|
7284
7510
|
scan --scan-id=1 --skip-types=office --log-level=info --file-access=remote --ts=@json:'{"target_rate_kbps":1000000}'
|
7285
7511
|
scan --skip-types=office --log-level=info
|
7286
7512
|
show --base=test my_docx
|
@@ -7385,7 +7611,7 @@ Interesting `ascp` features are found in its arguments: (see `ascp` manual):
|
|
7385
7611
|
|
7386
7612
|
> **Note:** `ascli` takes transfer parameters exclusively as a [**transfer-spec**](#transfer-specification), with `ts` option.
|
7387
7613
|
>
|
7388
|
-
> **Note:**
|
7614
|
+
> **Note:** Usual native `ascp` arguments are available as standard [**transfer-spec**](#transfer-specification) parameters, but not special or advanced options.
|
7389
7615
|
>
|
7390
7616
|
> **Note:** Only for the [`direct`](#agent-direct) transfer agent (not others, like connect or node), native `ascp` arguments can be provided with parameter `ascp_args` of option `transfer_info` .
|
7391
7617
|
|