aspera-cli 4.0.0.pre3 → 4.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +695 -205
- data/bin/dascli +13 -0
- data/docs/README.erb.md +615 -157
- data/docs/test_env.conf +23 -5
- data/docs/transfer_spec.html +1 -1
- data/examples/aoc.rb +14 -3
- data/examples/faspex4.rb +78 -0
- data/lib/aspera/aoc.rb +87 -108
- data/lib/aspera/cli/formater.rb +2 -0
- data/lib/aspera/cli/main.rb +46 -34
- data/lib/aspera/cli/plugin.rb +9 -4
- data/lib/aspera/cli/plugins/alee.rb +1 -1
- data/lib/aspera/cli/plugins/aoc.rb +207 -182
- data/lib/aspera/cli/plugins/ats.rb +2 -2
- data/lib/aspera/cli/plugins/config.rb +173 -117
- data/lib/aspera/cli/plugins/console.rb +2 -2
- data/lib/aspera/cli/plugins/faspex.rb +51 -36
- data/lib/aspera/cli/plugins/faspex5.rb +82 -41
- data/lib/aspera/cli/plugins/node.rb +3 -3
- data/lib/aspera/cli/plugins/preview.rb +35 -25
- data/lib/aspera/cli/plugins/server.rb +23 -8
- data/lib/aspera/cli/transfer_agent.rb +7 -6
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/cos_node.rb +33 -28
- data/lib/aspera/environment.rb +2 -2
- data/lib/aspera/fasp/connect.rb +28 -21
- data/lib/aspera/fasp/http_gw.rb +140 -28
- data/lib/aspera/fasp/installation.rb +101 -53
- data/lib/aspera/fasp/local.rb +88 -45
- data/lib/aspera/fasp/manager.rb +15 -0
- data/lib/aspera/fasp/node.rb +4 -4
- data/lib/aspera/fasp/parameters.rb +6 -18
- data/lib/aspera/fasp/resume_policy.rb +13 -12
- data/lib/aspera/log.rb +1 -1
- data/lib/aspera/node.rb +61 -1
- data/lib/aspera/oauth.rb +49 -46
- data/lib/aspera/persistency_folder.rb +9 -4
- data/lib/aspera/preview/file_types.rb +53 -21
- data/lib/aspera/preview/generator.rb +3 -3
- data/lib/aspera/rest.rb +29 -18
- data/lib/aspera/secrets.rb +20 -0
- data/lib/aspera/temp_file_manager.rb +19 -0
- data/lib/aspera/web_auth.rb +105 -0
- metadata +42 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 89eb5bdf4ecda69281c147ad7e2da3027e98a55316f51774c3504c680c4411e4
|
4
|
+
data.tar.gz: 5d8f34bf429f575495890b656df0598f94a4ea67aa8d373d756ea7449c729562
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5a4c5f67e5f9685a1e11e7c1dc8fce6474157471ca5d5d7ad3583b4318a268a04f2fc3b3dcd84c0866f5ccb41a73596e28921d607311347c9537ec1cacec194
|
7
|
+
data.tar.gz: 40901b7baa26597164855e3f66b347666e37737315c075027a8dad81054fde424dd78c3e3432cd40093d7bb06af060981f6643b91a766e08ffe9c86b9d673f93
|
data/README.md
CHANGED
@@ -1,30 +1,75 @@
|
|
1
1
|
[comment1]: # (Do not edit this README.md, edit docs/README.erb.md, for details, read docs/README.md)
|
2
|
-
# `ascli` :
|
2
|
+
# `ascli` : Command Line Interface for IBM Aspera products
|
3
3
|
|
4
|
-
Version : 4.
|
4
|
+
Version : 4.2.1
|
5
5
|
|
6
6
|
_Laurent/2016-2021_
|
7
7
|
|
8
|
-
This gem provides a command line interface to Aspera Applications.
|
8
|
+
This gem provides `ascli`: a command line interface to Aspera Applications.
|
9
9
|
|
10
|
-
|
11
|
-
[https://rubygems.org/gems/aspera-cli](https://rubygems.org/gems/aspera-cli)
|
10
|
+
`ascli` is a also great tool to learn Aspera APIs.
|
12
11
|
|
13
|
-
|
12
|
+
Ruby Gem: [https://rubygems.org/gems/aspera-cli](https://rubygems.org/gems/aspera-cli)
|
14
13
|
|
15
|
-
|
14
|
+
Ruby Doc: [https://www.rubydoc.info/gems/aspera-cli](https://www.rubydoc.info/gems/aspera-cli)
|
16
15
|
|
17
|
-
|
16
|
+
Ruby version must be >= > 2.4
|
18
17
|
|
19
|
-
|
18
|
+
# <a name="when_to_use"></a>When to use and when not to use
|
20
19
|
|
21
|
-
|
22
|
-
|
23
|
-
*
|
20
|
+
`ascli` is designed to be used as a command line tool to:
|
21
|
+
|
22
|
+
* execute commands on Aspera products
|
23
|
+
* transfer to/from Aspera products
|
24
|
+
|
25
|
+
So it is designed for:
|
26
|
+
|
27
|
+
* Interactive operations on a text terminal (typically, VT100 compatible)
|
28
|
+
* Batch operations in (shell) scripts (e.g. cron job)
|
29
|
+
|
30
|
+
`ascli` can be seen as a command line tool integrating:
|
31
|
+
|
32
|
+
* a configuration file (config.yaml) and advanced command line options
|
33
|
+
* cURL (for REST calls)
|
34
|
+
* Aspera transfer (ascp)
|
35
|
+
|
36
|
+
One might be tempted to use it as an integration element, e.g. by building a command line programmatically, and then executing it. It is generally not a good idea.
|
37
|
+
For such integration cases, e.g. performing operations and transfer to aspera products, it is preferred to use [Aspera APIs](https://ibm.biz/aspera_api):
|
38
|
+
|
39
|
+
* Product APIs (REST) : e.g. AoC, Faspex, node
|
40
|
+
* Transfer SDK : with gRPC interface and laguage stubs (C, C++, Python, .NET/C#, java, ruby, etc...)
|
41
|
+
|
42
|
+
Using APIs (application REST API and transfer SDK) will prove to be easier to develop and maintain.
|
43
|
+
|
44
|
+
For scripting and ad'hoc command line operations, `ascli` is perfect.
|
45
|
+
|
46
|
+
# Notations
|
24
47
|
|
25
48
|
In examples, command line operations (starting with `$`) are shown using a standard shell: `bash` or `zsh`.
|
49
|
+
Prompt `# ` refers to user `root`, prompt `xfer$ ` refer to user `xfer`.
|
50
|
+
|
51
|
+
Command line parameters in examples beginning with `my_`, like `my_param_value` are user-provided value and not fixed value commands.
|
52
|
+
|
53
|
+
# <a name="parsing"></a>Shell and Command line parsing
|
54
|
+
|
55
|
+
`ascli` is typically executed in a shell, either interactively or in a script. `ascli` receives its arguments from this shell.
|
26
56
|
|
27
|
-
|
57
|
+
On Linux and Unix environments, this is typically a POSIX shell (bash, zsh, ksh, sh). In this environment shell command line parsing applies before `ascli` (Ruby) is executed, e.g. [bash shell operation](https://www.gnu.org/software/bash/manual/bash.html#Shell-Operation). Ruby receives a list parameters and gives it to `ascli`. So special character handling (quotes, spaces, env vars, ...) is done in the shell.
|
58
|
+
|
59
|
+
On Windows, `cmd` is typically used. Windows process creation does not receive the list of arguments but just the whole line. It's up to the program to parse arguments. Ruby follows the Microsoft C/C++ parameter parsing rules.
|
60
|
+
|
61
|
+
* [Windows: How Command Line Parameters Are Parsed](https://daviddeley.com/autohotkey/parameters/parameters.htm#RUBY)
|
62
|
+
* [Understand Quoting and Escaping of Windows Command Line Arguments](http://www.windowsinspired.com/understanding-the-command-line-string-and-arguments-received-by-a-windows-program/)
|
63
|
+
|
64
|
+
In case of doubt of argument values after parsing test like this:
|
65
|
+
|
66
|
+
```
|
67
|
+
$ ascli conf echo "Hello World" arg2 3
|
68
|
+
"Hello World"
|
69
|
+
ERROR: Argument: unprocessed values: ["arg2", "3"]
|
70
|
+
```
|
71
|
+
|
72
|
+
`echo` displays the value of the first argument using ruby syntax (strings get double quotes) after command line parsing (shell) and extended value parsing (ascli), next command line arguments are shown in the error message.
|
28
73
|
|
29
74
|
# Quick Start
|
30
75
|
|
@@ -36,7 +81,7 @@ Once the gem is installed, `ascli` shall be accessible:
|
|
36
81
|
|
37
82
|
```
|
38
83
|
$ ascli --version
|
39
|
-
4.
|
84
|
+
4.2.1
|
40
85
|
```
|
41
86
|
|
42
87
|
## First use
|
@@ -45,9 +90,10 @@ Once installation is completed, you can proceed to the first use with a demo ser
|
|
45
90
|
|
46
91
|
If you want to test with Aspera on Cloud, jump to section: [Wizard](#aocwizard)
|
47
92
|
|
48
|
-
|
93
|
+
To test with Aspera demo transfer server, setup the environment and then test:
|
49
94
|
|
50
95
|
```
|
96
|
+
$ ascli config initdemo
|
51
97
|
$ ascli server browse /
|
52
98
|
:............:...........:......:........:...........................:.......................:
|
53
99
|
: zmode : zuid : zgid : size : mtime : name :
|
@@ -67,7 +113,7 @@ If you want to use `ascli` with another server, and in order to make further cal
|
|
67
113
|
* download a file
|
68
114
|
|
69
115
|
```
|
70
|
-
$ ascli config id myserver update --url=ssh://demo.asperasoft.com:33001 --username=asperaweb --password=
|
116
|
+
$ ascli config id myserver update --url=ssh://demo.asperasoft.com:33001 --username=asperaweb --password=_demo_pass_
|
71
117
|
updated: myserver
|
72
118
|
$ ascli config id default set server myserver
|
73
119
|
updated: default→server to myserver
|
@@ -101,79 +147,159 @@ Then, follow the section relative to the product you want to interact with ( Asp
|
|
101
147
|
|
102
148
|
# <a name="installation"></a>Installation
|
103
149
|
|
104
|
-
|
150
|
+
It is possible to install *either* directly on the host operating system (Linux, Windows, Macos) or as a docker container.
|
151
|
+
|
152
|
+
The direct installation is recommended and consists in installing:
|
105
153
|
|
106
|
-
* [Ruby](#ruby)
|
154
|
+
* [Ruby](#ruby) version >= > 2.4
|
107
155
|
* [aspera-cli](#the_gem)
|
108
|
-
* [
|
156
|
+
* [Aspera SDK (ascp)](#fasp_prot)
|
157
|
+
|
158
|
+
The following sections provide information on the various installation methods.
|
159
|
+
|
160
|
+
An internet connection is required for the installation. If you dont have internet for the installation, refer to section [Installation without internet access](#offline_install).
|
161
|
+
|
162
|
+
## Docker container
|
163
|
+
|
164
|
+
Use this method only if you know what you do, else use the standard recommended method as described here above.
|
109
165
|
|
110
|
-
|
166
|
+
This method installs a docker image that contains: Ruby, ascli and the FASP sdk.
|
167
|
+
|
168
|
+
Ensure that you have Docker installed.
|
169
|
+
|
170
|
+
```
|
171
|
+
$ docker --version
|
172
|
+
```
|
173
|
+
|
174
|
+
Download the wrapping script:
|
175
|
+
|
176
|
+
```
|
177
|
+
$ curl -o ascli https://raw.githubusercontent.com/IBM/aspera-cli/develop/bin/dascli
|
178
|
+
$ chmod a+x ascli
|
179
|
+
```
|
180
|
+
|
181
|
+
Install the container image:
|
182
|
+
|
183
|
+
```
|
184
|
+
$ ./ascli install
|
185
|
+
```
|
186
|
+
|
187
|
+
Start using it !
|
188
|
+
|
189
|
+
Note that the tool is run in the container, so transfers are also executed in the container, not calling host.
|
190
|
+
|
191
|
+
The wrapping script maps the container folder `/usr/src/app/config` to configuration folder `$HOME/.aspera/ascli` on host.
|
192
|
+
|
193
|
+
To transfer to/from the native host, you will need to map a volume in docker or use the config folder (already mapped).
|
194
|
+
To add local storage as a volume edit the script: ascli and add a `--volume` stanza.
|
111
195
|
|
112
196
|
## <a name="ruby"></a>Ruby
|
113
197
|
|
198
|
+
Use this method to install on the native host.
|
199
|
+
|
114
200
|
A ruby interpreter is required to run the tool or to use the gem and tool.
|
115
|
-
|
116
|
-
|
117
|
-
|
201
|
+
|
202
|
+
Ruby minimum version: > 2.4. Ruby version 3 is also supported.
|
203
|
+
|
204
|
+
*Ruby can be installed using any method* : rpm, yum, dnf, rvm, brew, windows installer, ... .
|
118
205
|
|
119
206
|
Refer to the following sections for a proposed method for specific operating systems.
|
120
207
|
|
121
|
-
|
208
|
+
The recommended installation method is `rvm` for systems with "bash-like" shell (Linux, Macos, Windows with cygwin, etc...).
|
209
|
+
If the generic install is not suitable (e.g. Windows, no cygwin), you can use one of OS-specific install method.
|
210
|
+
If you have a simpler better way to install Ruby version >= > 2.4 : use it !
|
211
|
+
|
212
|
+
### Generic: RVM: single user installation (not root)
|
122
213
|
|
214
|
+
Use this method which provides more flexibility.
|
123
215
|
|
124
|
-
|
216
|
+
Install "rvm": follow [https://rvm.io/](https://rvm.io/) :
|
217
|
+
|
218
|
+
Install the 2 keys
|
125
219
|
|
126
220
|
```
|
127
|
-
$
|
221
|
+
$ gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
|
128
222
|
```
|
129
223
|
|
130
|
-
|
224
|
+
Execute the shell/curl command. As regular user, it install in the user's home: `~/.rvm` .
|
131
225
|
|
132
226
|
```
|
133
|
-
$
|
227
|
+
$ \curl -sSL https://get.rvm.io | bash -s stable
|
228
|
+
```
|
229
|
+
|
230
|
+
If you keep the same terminal (ont needed if re-login):
|
231
|
+
|
134
232
|
```
|
233
|
+
$ source ~/.rvm/scripts/rvm
|
234
|
+
```
|
235
|
+
|
236
|
+
It is advised to get one of the pre-compiled ruby version, you can list with:
|
135
237
|
|
136
|
-
|
238
|
+
```
|
239
|
+
$ rvm list --remote
|
240
|
+
```
|
137
241
|
|
138
|
-
Install
|
242
|
+
Install the chosen pre-compiled Ruby version:
|
139
243
|
|
140
|
-
|
244
|
+
```
|
245
|
+
$ rvm install 2.7.2 --binary
|
246
|
+
```
|
141
247
|
|
142
|
-
|
248
|
+
Ruby is now installed for the user, go on to Gem installation.
|
143
249
|
|
144
|
-
|
250
|
+
### Generic: RVM: global installation (as root)
|
145
251
|
|
146
|
-
|
252
|
+
Follow the same method as single user install, but execute as "root".
|
147
253
|
|
148
|
-
|
149
|
-
|
254
|
+
As root, it installs by default in /usr/local/rvm for all users and creates `/etc/profile.d/rvm.sh`.
|
255
|
+
One can install in another location with :
|
150
256
|
|
151
257
|
```
|
152
|
-
curl -sSL https://get.rvm.io | bash -s -- --path /usr/local
|
258
|
+
# curl -sSL https://get.rvm.io | bash -s -- --path /usr/local
|
153
259
|
```
|
154
260
|
|
155
|
-
|
261
|
+
As root, make sure this will not collide with other application using Ruby (e.g. Faspex).
|
262
|
+
If so, one can rename the login script: `mv /etc/profile.d/rvm.sh /etc/profile.d/rvm.sh.ok`.
|
263
|
+
To activate ruby (and ascli) later, source it:
|
156
264
|
|
157
265
|
```
|
158
|
-
# rvm
|
266
|
+
# source /etc/profile.d/rvm.sh.ok
|
267
|
+
# rvm version
|
159
268
|
```
|
160
269
|
|
161
|
-
|
162
|
-
rename the file: `/etc/profile.d/rvm.sh` with another extension, and source it to get rvm.
|
270
|
+
### Windows: Installer
|
163
271
|
|
164
|
-
|
272
|
+
Install Latest stable Ruby using [https://rubyinstaller.org/](https://rubyinstaller.org/) :
|
273
|
+
|
274
|
+
* Go to "Downloads".
|
275
|
+
* Select the Ruby 2 version "without devkit", x64 corresponding to the one recommended "with devkit". Devkit is not needed.
|
276
|
+
* At the end of the installer uncheck the box to skip the installation of "MSys2": not needed.
|
277
|
+
|
278
|
+
### macOS: pre-installed or `brew`
|
279
|
+
|
280
|
+
MacOS 10.13+ (High Sierra) comes with a recent Ruby. So you can use it directly. You will need to install aspera-cli using `sudo` :
|
165
281
|
|
166
282
|
```
|
167
|
-
|
283
|
+
$ sudo gem install aspera-cli
|
168
284
|
```
|
169
285
|
|
170
|
-
|
286
|
+
Alternatively, if you use [Homebrew](https://brew.sh/) already you can install Ruby with it:
|
171
287
|
|
172
288
|
```
|
173
|
-
|
289
|
+
$ brew install ruby
|
174
290
|
```
|
175
291
|
|
176
|
-
|
292
|
+
### Linux: package
|
293
|
+
|
294
|
+
If your Linux distribution provides a standard ruby package, you can use it provided that the version is compatible (check at beginning of section).
|
295
|
+
|
296
|
+
Example:
|
297
|
+
|
298
|
+
```
|
299
|
+
# yum install -y ruby rubygems ruby-json
|
300
|
+
```
|
301
|
+
|
302
|
+
One can cleanup the whole yum-installed ruby environment like this to uninstall:
|
177
303
|
|
178
304
|
```
|
179
305
|
gem uninstall $(ls $(gem env gemdir)/gems/|sed -e 's/-[^-]*$//'|sort -u)
|
@@ -182,7 +308,7 @@ yum remove -y ruby ruby-libs
|
|
182
308
|
|
183
309
|
### Other Unixes: Aix, etc...
|
184
310
|
|
185
|
-
If your unix do not provide a pre-built ruby, you can get using one of those
|
311
|
+
If your unix do not provide a pre-built ruby, you can get it using one of those
|
186
312
|
[methods](https://www.ruby-lang.org/en/documentation/installation/)
|
187
313
|
|
188
314
|
For instance to build from source, and install in `/opt/ruby` :
|
@@ -198,12 +324,56 @@ For instance to build from source, and install in `/opt/ruby` :
|
|
198
324
|
# make install
|
199
325
|
```
|
200
326
|
|
327
|
+
### <a name="offline_install"></a>Installation without internet access
|
328
|
+
|
329
|
+
Note that currently no pre-packaged version exist yet.
|
330
|
+
A method to build one provided here:
|
331
|
+
|
332
|
+
On a server with the same OS version and with internet access follow the "Generic single user installation" method.
|
333
|
+
|
334
|
+
Then create an archive:
|
335
|
+
|
336
|
+
```
|
337
|
+
$ cd
|
338
|
+
$ tar zcvf rvm-ascli.tgz .rvm
|
339
|
+
```
|
340
|
+
|
341
|
+
Get the Aspera SDK. Execute:
|
342
|
+
|
343
|
+
```
|
344
|
+
$ ascli conf --show-config|grep sdk_url
|
345
|
+
```
|
346
|
+
|
347
|
+
Then download the SDK archive from that URL.
|
348
|
+
|
349
|
+
Another method for the SDK is to install the SDK (`ascli conf ascp install`) on the first system, and archive `$HOME/.aspera`.
|
350
|
+
|
351
|
+
Transfer those 2 archives to the target system without internet access.
|
352
|
+
|
353
|
+
On the target system:
|
354
|
+
|
355
|
+
* Extract the RVM archive either in a global location, or in a user's home folder : `path_to_rvm_root`
|
356
|
+
* in the user's `.profile` add this line: (replace `path_to_rvm_root` with the actual location)
|
357
|
+
|
358
|
+
```
|
359
|
+
source path_to_rvm_root/scripts/rvm
|
360
|
+
rvm use 2.7.2
|
361
|
+
```
|
362
|
+
|
363
|
+
For the SDK, either install from archive:
|
364
|
+
|
365
|
+
```
|
366
|
+
$ ascli conf ascp install --sdk-url=file:///SDK.zip
|
367
|
+
```
|
368
|
+
|
369
|
+
or restore the `$HOME/.aspera` folder for the user.
|
370
|
+
|
201
371
|
## <a name="the_gem"></a>`aspera-cli` gem
|
202
372
|
|
203
373
|
Once you have Ruby and rights to install gems: Install the gem and its dependencies:
|
204
374
|
|
205
375
|
```
|
206
|
-
# gem install aspera-cli
|
376
|
+
# gem install aspera-cli
|
207
377
|
```
|
208
378
|
|
209
379
|
To upgrade to the latest version:
|
@@ -212,21 +382,40 @@ To upgrade to the latest version:
|
|
212
382
|
# gem update aspera-cli
|
213
383
|
```
|
214
384
|
|
385
|
+
`ascli` checks every week if a new version is available and notify the user in a WARN log. To de-activate this feature set the option `version_check_days` to `0`, or specify a different period in days.
|
386
|
+
|
387
|
+
To check manually:
|
388
|
+
|
389
|
+
```
|
390
|
+
# ascli conf check_update
|
391
|
+
```
|
392
|
+
|
393
|
+
|
394
|
+
|
215
395
|
## <a name="fasp_prot"></a>FASP Protocol
|
216
396
|
|
217
|
-
Most file transfers will be done using the FASP protocol
|
218
|
-
an Aspera Transfer:
|
397
|
+
Most file transfers will be done using the FASP protocol, using `ascp`.
|
398
|
+
Only two additional files are required to perform an Aspera Transfer, which are part of Aspera SDK:
|
219
399
|
|
220
400
|
* ascp
|
221
401
|
* aspera-license (in same folder, or ../etc)
|
222
402
|
|
223
|
-
This can be installed
|
403
|
+
This can be installed either be installing an Aspera transfer sofware, or using an embedded command:
|
224
404
|
|
225
405
|
```
|
226
406
|
$ ascli conf ascp install
|
227
407
|
```
|
228
408
|
|
229
|
-
|
409
|
+
If a local SDK installation is prefered instead of fetching from internet: one can specify the location of the SDK file:
|
410
|
+
|
411
|
+
```
|
412
|
+
$ curl -Lso SDK.zip https://ibm.biz/aspera_sdk
|
413
|
+
$ ascli conf ascp install --sdk-url=file:///SDK.zip
|
414
|
+
```
|
415
|
+
|
416
|
+
The format is: `file:///<path>`, where `<path>` can be either a relative path (not starting with `/`), or an absolute path.
|
417
|
+
|
418
|
+
If the embedded method is not used, the following packages are also suitable:
|
230
419
|
|
231
420
|
* IBM Aspera Connect Client (Free)
|
232
421
|
* IBM Aspera Desktop Client (Free)
|
@@ -235,7 +424,7 @@ Those can be found in one of IBM Aspera transfer server or client with its licen
|
|
235
424
|
* IBM Aspera High Speed Transfer EndPoint (Licensed)
|
236
425
|
|
237
426
|
For instance, Aspera Connect Client can be installed
|
238
|
-
by visiting the page: [
|
427
|
+
by visiting the page: [https://www.ibm.com/aspera/connect/](https://www.ibm.com/aspera/connect/).
|
239
428
|
|
240
429
|
`ascli` will detect most of Aspera transfer products in standard locations and use the first one found.
|
241
430
|
Refer to section [FASP](#client) for details on how to select a client or set path to the FASP protocol.
|
@@ -243,6 +432,33 @@ Refer to section [FASP](#client) for details on how to select a client or set pa
|
|
243
432
|
Several methods are provided on how to start a transfer. Use of a local client is one of them, but
|
244
433
|
other methods are available. Refer to section: [Transfer Agents](#agents)
|
245
434
|
|
435
|
+
## <a name="offline_install"></a>Offline Installation (without internet)
|
436
|
+
|
437
|
+
The procedure consists in:
|
438
|
+
|
439
|
+
* Follow the non-root installation procedure with RVM, including gem
|
440
|
+
* archive (zip, tar) the main RVM folder (includes ascli):
|
441
|
+
|
442
|
+
```
|
443
|
+
$ cd ~
|
444
|
+
$ tar zcvf rvm_ascli.tgz .rvm
|
445
|
+
```
|
446
|
+
|
447
|
+
* retrieve the SDK:
|
448
|
+
|
449
|
+
```
|
450
|
+
$ curl -Lso SDK.zip https://ibm.biz/aspera_sdk
|
451
|
+
```
|
452
|
+
|
453
|
+
* on the system without internet access:
|
454
|
+
|
455
|
+
```
|
456
|
+
$ cd ~
|
457
|
+
$ tar zxvf rvm_ascli.tgz
|
458
|
+
$ source ~/.rvm/scripts/rvm
|
459
|
+
$ ascli conf ascp install --sdk-url=file:///SDK.zip
|
460
|
+
```
|
461
|
+
|
246
462
|
# <a name="cli"></a>Command Line Interface: `ascli`
|
247
463
|
|
248
464
|
The `aspera-cli` Gem provides a command line interface (CLI) which interacts with Aspera Products (mostly using REST APIs):
|
@@ -423,6 +639,7 @@ By default, a table output will display one line per entry, and columns for each
|
|
423
639
|
* a,b,c : the list of attributes specified by the comma separated list
|
424
640
|
* Array extended value: for instance, @json:'["a","b","c"]' same as above
|
425
641
|
* +a,b,c : add selected properties to the default selection.
|
642
|
+
* -a,b,c : remove selected properties from the default selection.
|
426
643
|
|
427
644
|
## <a name="extended"></a>Extended Value Syntax
|
428
645
|
|
@@ -436,25 +653,25 @@ The extended value syntax is:
|
|
436
653
|
|
437
654
|
The difference between reader and decoder is order and ordinality. Both act like a function of value on right hand side. Decoders are at the beginning of the value, followed by a single optional reader, followed by the optional value.
|
438
655
|
|
439
|
-
The following "readers" are supported:
|
656
|
+
The following "readers" are supported (returns value in []):
|
440
657
|
|
441
|
-
* @val:VALUE
|
442
|
-
* @file:PATH
|
443
|
-
* @path:PATH
|
444
|
-
* @env:ENVVAR
|
445
|
-
* @stdin:
|
446
|
-
* @preset:NAME
|
658
|
+
* @val:VALUE : [String] prevent further special prefix processing, e.g. `--username=@val:laurent` sets the option `username` to value `laurent`.
|
659
|
+
* @file:PATH : [String] read value from a file (prefix "~/" is replaced with the users home folder), e.g. --key=@file:~/.ssh/mykey
|
660
|
+
* @path:PATH : [String] performs path expansion (prefix "~/" is replaced with the users home folder), e.g. --config-file=@path:~/sample_config.yml
|
661
|
+
* @env:ENVVAR : [String] read from a named env var, e.g.--password=@env:MYPASSVAR
|
662
|
+
* @stdin: : [String] read from stdin (no value on right)
|
663
|
+
* @preset:NAME : [Hash] get whole option preset value by name
|
447
664
|
|
448
665
|
In addition it is possible to decode a value, using one or multiple decoders :
|
449
666
|
|
450
|
-
* @base64: decode a base64 encoded string
|
451
|
-
* @json: decode JSON values (convenient to provide complex structures)
|
452
|
-
* @zlib: uncompress data
|
453
|
-
* @ruby: execute ruby code
|
454
|
-
* @csvt: decode a titled CSV value
|
455
|
-
* @lines: split a string in multiple lines and return an array
|
456
|
-
* @list: split a string in multiple items taking first character as separator and return an array
|
457
|
-
* @incps: include values of presets specified by key
|
667
|
+
* @base64: [String] decode a base64 encoded string
|
668
|
+
* @json: [any] decode JSON values (convenient to provide complex structures)
|
669
|
+
* @zlib: [String] uncompress data
|
670
|
+
* @ruby: [any] execute ruby code
|
671
|
+
* @csvt: [Array] decode a titled CSV value
|
672
|
+
* @lines: [Array] split a string in multiple lines and return an array
|
673
|
+
* @list: [Array] split a string in multiple items taking first character as separator and return an array
|
674
|
+
* @incps: [Hash] include values of presets specified by key `incps` in input hash
|
458
675
|
|
459
676
|
To display the result of an extended value, use the `config echo` command.
|
460
677
|
|
@@ -486,7 +703,7 @@ $ ascli config echo @csvt:@file:test.csv
|
|
486
703
|
:......:.....................:
|
487
704
|
```
|
488
705
|
|
489
|
-
Example: create a hash and include values from preset named "config" of config file
|
706
|
+
Example: create a hash and include values from preset named "config" of config file in this hash
|
490
707
|
|
491
708
|
```
|
492
709
|
$ ascli config echo @incps:@json:'{"hello":true,"incps":["config"]}'
|
@@ -562,7 +779,7 @@ $ ascli config id <option preset> set|delete|show|initialize|update
|
|
562
779
|
The command `update` allows the easy creation of [option preset](#lprt) by simply providing the options in their command line format, e.g. :
|
563
780
|
|
564
781
|
```
|
565
|
-
$ ascli config id demo_server update --url=ssh://demo.asperasoft.com:33001 --username=asperaweb --password=
|
782
|
+
$ ascli config id demo_server update --url=ssh://demo.asperasoft.com:33001 --username=asperaweb --password=_demo_pass_ --ts=@json:'{"precalculate_job_size":true}'
|
566
783
|
```
|
567
784
|
|
568
785
|
* This creates a [option preset](#lprt) `demo_server` with all provided options.
|
@@ -570,13 +787,13 @@ $ ascli config id demo_server update --url=ssh://demo.asperasoft.com:33001 --use
|
|
570
787
|
The command `set` allows setting individual options in a [option preset](#lprt).
|
571
788
|
|
572
789
|
```
|
573
|
-
$ ascli config id demo_server set password
|
790
|
+
$ ascli config id demo_server set password _demo_pass_
|
574
791
|
```
|
575
792
|
|
576
793
|
The command `initialize`, like `update` allows to set several parameters at once, but it deletes an existing configuration instead of updating it, and expects a _[Structured Value](#native)_.
|
577
794
|
|
578
795
|
```
|
579
|
-
$ ascli config id demo_server initialize @json:'{"url":"ssh://demo.asperasoft.com:33001","username":"asperaweb","password":"
|
796
|
+
$ ascli config id demo_server initialize @json:'{"url":"ssh://demo.asperasoft.com:33001","username":"asperaweb","password":"_demo_pass_","ts":{"precalculate_job_size":true}}'
|
580
797
|
```
|
581
798
|
|
582
799
|
A good practice is to not manually edit the configuration file and use modification commands instead.
|
@@ -613,11 +830,19 @@ Note that special plugin name: `config` can be associated with a preset that is
|
|
613
830
|
Operations on this preset are done using regular `config` operations:
|
614
831
|
|
615
832
|
```
|
616
|
-
$ ascli config id default set _plugin_name_
|
833
|
+
$ ascli config id default set _plugin_name_ _default_preset_for_plugin_
|
617
834
|
$ ascli config id default get _plugin_name_
|
618
|
-
"
|
835
|
+
"_default_preset_for_plugin_"
|
619
836
|
```
|
620
837
|
|
838
|
+
### <a name="lprtdef"></a>Special Plugin: config
|
839
|
+
|
840
|
+
Plugin `config` (not to be confused with Option preset config) is used to configure `ascli` but it also contains global options.
|
841
|
+
|
842
|
+
When `ascli` starts, it lookjs for the `default` Option preset and if there is a value for `config`, if so, it loads the option values for any plugin used.
|
843
|
+
|
844
|
+
If no global default is set by the user, the tool will use `global_common_defaults` when setting global parameters (e.g. `conf ascp use`)
|
845
|
+
|
621
846
|
### Format of file
|
622
847
|
|
623
848
|
The configuration file is a hash in a YAML file. Example:
|
@@ -633,7 +858,7 @@ cli_default:
|
|
633
858
|
demo_server:
|
634
859
|
url: ssh://demo.asperasoft.com:33001
|
635
860
|
username: asperaweb
|
636
|
-
password:
|
861
|
+
password: _demo_pass_
|
637
862
|
```
|
638
863
|
|
639
864
|
We can see here:
|
@@ -702,7 +927,6 @@ A [option preset](#lprt) value can be removed with `unset`:
|
|
702
927
|
$ ascli config id cli_default unset interactive
|
703
928
|
```
|
704
929
|
|
705
|
-
|
706
930
|
### Examples
|
707
931
|
|
708
932
|
For Faspex, Shares, Node (including ATS, Aspera Transfer Service), Console,
|
@@ -822,21 +1046,42 @@ The `config` plugin also allows specification for the use of a local FASP client
|
|
822
1046
|
|
823
1047
|
```
|
824
1048
|
$ ascli config ascp show
|
825
|
-
/Users/laurent/
|
1049
|
+
/Users/laurent/.aspera/ascli/sdk/ascp
|
1050
|
+
$ ascli config ascp info
|
1051
|
+
+--------------------+-----------------------------------------------------------+
|
1052
|
+
| key | value |
|
1053
|
+
+--------------------+-----------------------------------------------------------+
|
1054
|
+
| ascp | /Users/laurent/.aspera/ascli/sdk/ascp |
|
1055
|
+
...
|
826
1056
|
```
|
827
1057
|
|
828
1058
|
### Selection of local `ascp`
|
829
1059
|
|
1060
|
+
By default, `ascli` uses any found local product with ascp, including SDK.
|
1061
|
+
|
830
1062
|
To temporarily use an alternate ascp path use option `ascp_path` (`--ascp-path=`)
|
831
1063
|
|
832
|
-
|
1064
|
+
For a permanent change, the command `config ascp use` sets the same parameter for the global default.
|
1065
|
+
|
1066
|
+
Using a POSIX shell:
|
833
1067
|
|
834
1068
|
```
|
835
1069
|
$ ascli config ascp use '/Users/laurent/Applications/Aspera CLI/bin/ascp'
|
836
|
-
|
1070
|
+
ascp version: 4.0.0.182279
|
1071
|
+
Updated: global_common_defaults: ascp_path <- /Users/laurent/Applications/Aspera CLI/bin/ascp
|
1072
|
+
Saved to default global preset global_common_defaults
|
837
1073
|
```
|
838
1074
|
|
839
|
-
|
1075
|
+
Windows:
|
1076
|
+
|
1077
|
+
```
|
1078
|
+
$ ascli config ascp use C:\Users\admin\.aspera\ascli\sdk\ascp.exe
|
1079
|
+
ascp version: 4.0.0.182279
|
1080
|
+
Updated: global_common_defaults: ascp_path <- C:\Users\admin\.aspera\ascli\sdk\ascp.exe
|
1081
|
+
Saved to default global preset global_common_defaults
|
1082
|
+
```
|
1083
|
+
|
1084
|
+
If the path has spaces, read section: [Shell and Command line parsing](#parsing).
|
840
1085
|
|
841
1086
|
### List locally installed Aspera Transfer products
|
842
1087
|
|
@@ -923,7 +1168,7 @@ will effectively push files to the related server from the agent node.
|
|
923
1168
|
|
924
1169
|
### <a name="direct"></a>Direct (local ascp using FASPManager API)
|
925
1170
|
|
926
|
-
By default
|
1171
|
+
By default `ascli` uses a local ascp, equivalent to specifying `--transfer=direct`.
|
927
1172
|
`ascli` will detect locally installed Aspera products.
|
928
1173
|
Refer to section [FASP](#client).
|
929
1174
|
|
@@ -933,17 +1178,33 @@ To specify a FASP proxy (only supported with the `direct` agent), set the approp
|
|
933
1178
|
* `EX_http_proxy_url` (proxy for legacy http fallback)
|
934
1179
|
* `EX_ascp_args`
|
935
1180
|
|
936
|
-
The `transfer-info`
|
1181
|
+
The `transfer-info` accepts the following optional parameters:
|
937
1182
|
|
938
1183
|
<table>
|
939
|
-
<tr><th>Name</th><th>Default</th><th>Feature</th><th>Description</th></tr>
|
940
|
-
<tr><td>
|
941
|
-
<tr><td>
|
942
|
-
<tr><td>
|
943
|
-
<tr><td>
|
944
|
-
<tr><td>wss</td> <td>false</td><td>Web Socket Session</td><td>Enable use of web socket session in case it is available</td></tr>
|
1184
|
+
<tr><th>Name</th><th>Type</th><th>Default</th><th>Feature</th><th>Description</th></tr>
|
1185
|
+
<tr><td>spawn_timeout_sec</td><td>Float</td><td>3</td><td>Multi session</td><td>Verification time that ascp is running</td></tr>
|
1186
|
+
<tr><td>spawn_delay_sec</td><td>Float</td><td>2</td><td>Multi session</td><td>Delay between startup of sessions</td></tr>
|
1187
|
+
<tr><td>wss</td><td>Bool</td><td>false</td><td>Web Socket Session</td><td>Enable use of web socket session in case it is available</td></tr>
|
1188
|
+
<tr><td>resume</td><td>Hash</td><td>nil</td><td>Resumer parameters</td><td>See below</td></tr>
|
945
1189
|
</table>
|
946
1190
|
|
1191
|
+
Resume parameters:
|
1192
|
+
|
1193
|
+
<table>
|
1194
|
+
<tr><th>Name</th><th>Type</th><th>Default</th><th>Feature</th><th>Description</th></tr>
|
1195
|
+
<tr><td>iter_max</td><td>int</td><td>7</td><td>Resume</td><td>Max number of retry on error</td></tr>
|
1196
|
+
<tr><td>sleep_initial</td><td>int</td><td>2</td><td>Resume</td><td>First Sleep before retry</td></tr>
|
1197
|
+
<tr><td>sleep_factor</td><td>int</td><td>2</td><td>Resume</td><td>Multiplier of Sleep</td></tr>
|
1198
|
+
<tr><td>sleep_max</td><td>int</td><td>60</td><td>Resume</td><td>Maximum sleep</td></tr>
|
1199
|
+
</table>
|
1200
|
+
|
1201
|
+
Examples:
|
1202
|
+
|
1203
|
+
```
|
1204
|
+
$ ascli ... --transfer-info=@json:'{"wss":true,"resume":{"iter_max":10}}'
|
1205
|
+
$ ascli ... --transfer-info=@json:'{"spawn_delay_sec":2.5}'
|
1206
|
+
```
|
1207
|
+
|
947
1208
|
### IBM Aspera Connect Client GUI
|
948
1209
|
|
949
1210
|
By specifying option: `--transfer=connect`, `ascli` will start transfers
|
@@ -975,9 +1236,11 @@ If it possible to send using a HTTP gateway, in case FASP is not allowed.
|
|
975
1236
|
Example:
|
976
1237
|
|
977
1238
|
```
|
978
|
-
$ ascli faspex package recv --id=323 --transfer=httpgw --transfer-info=@json:'{"url":"https://
|
1239
|
+
$ ascli faspex package recv --id=323 --transfer=httpgw --transfer-info=@json:'{"url":"https://asperagw.example.com:9443/aspera/http-gwy/v1"}'
|
979
1240
|
```
|
980
1241
|
|
1242
|
+
Note that the gateway only supports transfers authorized with a token.
|
1243
|
+
|
981
1244
|
## <a name="transferspec"></a>Transfer Specification
|
982
1245
|
|
983
1246
|
Some commands lead to file transfer (upload/download), all parameters necessary for this transfer
|
@@ -991,7 +1254,7 @@ is described in a _transfer-spec_ (Transfer Specification), such as:
|
|
991
1254
|
|
992
1255
|
`ascli` builds a default _transfer-spec_ internally, so it is not necessary to provide additional parameters on the command line for this transfer.
|
993
1256
|
|
994
|
-
If needed, it is possible to modify or add any of the supported _transfer-spec_ parameter using the `ts` option. The `ts` option accepts a [Structured Value](#native) containing one or several _transfer-spec_ parameters.
|
1257
|
+
If needed, it is possible to modify or add any of the supported _transfer-spec_ parameter using the `ts` option. The `ts` option accepts a [Structured Value](#native) containing one or several _transfer-spec_ parameters. Multiple `ts` options on command line are cummulative.
|
995
1258
|
|
996
1259
|
It is possible to specify ascp options when the `transfer` option is set to `direct` using the special [_transfer-spec_](#transferspec) parameter: `EX_ascp_args`. Example: `--ts=@json:'{"EX_ascp_args":["-l","100m"]}'`. This is espacially useful for ascp command line parameters not supported yet in the transfer spec.
|
997
1260
|
|
@@ -1028,7 +1291,7 @@ arg: related ascp argument or env var suffix (PASS for ASPERA_SCP_PASS)
|
|
1028
1291
|
</p>
|
1029
1292
|
<p>
|
1030
1293
|
UNDER CONSTRUCTION<br/>
|
1031
|
-
<a href="https://developer.ibm.com/
|
1294
|
+
<a href="https://developer.ibm.com/apis/catalog/?search=aspera">Aspera API Documentation</a>→Node API→/opt/transfers<br/>
|
1032
1295
|
</p>
|
1033
1296
|
|
1034
1297
|
<table>
|
@@ -1110,8 +1373,8 @@ The option `to_folder` provides an equivalent and convenient way to change this
|
|
1110
1373
|
|
1111
1374
|
### List of files for transfers
|
1112
1375
|
|
1113
|
-
When uploading, downloading or sending files, the user must specify
|
1114
|
-
|
1376
|
+
When uploading, downloading or sending files, the user must specify the list of files to transfer.
|
1377
|
+
Most of the time, the list of files to transfer will be simply specified on the command line:
|
1115
1378
|
|
1116
1379
|
```
|
1117
1380
|
$ ascli server upload ~/mysample.file secondfile
|
@@ -1125,7 +1388,8 @@ $ ascli server upload --sources=@args ~/mysample.file secondfile
|
|
1125
1388
|
|
1126
1389
|
More advanced options are provided to adapt to various cases. In fact, list of files to transfer are conveyed using the [_transfer-spec_](#transferspec) using the field: "paths" which is a list (array) of pairs of "source" (mandatory) and "destination" (optional).
|
1127
1390
|
|
1128
|
-
Note that this is different from the "ascp" command line. The paradigm used by `ascli` is:
|
1391
|
+
Note that this is different from the "ascp" command line. The paradigm used by `ascli` is:
|
1392
|
+
all transfer parameters are kept in [_transfer-spec_](#transferspec) so that execution of a transfer is independent of the transfer agent. Note that other IBM Aspera interfaces use this: connect, node, transfer sdk.
|
1129
1393
|
|
1130
1394
|
For ease of use and flexibility, the list of files to transfer is specified by the option `sources`. Accepted values are:
|
1131
1395
|
|
@@ -1242,6 +1506,8 @@ A non complete list of commands used in unit tests:
|
|
1242
1506
|
```
|
1243
1507
|
ascli
|
1244
1508
|
ascli -h
|
1509
|
+
ascli aoc -N remind --username=my_aoc_user_email
|
1510
|
+
ascli aoc -N servers
|
1245
1511
|
ascli aoc admin analytics transfers --query=@json:'{"status":"completed","direction":"receive"}'
|
1246
1512
|
ascli aoc admin ats access_key --id=akibmcloud --secret=somesecret node browse /
|
1247
1513
|
ascli aoc admin ats access_key --id=akibmcloud delete
|
@@ -1252,6 +1518,26 @@ ascli aoc admin ats cluster clouds
|
|
1252
1518
|
ascli aoc admin ats cluster list
|
1253
1519
|
ascli aoc admin ats cluster show --cloud=aws --region=eu-west-1
|
1254
1520
|
ascli aoc admin ats cluster show --id=1f412ae7-869a-445c-9c05-02ad16813be2
|
1521
|
+
ascli aoc admin res apps_new list
|
1522
|
+
ascli aoc admin res client list
|
1523
|
+
ascli aoc admin res client_access_key list
|
1524
|
+
ascli aoc admin res client_registration_token --id=my_clt_reg_id delete
|
1525
|
+
ascli aoc admin res client_registration_token create @json:'{"data":{"name":"test_client_reg1","client_subject_scopes":["alee","aejd"],"client_subject_enabled":true}}'
|
1526
|
+
ascli aoc admin res client_registration_token list
|
1527
|
+
ascli aoc admin res contact list
|
1528
|
+
ascli aoc admin res dropbox list
|
1529
|
+
ascli aoc admin res dropbox_membership list
|
1530
|
+
ascli aoc admin res group list
|
1531
|
+
ascli aoc admin res kms_profile list
|
1532
|
+
ascli aoc admin res node list
|
1533
|
+
ascli aoc admin res operation list
|
1534
|
+
ascli aoc admin res organization show
|
1535
|
+
ascli aoc admin res package list
|
1536
|
+
ascli aoc admin res saml_configuration list
|
1537
|
+
ascli aoc admin res self show
|
1538
|
+
ascli aoc admin res short_link list
|
1539
|
+
ascli aoc admin res user list
|
1540
|
+
ascli aoc admin res workspace_membership list
|
1255
1541
|
ascli aoc admin resource node --name=AOC_NODE1_NAME --secret=AOC_NODE1_SECRET v3 access_key create --value=@json:'{"id":"testsub1","storage":{"path":"/folder1"}}'
|
1256
1542
|
ascli aoc admin resource node --name=AOC_NODE1_NAME --secret=AOC_NODE1_SECRET v3 access_key delete --id=testsub1
|
1257
1543
|
ascli aoc admin resource node --name=AOC_NODE1_NAME --secret=AOC_NODE1_SECRET v3 events
|
@@ -1260,7 +1546,6 @@ ascli aoc admin resource node --name=AOC_NODE1_NAME --secret=AOC_NODE1_SECRET v4
|
|
1260
1546
|
ascli aoc admin resource node --name=AOC_NODE1_NAME --secret=AOC_NODE1_SECRET v4 mkdir /folder1
|
1261
1547
|
ascli aoc admin resource workspace list
|
1262
1548
|
ascli aoc admin resource workspace_membership list --fields=ALL --query=@json:'{"page":1,"per_page":50,"embed":"member","inherited":false,"workspace_id":11363,"sort":"name"}'
|
1263
|
-
ascli aoc apiinfo
|
1264
1549
|
ascli aoc automation workflow --id="my_wf_id" action create --value=@json:'{"name":"toto"}' | tee action.info
|
1265
1550
|
ascli aoc automation workflow create --value=@json:'{"name":"test_workflow"}'
|
1266
1551
|
ascli aoc automation workflow delete --id="my_wf_id"
|
@@ -1274,7 +1559,7 @@ ascli aoc files browse /
|
|
1274
1559
|
ascli aoc files browse / -N --link=my_aoc_publink_folder
|
1275
1560
|
ascli aoc files delete /testsrc
|
1276
1561
|
ascli aoc files download --transfer=connect /200KB.1
|
1277
|
-
ascli aoc files file
|
1562
|
+
ascli aoc files file --id=my_file_id show
|
1278
1563
|
ascli aoc files find / --value='\.partial$'
|
1279
1564
|
ascli aoc files http_node_download --to-folder=. /200KB.1
|
1280
1565
|
ascli aoc files mkdir /testsrc
|
@@ -1295,7 +1580,7 @@ ascli aoc packages recv --id=ALL --to-folder=. --once-only=yes --lock-port=12345
|
|
1295
1580
|
ascli aoc packages send --value=@json:'{"name":"Important files delivery","recipients":["external.user@example.com"]}' --new-user-option=@json:'{"package_contact":true}' testfile.bin
|
1296
1581
|
ascli aoc packages send --value=@json:'{"name":"Important files delivery","recipients":["internal.user@example.com"],"note":"my note"}' testfile.bin
|
1297
1582
|
ascli aoc packages send --workspace="my_aoc_shbx_ws" --value=@json:'{"name":"Important files delivery","recipients":["my_aoc_shbx_name"]}' testfile.bin
|
1298
|
-
ascli aoc packages send -N --value=@json:'{"name":"Important files delivery"}' testfile.bin --link=my_aoc_publink_send_aoc_user
|
1583
|
+
ascli aoc packages send -N --value=@json:'{"name":"Important files delivery"}' testfile.bin --link=my_aoc_publink_send_aoc_user --password=my_aoc_publink_send_use_pass
|
1299
1584
|
ascli aoc packages send -N --value=@json:'{"name":"Important files delivery"}' testfile.bin --link=my_aoc_publink_send_shd_inbox
|
1300
1585
|
ascli aoc user info modify @json:'{"name":"dummy change"}'
|
1301
1586
|
ascli aoc user info show
|
@@ -1315,8 +1600,8 @@ ascli ats cluster list
|
|
1315
1600
|
ascli ats cluster show --cloud=aws --region=eu-west-1
|
1316
1601
|
ascli ats cluster show --id=1f412ae7-869a-445c-9c05-02ad16813be2
|
1317
1602
|
ascli conf flush_tokens
|
1318
|
-
ascli conf wiz --url=https://my_aoc_org.ibmaspera.com --config-file=SAMPLE_CONFIG_FILE --pkeypath='' --username=
|
1319
|
-
ascli conf wiz --url=https://my_aoc_org.ibmaspera.com --config-file=SAMPLE_CONFIG_FILE --pkeypath='' --username=
|
1603
|
+
ascli conf wiz --url=https://my_aoc_org.ibmaspera.com --config-file=SAMPLE_CONFIG_FILE --pkeypath='' --username=my_aoc_user_email --test-mode=yes
|
1604
|
+
ascli conf wiz --url=https://my_aoc_org.ibmaspera.com --config-file=SAMPLE_CONFIG_FILE --pkeypath='' --username=my_aoc_user_email --test-mode=yes --use-generic-client=yes
|
1320
1605
|
ascli config ascp connect id 'Aspera Connect for Windows' info
|
1321
1606
|
ascli config ascp connect id 'Aspera Connect for Windows' links id 'Windows Installer' download --to-folder=.
|
1322
1607
|
ascli config ascp connect id 'Aspera Connect for Windows' links list
|
@@ -1325,6 +1610,9 @@ ascli config ascp info
|
|
1325
1610
|
ascli config ascp install
|
1326
1611
|
ascli config ascp products list
|
1327
1612
|
ascli config ascp show
|
1613
|
+
ascli config check_update
|
1614
|
+
ascli config doc
|
1615
|
+
ascli config doc transfer-parameters
|
1328
1616
|
ascli config email_test aspera.user1@gmail.com
|
1329
1617
|
ascli config export
|
1330
1618
|
ascli config genkey mykey
|
@@ -1332,28 +1620,29 @@ ascli config plugins
|
|
1332
1620
|
ascli config proxy_check --fpac=file:///examples/proxy.pac https://eudemo.asperademo.com
|
1333
1621
|
ascli console transfer current list
|
1334
1622
|
ascli console transfer smart list
|
1335
|
-
ascli console transfer smart sub
|
1623
|
+
ascli console transfer smart sub my_job_id @json:'{"source":{"paths":["my_file_name"]},"source_type":"user_selected"}'
|
1336
1624
|
ascli cos -N --bucket=my_icos_bucket_name --endpoint=my_icos_bucket_endpoint --apikey=my_icos_bucket_apikey --crn=my_icos_resource_instance_id node info
|
1337
1625
|
ascli cos -N --bucket=my_icos_bucket_name --region=my_icos_bucket_region --service-credentials=@json:@file:service_creds.json node info
|
1338
1626
|
ascli cos node access_key --id=self show
|
1339
1627
|
ascli cos node download testfile.bin --to-folder=.
|
1340
1628
|
ascli cos node info
|
1341
1629
|
ascli cos node upload testfile.bin
|
1342
|
-
ascli faspex
|
1630
|
+
ascli faspex health
|
1343
1631
|
ascli faspex package list
|
1344
1632
|
ascli faspex package list --box=sent --fields=package_id --format=csv --display=data|tail -n 1);\
|
1345
|
-
ascli faspex package
|
1633
|
+
ascli faspex package list --fields=package_id --format=csv --display=data|tail -n 1);\
|
1634
|
+
ascli faspex package recv --to-folder=. --box=sent --id="my_package_id"
|
1346
1635
|
ascli faspex package recv --to-folder=. --id="my_package_id"
|
1347
1636
|
ascli faspex package recv --to-folder=. --id=ALL --once-only=yes
|
1348
1637
|
ascli faspex package recv --to-folder=. --link="my_faspex_publink_recv_from_fxuser"
|
1349
|
-
ascli faspex package send --delivery-info=@json:'{"title":"Important files delivery","recipients":["internal.user@example.com"]}' testfile.bin
|
1638
|
+
ascli faspex package send --delivery-info=@json:'{"title":"Important files delivery","recipients":["internal.user@example.com","FASPEX_USERNAME"]}' testfile.bin
|
1350
1639
|
ascli faspex package send --link="my_faspex_publink_send_to_dropbox" --delivery-info=@json:'{"title":"Important files delivery"}' testfile.bin
|
1351
1640
|
ascli faspex package send --link="my_faspex_publink_send_to_fxuser" --delivery-info=@json:'{"title":"Important files delivery"}' testfile.bin
|
1352
1641
|
ascli faspex source name "Server Files" node br /
|
1353
1642
|
ascli faspex5 node list --value=@json:'{"type":"received","subtype":"mypackages"}'
|
1354
|
-
ascli faspex5 package list --value=@json:'{"state":["released"]}'
|
1643
|
+
ascli faspex5 package list --value=@json:'{"mailbox":"inbox","state":["released"]}'
|
1355
1644
|
ascli faspex5 package receive --id="my_package_id" --to-folder=.
|
1356
|
-
ascli faspex5 package send --value=@json:'{"title":"test title","recipients":["
|
1645
|
+
ascli faspex5 package send --value=@json:'{"title":"test title","recipients":[{"name":"${f5_user}"}]}' testfile.bin
|
1357
1646
|
ascli node -N -Ptst_node_preview access_key create --value=@json:'{"id":"aoc_1","storage":{"type":"local","path":"/"}}'
|
1358
1647
|
ascli node -N -Ptst_node_preview access_key delete --id=aoc_1
|
1359
1648
|
ascli node async --id=1 bandwidth
|
@@ -1367,8 +1656,8 @@ ascli node browse / -r
|
|
1367
1656
|
ascli node delete folder_1/10MB.1
|
1368
1657
|
ascli node delete folder_1/testfile.bin
|
1369
1658
|
ascli node download --to-folder=. folder_1/testfile.bin
|
1659
|
+
ascli node health
|
1370
1660
|
ascli node info
|
1371
|
-
ascli node nagios_check
|
1372
1661
|
ascli node search / --value=@json:'{"sort":"mtime"}'
|
1373
1662
|
ascli node service --id=service1 delete
|
1374
1663
|
ascli node service create @json:'{"id":"service1","type":"WATCHD","run_as":{"user":"user1"}}'
|
@@ -1398,7 +1687,8 @@ ascli preview test --case=test png "TSTFILE_MXF" --video-png-conv=fixed --log-le
|
|
1398
1687
|
ascli preview test --case=test png "TSTFILE_PDF" --log-level=debug
|
1399
1688
|
ascli preview trevents --once-only=yes --skip-types=office --log-level=info
|
1400
1689
|
ascli server -N -Ptst_hstsfaspex_ssh -Plocal_user ctl all:status
|
1401
|
-
ascli server -N -Ptst_hstsfaspex_ssh -Plocal_user
|
1690
|
+
ascli server -N -Ptst_hstsfaspex_ssh -Plocal_user health app_services --format=nagios
|
1691
|
+
ascli server -N -Ptst_hstsfaspex_ssh -Plocal_user health asctlstatus --format=nagios --cmd-prefix='sudo '
|
1402
1692
|
ascli server -N -Ptst_hstsfaspex_ssh -Plocal_user nodeadmin -- -l
|
1403
1693
|
ascli server -N -Ptst_server_bykey -Plocal_user br /
|
1404
1694
|
ascli server browse /
|
@@ -1408,24 +1698,27 @@ ascli server delete NEW_SERVER_FOLDER
|
|
1408
1698
|
ascli server delete folder_1/target_hot
|
1409
1699
|
ascli server delete folder_1/to.delete
|
1410
1700
|
ascli server df
|
1411
|
-
ascli server download NEW_SERVER_FOLDER/testfile.bin --to-folder=.
|
1701
|
+
ascli server download NEW_SERVER_FOLDER/testfile.bin --to-folder=. --transfer-info=@json:'{"wss":false,"resume":{"iter_max":1}}'
|
1412
1702
|
ascli server download NEW_SERVER_FOLDER/testfile.bin --to-folder=folder_1 --transfer=node
|
1413
1703
|
ascli server du /
|
1704
|
+
ascli server health transfer --to-folder=folder_1 --format=nagios
|
1414
1705
|
ascli server info
|
1415
1706
|
ascli server md5sum NEW_SERVER_FOLDER/testfile.bin
|
1416
1707
|
ascli server mkdir NEW_SERVER_FOLDER --logger=stdout
|
1417
1708
|
ascli server mkdir folder_1/target_hot
|
1418
1709
|
ascli server mv folder_1/200KB.2 folder_1/to.delete
|
1419
|
-
ascli server nagios transfer --to-folder=folder_1 --format=nagios
|
1420
1710
|
ascli server upload --sources=@ts --ts=@json:'{"paths":[{"source":"testfile.bin","destination":"NEW_SERVER_FOLDER/othername"}]}'
|
1421
1711
|
ascli server upload --src-type=pair --sources=@json:'["testfile.bin","NEW_SERVER_FOLDER/othername"]'
|
1422
1712
|
ascli server upload --src-type=pair testfile.bin NEW_SERVER_FOLDER/othername
|
1423
1713
|
ascli server upload --to-folder=folder_1/target_hot --lock-port=12345 --ts=@json:'{"EX_ascp_args":["--remove-after-transfer","--remove-empty-directories","--exclude-newer-than=-8","--src-base","source_hot"]}' source_hot
|
1424
|
-
ascli server upload testfile.bin --to-folder=NEW_SERVER_FOLDER
|
1714
|
+
ascli server upload testfile.bin --to-folder=NEW_SERVER_FOLDER --ts=@json:'{"multi_session":3,"multi_session_threshold":1,"resume_policy":"none","target_rate_kbps":1500}' --transfer-info=@json:'{"spawn_delay_sec":2.5}' --progress=multi
|
1715
|
+
ascli shares admin share list
|
1425
1716
|
ascli shares repository browse /
|
1426
1717
|
ascli shares repository delete /SHARES_UPLOAD/testfile.bin
|
1427
1718
|
ascli shares repository download --to-folder=. /SHARES_UPLOAD/testfile.bin
|
1719
|
+
ascli shares repository download --to-folder=. /SHARES_UPLOAD/testfile.bin --transfer=httpgw --transfer-info=@json:'{"url":"https://HTTP_GW_FQDN/aspera/http-gwy/v1"}'
|
1428
1720
|
ascli shares repository upload --to-folder=/SHARES_UPLOAD testfile.bin
|
1721
|
+
ascli shares repository upload --to-folder=/SHARES_UPLOAD testfile.bin --transfer=httpgw --transfer-info=@json:'{"url":"https://HTTP_GW_FQDN/aspera/http-gwy/v1"}'
|
1429
1722
|
ascli shares2 appinfo
|
1430
1723
|
ascli shares2 organization list
|
1431
1724
|
ascli shares2 project list --organization=Sport
|
@@ -1441,7 +1734,7 @@ ascli sync start --parameters=@json:'{"sessions":[{"name":"test","reset":true,"r
|
|
1441
1734
|
```
|
1442
1735
|
$ ascli -h
|
1443
1736
|
NAME
|
1444
|
-
ascli -- a command line tool for Aspera Applications (v4.
|
1737
|
+
ascli -- a command line tool for Aspera Applications (v4.2.1)
|
1445
1738
|
|
1446
1739
|
SYNOPSIS
|
1447
1740
|
ascli COMMANDS [OPTIONS] [ARGS]
|
@@ -1452,6 +1745,10 @@ DESCRIPTION
|
|
1452
1745
|
execute: ascli conf doc
|
1453
1746
|
or visit: http://www.rubydoc.info/gems/aspera-cli
|
1454
1747
|
|
1748
|
+
ENVIRONMENT VARIABLES
|
1749
|
+
ASCLI_HOME config folder, default: $HOME/.aspera/ascli
|
1750
|
+
#any option can be set as an environment variable, refer to the manual
|
1751
|
+
|
1455
1752
|
COMMANDS
|
1456
1753
|
To list first level commands, execute: ascli
|
1457
1754
|
Note that commands can be written shortened (provided it is unique).
|
@@ -1480,7 +1777,7 @@ OPTIONS: global
|
|
1480
1777
|
-v, --version display version
|
1481
1778
|
-w, --warnings check for language warnings
|
1482
1779
|
--ui=ENUM method to start browser: text, graphical
|
1483
|
-
--log-level=ENUM Log level: debug, info,
|
1780
|
+
--log-level=ENUM Log level: debug, info, warn, error, fatal, unknown
|
1484
1781
|
--logger=ENUM log method: stderr, stdout, syslog
|
1485
1782
|
--lock-port=VALUE prevent dual execution of a command, e.g. in cron
|
1486
1783
|
--query=VALUE additional filter for API calls (extended value) (some commands)
|
@@ -1488,7 +1785,7 @@ OPTIONS: global
|
|
1488
1785
|
--once-only=ENUM process only new items (some commands): yes, no
|
1489
1786
|
|
1490
1787
|
COMMAND: config
|
1491
|
-
SUBCOMMANDS: gem_path genkey plugins flush_tokens list overview open echo id documentation wizard export_to_cli detect coffee ascp email_test smtp_settings proxy_check folder file
|
1788
|
+
SUBCOMMANDS: gem_path genkey plugins flush_tokens list overview open echo id documentation wizard export_to_cli detect coffee ascp email_test smtp_settings proxy_check folder file check_update initdemo
|
1492
1789
|
OPTIONS:
|
1493
1790
|
--value=VALUE extended value for create, update, list filter
|
1494
1791
|
--property=VALUE name of property to set
|
@@ -1504,10 +1801,13 @@ OPTIONS:
|
|
1504
1801
|
--fpac=VALUE proxy auto configuration URL
|
1505
1802
|
-P, --presetVALUE load the named option preset from current config file
|
1506
1803
|
--default=VALUE set as default configuration for specified plugin
|
1507
|
-
--secret=VALUE
|
1508
|
-
--secrets=VALUE
|
1804
|
+
--secret=VALUE default secret
|
1805
|
+
--secrets=VALUE secret repository (Hash)
|
1806
|
+
--sdk-url=VALUE URL to get SDK
|
1807
|
+
--sdk-folder=VALUE SDK folder location
|
1509
1808
|
--test-mode=ENUM skip user validation in wizard mode: yes, no
|
1510
|
-
--
|
1809
|
+
--version-check-days=VALUE period to check neew version in days (zero to disable)
|
1810
|
+
--ts=VALUE override transfer spec values (Hash, use @json: prefix), current={"create_dir"=>true}
|
1511
1811
|
--local-resume=VALUE set resume policy (Hash, use @json: prefix), current=
|
1512
1812
|
--to-folder=VALUE destination folder for downloaded files
|
1513
1813
|
--sources=VALUE list of source files (see doc)
|
@@ -1526,7 +1826,7 @@ OPTIONS:
|
|
1526
1826
|
|
1527
1827
|
|
1528
1828
|
COMMAND: node
|
1529
|
-
SUBCOMMANDS: postprocess stream transfer cleanup forward access_key watch_folder service async central asperabrowser basic_token browse upload download api_details
|
1829
|
+
SUBCOMMANDS: postprocess stream transfer cleanup forward access_key watch_folder service async central asperabrowser basic_token browse upload download api_details health events space info license mkdir mklink mkfile rename delete search
|
1530
1830
|
OPTIONS:
|
1531
1831
|
--url=VALUE URL of application, e.g. https://org.asperafiles.com
|
1532
1832
|
--username=VALUE username to log in
|
@@ -1579,11 +1879,16 @@ OPTIONS:
|
|
1579
1879
|
|
1580
1880
|
|
1581
1881
|
COMMAND: faspex5
|
1582
|
-
SUBCOMMANDS: node package
|
1882
|
+
SUBCOMMANDS: node package auth_client jobs
|
1583
1883
|
OPTIONS:
|
1584
1884
|
--url=VALUE URL of application, e.g. https://org.asperafiles.com
|
1585
1885
|
--username=VALUE username to log in
|
1586
1886
|
--password=VALUE user's password
|
1887
|
+
--client-id=VALUE API client identifier in application
|
1888
|
+
--client-secret=VALUE API client secret in application
|
1889
|
+
--redirect-uri=VALUE API client redirect URI
|
1890
|
+
--auth=ENUM type of Oauth authentication: body_userpass, header_userpass, web, jwt, url_token, ibm_apikey, boot
|
1891
|
+
--private-key=VALUE RSA private key PEM value for JWT (prefix file path with @val:@file:)
|
1587
1892
|
|
1588
1893
|
|
1589
1894
|
COMMAND: cos
|
@@ -1598,7 +1903,7 @@ OPTIONS:
|
|
1598
1903
|
|
1599
1904
|
|
1600
1905
|
COMMAND: faspex
|
1601
|
-
SUBCOMMANDS:
|
1906
|
+
SUBCOMMANDS: health package source me dropbox v4 address_book login_methods
|
1602
1907
|
OPTIONS:
|
1603
1908
|
--url=VALUE URL of application, e.g. https://org.asperafiles.com
|
1604
1909
|
--username=VALUE username to log in
|
@@ -1607,6 +1912,7 @@ OPTIONS:
|
|
1607
1912
|
--delivery-info=VALUE package delivery information (extended value)
|
1608
1913
|
--source-name=VALUE create package from remote source (by name)
|
1609
1914
|
--storage=VALUE Faspex local storage definition
|
1915
|
+
--recipient=VALUE use if recipient is a dropbox (with *)
|
1610
1916
|
--box=ENUM package box: inbox, sent, archive
|
1611
1917
|
|
1612
1918
|
|
@@ -1636,6 +1942,7 @@ OPTIONS:
|
|
1636
1942
|
--case=VALUE basename of output for for test
|
1637
1943
|
--scan-path=VALUE subpath in folder id to start scan in (default=/)
|
1638
1944
|
--scan-id=VALUE forder id in storage to start scan in, default is access key main folder id
|
1945
|
+
--mimemagic=ENUM use Mime type detection of gem mimemagic: yes, no
|
1639
1946
|
--overwrite=ENUM when to overwrite result file: always, never, mtime
|
1640
1947
|
--file-access=ENUM how to read and write files in repository: local, remote
|
1641
1948
|
--max-size=VALUE maximum size (in bytes) of preview file
|
@@ -1662,42 +1969,31 @@ OPTIONS:
|
|
1662
1969
|
|
1663
1970
|
|
1664
1971
|
COMMAND: aoc
|
1665
|
-
SUBCOMMANDS:
|
1972
|
+
SUBCOMMANDS: reminder bearer_token organization tier_restrictions user workspace packages files gateway admin automation servers
|
1666
1973
|
OPTIONS:
|
1667
1974
|
--url=VALUE URL of application, e.g. https://org.asperafiles.com
|
1668
1975
|
--username=VALUE username to log in
|
1669
1976
|
--password=VALUE user's password
|
1670
|
-
|
1671
|
-
COMMAND: ats
|
1672
|
-
SUBCOMMANDS: cluster access_key api_key aws_trust_policy
|
1673
|
-
OPTIONS:
|
1674
|
-
--ibm-api-key=VALUE IBM API key, see https://cloud.ibm.com/iam/apikeys
|
1675
|
-
--instance=VALUE ATS instance in ibm cloud
|
1676
|
-
--ats-key=VALUE ATS key identifier (ats_xxx)
|
1677
|
-
--ats-secret=VALUE ATS key secret
|
1678
|
-
--params=VALUE Parameters access key creation (@json:)
|
1679
|
-
--cloud=VALUE Cloud provider
|
1680
|
-
--region=VALUE Cloud region
|
1681
|
-
--auth=ENUM type of Oauth authentication: body_userpass, header_userpass, web, jwt, url_token, ibm_apikey
|
1977
|
+
--auth=ENUM OAuth type of authentication: body_userpass, header_userpass, web, jwt, url_token, ibm_apikey
|
1682
1978
|
--operation=ENUM client operation for transfers: push, pull
|
1683
|
-
--client-id=VALUE API client identifier in application
|
1684
|
-
--client-secret=VALUE API client passcode
|
1685
|
-
--redirect-uri=VALUE API client redirect URI
|
1686
|
-
--private-key=VALUE RSA private key PEM value
|
1979
|
+
--client-id=VALUE OAuth API client identifier in application
|
1980
|
+
--client-secret=VALUE OAuth API client passcode
|
1981
|
+
--redirect-uri=VALUE OAuth API client redirect URI
|
1982
|
+
--private-key=VALUE OAuth JWT RSA private key PEM value (prefix file path with @val:@file:)
|
1687
1983
|
--workspace=VALUE name of workspace
|
1688
|
-
--eid=VALUE identifier
|
1689
1984
|
--name=VALUE resource name
|
1985
|
+
--path=VALUE file or folder path
|
1690
1986
|
--link=VALUE public link to shared resource
|
1691
1987
|
--new-user-option=VALUE new user creation option
|
1692
1988
|
--from-folder=VALUE share to share source folder
|
1693
|
-
--scope=VALUE scope for AoC API calls
|
1989
|
+
--scope=VALUE OAuth scope for AoC API calls
|
1694
1990
|
--notify=VALUE notify users that file was received
|
1695
1991
|
--bulk=ENUM bulk operation: yes, no
|
1696
1992
|
--default-ports=ENUM use standard FASP ports or get from node api: yes, no
|
1697
1993
|
|
1698
1994
|
|
1699
1995
|
COMMAND: server
|
1700
|
-
SUBCOMMANDS:
|
1996
|
+
SUBCOMMANDS: health nodeadmin userdata configurator ctl download upload browse delete rename ls rm mv du info mkdir cp df md5sum
|
1701
1997
|
OPTIONS:
|
1702
1998
|
--url=VALUE URL of application, e.g. https://org.asperafiles.com
|
1703
1999
|
--username=VALUE username to log in
|
@@ -1708,7 +2004,7 @@ OPTIONS:
|
|
1708
2004
|
|
1709
2005
|
|
1710
2006
|
COMMAND: console
|
1711
|
-
SUBCOMMANDS: transfer
|
2007
|
+
SUBCOMMANDS: transfer health
|
1712
2008
|
OPTIONS:
|
1713
2009
|
--url=VALUE URL of application, e.g. https://org.asperafiles.com
|
1714
2010
|
--username=VALUE username to log in
|
@@ -1835,7 +2131,7 @@ updated: my_aoc_org
|
|
1835
2131
|
Define this [option preset](#lprt) as default configuration for the `aspera` plugin:
|
1836
2132
|
|
1837
2133
|
```
|
1838
|
-
$ ascli config id default set
|
2134
|
+
$ ascli config id default set aoc my_aoc_org
|
1839
2135
|
```
|
1840
2136
|
|
1841
2137
|
Note: Default `auth` method is `web` and default `redirect_uri` is `http://localhost:12345`. Leave those default values.
|
@@ -2209,7 +2505,7 @@ Then, create two shared folders located in two regions, in your files home, in a
|
|
2209
2505
|
Then, transfer between those:
|
2210
2506
|
|
2211
2507
|
```
|
2212
|
-
$ ascli -Paoc_show
|
2508
|
+
$ ascli -Paoc_show aoc files transfer --from-folder='IBM Cloud SJ' --to-folder='AWS Singapore' 100GB.file --ts=@json:'{"target_rate_kbps":"1000000","multi_session":10,"multi_session_threshold":1}'
|
2213
2509
|
```
|
2214
2510
|
|
2215
2511
|
* create registration key to register a node
|
@@ -2272,8 +2568,9 @@ Notes:
|
|
2272
2568
|
Examples:
|
2273
2569
|
|
2274
2570
|
```
|
2275
|
-
$ ascli aoc
|
2276
|
-
$ ascli aoc
|
2571
|
+
$ ascli aoc package send --value=@json:'{"name":"my title","note":"my note","recipients":["laurent.martin.aspera@fr.ibm.com","other@example.com"]}' --sources=@args my_file.dat
|
2572
|
+
$ ascli aoc package send --value=@json:'{"name":"my file in shared inbox","recipients":["The Shared Inbox"]}' my_file.dat --ts=@json:'{"target_rate_kbps":100000}'
|
2573
|
+
$ ascli aoc package send --workspace=eudemo --value=@json:'{"name":"my pack title","recipients":["Shared Inbox Name"],"metadata":[{"input_type":"single-text","name":"Project Id","values":["123"]},{"input_type":"single-dropdown","name":"Type","values":["Opt2"]},{"input_type":"multiple-checkbox","name":"CheckThose","values":["Check1","Check2"]},{"input_type":"date","name":"Optional Date","values":["2021-01-13T15:02:00.000Z"]}]}' ~/Documents/Samples/200KB.1
|
2277
2574
|
```
|
2278
2575
|
|
2279
2576
|
## <a name="aoccargo"></a>Receive new packages only
|
@@ -2288,10 +2585,10 @@ $ ascli aoc packages recv --id=ALL --once-only=yes --lock-port=12345
|
|
2288
2585
|
* `--once-only=yes` keeps memory of any downloaded package in persistency files located in the configuration folder.
|
2289
2586
|
* `--lock-port=12345` ensures that only one instance is started at the same time, to avoid collisions
|
2290
2587
|
|
2291
|
-
Typically, one would regularly execute this command on a regular basis, using the method
|
2588
|
+
Typically, one would regularly execute this command on a regular basis, using the method of your choice:
|
2292
2589
|
|
2293
|
-
* Windows scheduler
|
2294
|
-
* cron
|
2590
|
+
* Windows: [Task Scheduler](https://docs.microsoft.com/en-us/windows/win32/taskschd/task-scheduler-start-page)
|
2591
|
+
* Linux/Unix: [cron](https://www.man7.org/linux/man-pages/man5/crontab.5.html)
|
2295
2592
|
* etc...
|
2296
2593
|
|
2297
2594
|
## Download Files
|
@@ -2511,7 +2808,7 @@ This can also be set as default using a preset
|
|
2511
2808
|
One can test the "server" application using the well known demo server:
|
2512
2809
|
|
2513
2810
|
```
|
2514
|
-
$ ascli config id aspera_demo_server update --url=ssh://demo.asperasoft.com:33001 --username=asperaweb --password=
|
2811
|
+
$ ascli config id aspera_demo_server update --url=ssh://demo.asperasoft.com:33001 --username=asperaweb --password=_demo_pass_
|
2515
2812
|
$ ascli config id default set server aspera_demo_server
|
2516
2813
|
$ ascli server browse /aspera-test-dir-large
|
2517
2814
|
$ ascli server download /aspera-test-dir-large/200MB
|
@@ -2607,25 +2904,80 @@ to download files.
|
|
2607
2904
|
$ ascli node access_key create --value=@json:'{"id":"eudemo-sedemo","secret":"mystrongsecret","storage":{"type":"local","path":"/data/asperafiles"}}'
|
2608
2905
|
```
|
2609
2906
|
|
2610
|
-
# Plugin: IBM Aspera
|
2907
|
+
# Plugin: IBM Aspera Faspex5
|
2611
2908
|
|
2612
|
-
|
2909
|
+
3 authentication methods are supported:
|
2613
2910
|
|
2614
|
-
|
2911
|
+
* boot
|
2912
|
+
* web
|
2913
|
+
* jwt
|
2615
2914
|
|
2616
|
-
|
2915
|
+
For boot method:
|
2916
|
+
|
2917
|
+
* open a browser
|
2918
|
+
* start developer mode
|
2919
|
+
* login to faspex 5
|
2920
|
+
* find the first API call with `Authorization` token, and copy it (kind of base64 long string)
|
2921
|
+
|
2922
|
+
Use it as password and use `--auth=boot`.
|
2923
|
+
|
2924
|
+
```
|
2925
|
+
$ ascli conf id f5boot update --url=https://localhost/aspera/faspex --auth=boot --password=ABC.DEF.GHI...
|
2926
|
+
```
|
2927
|
+
|
2928
|
+
For web method, create an API client in Faspex, and use: --auth=web
|
2929
|
+
|
2930
|
+
For JWT, create an API client in Faspex with jwt supporot, and use: --auth=jwt
|
2931
|
+
as of beta£3 this does not allow regular users.
|
2932
|
+
|
2933
|
+
Ready to use Faspex5 with CLI.
|
2934
|
+
|
2935
|
+
Once the graphical registration form exist, ther bootstrap method can be removed.
|
2936
|
+
|
2937
|
+
# Plugin: IBM Aspera Faspex (4.x)
|
2938
|
+
|
2939
|
+
Notes:
|
2940
|
+
|
2941
|
+
* the command "v4" requires the use of APIv4, refer to the Faspex Admin manual on how to activate.
|
2942
|
+
* for full details on Faspex API, refer to: [Reference on Developer Site](https://www.ibm.com/products/aspera/developer)
|
2943
|
+
|
2944
|
+
## Receiving a Package
|
2945
|
+
|
2946
|
+
The command is `package recv`, possible methosd are:
|
2947
|
+
|
2948
|
+
* provide a package id with option `id`
|
2949
|
+
* provide a public link with option `link`
|
2950
|
+
* provide a `faspe:` URI with option `link`
|
2617
2951
|
|
2618
2952
|
```
|
2619
|
-
--
|
2953
|
+
$ ascli faspex package recv --id=12345
|
2954
|
+
$ ascli faspex package recv --link=faspe://...
|
2620
2955
|
```
|
2621
2956
|
|
2622
|
-
a
|
2957
|
+
If the package is in a specific dropbox, add option `recipient` for both the `list` and `recv` commands.
|
2623
2958
|
|
2624
|
-
|
2959
|
+
```
|
2960
|
+
$ ascli faspex package list --recipient='*thedropboxname'
|
2961
|
+
```
|
2962
|
+
|
2963
|
+
|
2964
|
+
|
2965
|
+
## Sending a Package
|
2966
|
+
|
2967
|
+
The command is `faspex package send`. Package information (title, note, metadata, options) is provided in option `delivery_info`. (Refer to Faspex API).
|
2968
|
+
|
2969
|
+
Example:
|
2970
|
+
|
2971
|
+
```
|
2972
|
+
$ ascli faspex package send --delivery-info=@json:'{"title":"my title","recipients":["laurent.martin.aspera@fr.ibm.com"]}' --url=https://faspex.corp.com/aspera/faspex --username=foo --password=bar /tmp/file1 /home/bar/file2
|
2973
|
+
```
|
2625
2974
|
|
2975
|
+
If the recipient is a dropbox, just provide the name of the dropbox in `recipients`: `"recipients":["My Dropbox Name"]`
|
2626
2976
|
|
2627
|
-
|
2628
|
-
|
2977
|
+
Additional optional parameters in `delivery_info`:
|
2978
|
+
|
2979
|
+
* Package Note: : `"note":"note this and that"`
|
2980
|
+
* Package Metadata: `"metadata":{"Meta1":"Val1","Meta2":"Val2"}`
|
2629
2981
|
|
2630
2982
|
## operation on dropboxes
|
2631
2983
|
|
@@ -2688,6 +3040,8 @@ $ for p in 1 2 3;do ascli shares2 admin users list --value=@json:'{"page":'$p'}'
|
|
2688
3040
|
# Plugin: IBM Cloud Object Storage
|
2689
3041
|
|
2690
3042
|
The IBM Cloud Object Storage provides the possibility to execute transfers using FASP.
|
3043
|
+
It uses the same transfer service as Aspera on Cloud.
|
3044
|
+
see [https://status.aspera.io](https://status.aspera.io)
|
2691
3045
|
|
2692
3046
|
Required options are either:
|
2693
3047
|
|
@@ -2744,7 +3098,14 @@ Endpoints for regions can be found by querying the `endpoints` URL.
|
|
2744
3098
|
For convenience, let us create a default configuration, for example:
|
2745
3099
|
|
2746
3100
|
```
|
2747
|
-
$ ascli conf id mycos update --service-credentials=@val:@json:@file
|
3101
|
+
$ ascli conf id mycos update --bucket=laurent --service-credentials=@val:@json:@file:~/service_creds.json --region=us-south
|
3102
|
+
$ ascli conf id default set cos mycos
|
3103
|
+
```
|
3104
|
+
|
3105
|
+
or using direct parameters:
|
3106
|
+
|
3107
|
+
```
|
3108
|
+
$ ascli conf id mycos update --bucket=mybucket --endpoint=https://s3.us-east.cloud-object-storage.appdomain.cloud --apikey=abcdefgh --crn=crn:v1:bluemix:public:iam-identity::a/xxxxxxx
|
2748
3109
|
$ ascli conf id default set cos mycos
|
2749
3110
|
```
|
2750
3111
|
|
@@ -2762,7 +3123,7 @@ to start from ma configuration file, using `ascli` standard options.
|
|
2762
3123
|
|
2763
3124
|
# Plugin: Preview
|
2764
3125
|
|
2765
|
-
The `preview` generates "previews" of graphical files, i.e. thumbnails (office, images, video) and video previews on
|
3126
|
+
The `preview` generates "previews" of graphical files, i.e. thumbnails (office, images, video) and video previews on storage for use primarily in the Aspera on Cloud application.
|
2766
3127
|
This is based on the "node API" of Aspera HSTS when using Access Keys only inside it's "storage root".
|
2767
3128
|
Several parameters can be used to tune several aspects:
|
2768
3129
|
|
@@ -2810,6 +3171,7 @@ The tool requires the following external tools available in the `PATH`:
|
|
2810
3171
|
* OptiPNG : `optipng`
|
2811
3172
|
* FFmpeg : `ffmpeg` `ffprobe`
|
2812
3173
|
* Libreoffice : `libreoffice`
|
3174
|
+
* ruby gem `mimemagic`
|
2813
3175
|
|
2814
3176
|
Here shown on Redhat/CentOS.
|
2815
3177
|
|
@@ -2821,6 +3183,26 @@ To check if all tools are found properly, execute:
|
|
2821
3183
|
$ ascli preview check
|
2822
3184
|
```
|
2823
3185
|
|
3186
|
+
### mimemagic
|
3187
|
+
|
3188
|
+
To benefit from extra mime type detection install gem mimemagic:
|
3189
|
+
|
3190
|
+
```
|
3191
|
+
# gem install mimemagic
|
3192
|
+
```
|
3193
|
+
|
3194
|
+
or to install an earlier version if any problem:
|
3195
|
+
|
3196
|
+
```
|
3197
|
+
# gem install mimemagic -v '~> 0.3.0'
|
3198
|
+
```
|
3199
|
+
|
3200
|
+
To use it, set option `mimemagic` to `yes`: `--mimemagic=yes`
|
3201
|
+
|
3202
|
+
If not used, Mime type used for conversion is the one provided by the node API.
|
3203
|
+
|
3204
|
+
If used, it the `preview` command will first analyse the file content using mimemagic, and if no match, will try by extension.
|
3205
|
+
|
2824
3206
|
### Image: Imagemagick and optipng
|
2825
3207
|
|
2826
3208
|
```
|
@@ -2845,90 +3227,111 @@ The generation of preview in based on the use of `unoconv` and `libreoffice`
|
|
2845
3227
|
# dnf install unoconv
|
2846
3228
|
```
|
2847
3229
|
|
3230
|
+
* Amazon Linux
|
3231
|
+
|
3232
|
+
```
|
3233
|
+
# amazon-linux-extras enable libreoffice
|
3234
|
+
# yum clean metadata
|
3235
|
+
# yum install libreoffice-core libreoffice-calc libreoffice-opensymbol-fonts libreoffice-ure libreoffice-writer libreoffice-pyuno libreoffice-impress
|
3236
|
+
# wget https://raw.githubusercontent.com/unoconv/unoconv/master/unoconv
|
3237
|
+
# mv unoconv /usr/bin
|
3238
|
+
# chmod a+x /usr/bin/unoconv
|
3239
|
+
```
|
2848
3240
|
|
2849
3241
|
## Configuration
|
2850
3242
|
|
2851
|
-
|
3243
|
+
The preview generator is run as a user, preferably a regular user (not root). When using object storage, any user can be used, but when using local storage it is usually better to use the user `xfer`, as uploaded files are under this identity: this ensures proper access rights. (we will assume this)
|
3244
|
+
|
3245
|
+
Like any `ascli` commands, parameters can be passed on command line or using a configuration [option preset](#lprt). The configuration file must be created with the same user used to run so that it is properly used on runtime.
|
3246
|
+
|
3247
|
+
Note that the `xfer` user has a special protected shell: `aspshell`, so changing identity requires specification of alternate shell:
|
2852
3248
|
|
2853
3249
|
```
|
2854
3250
|
# su -s /bin/bash - xfer
|
2855
|
-
$ ascli config id
|
2856
|
-
$ ascli config id default set preview
|
3251
|
+
$ ascli config id previewconf update --url=https://localhost:9092 --username=my_access_key --password=my_secret --skip-types=office --lock-port=12346
|
3252
|
+
$ ascli config id default set preview previewconf
|
2857
3253
|
```
|
2858
3254
|
|
2859
|
-
Here we assume that Office file generation is disabled, else remove
|
3255
|
+
Here we assume that Office file generation is disabled, else remove this option.
|
3256
|
+
`lock_port` prevents concurrent execution of generation when using a scheduler.
|
2860
3257
|
|
2861
|
-
|
3258
|
+
One can check if the access key is well configured using:
|
2862
3259
|
|
2863
3260
|
```
|
2864
|
-
$ ascli -
|
3261
|
+
$ ascli -Ppreviewconf node browse /
|
2865
3262
|
```
|
2866
3263
|
|
2867
3264
|
This shall list the contents of the storage root of the access key.
|
2868
3265
|
|
2869
3266
|
## Execution
|
2870
3267
|
|
2871
|
-
The tool intentionally supports only a "one shot" mode in order to avoid having a hanging process or using too many resources (calling REST api too quickly during the scan or event method).
|
2872
|
-
It needs to be run
|
3268
|
+
The tool intentionally supports only a "one shot" mode (no infinite loop) in order to avoid having a hanging process or using too many resources (calling REST api too quickly during the scan or event method).
|
3269
|
+
It needs to be run on a regular basis to create or update preview files. For that use your best
|
2873
3270
|
reliable scheduler. For instance use "CRON" on Linux or Task Scheduler on Windows.
|
2874
3271
|
|
2875
|
-
Typically, for "Access key" access, the system/transfer is `xfer`. So, in order to be
|
2876
|
-
should be run as user `xfer`.
|
3272
|
+
Typically, for "Access key" access, the system/transfer is `xfer`. So, in order to be consistent have generate the appropriate access rights, the generation process should be run as user `xfer`.
|
2877
3273
|
|
2878
3274
|
Lets do a one shot test, using the configuration previously created:
|
2879
3275
|
|
2880
3276
|
```
|
2881
3277
|
# su -s /bin/bash - xfer
|
2882
|
-
$ ascli preview scan --overwrite=always
|
3278
|
+
xfer$ ascli preview scan --overwrite=always
|
2883
3279
|
```
|
2884
3280
|
|
2885
3281
|
When the preview generator is first executed it will create a file: `.aspera_access_key`
|
2886
|
-
which contains the access key used.
|
3282
|
+
in the previews folder which contains the access key used.
|
2887
3283
|
On subsequent run it reads this file and check that previews are generated for the same access key, else it fails. This is to prevent clash of different access keys using the same root.
|
2888
3284
|
|
2889
3285
|
## Configuration for Execution in scheduler
|
2890
3286
|
|
2891
|
-
Here is an example of configuration for use with cron on Linux.
|
3287
|
+
Here is an example of configuration for use with cron on Linux.
|
3288
|
+
Adapt the scripts to your own preference.
|
2892
3289
|
|
2893
3290
|
We assume here that a configuration preset was created as shown previously.
|
2894
3291
|
|
2895
|
-
|
3292
|
+
Lets first setup a script that will be used in the sceduler and sets up the environment.
|
3293
|
+
|
3294
|
+
Example of startup script `cron_ascli`, which sets the Ruby environment and adds some timeout protection:
|
3295
|
+
|
3296
|
+
```
|
3297
|
+
#!/bin/bash
|
3298
|
+
# set a timeout protection, just in case
|
3299
|
+
case "$*" in *trev*) tmout=10m ;; *) tmout=30m ;; esac
|
3300
|
+
. /etc/profile.d/rvm.sh
|
3301
|
+
rvm use 2.6 --quiet
|
3302
|
+
exec timeout ${tmout} ascli "${@}"
|
3303
|
+
```
|
3304
|
+
|
3305
|
+
Here the cronjob is created for user `xfer`.
|
2896
3306
|
|
2897
3307
|
```
|
2898
|
-
|
2899
|
-
|
2900
|
-
|
3308
|
+
xfer$ crontab<<EOF
|
3309
|
+
0 * * * * /home/xfer/cron_ascli preview scan --logger=syslog --display=error
|
3310
|
+
2-59 * * * * /home/xfer/cron_ascli preview trev --logger=syslog --display=error
|
2901
3311
|
EOF
|
2902
3312
|
```
|
2903
3313
|
|
2904
|
-
|
3314
|
+
Note that the loging options are kept in the cronfile instead of conf file to allow execution on command line with output on command line.
|
2905
3315
|
|
2906
3316
|
## Candidate detection for creation or update (or deletion)
|
2907
3317
|
|
2908
|
-
The tool
|
3318
|
+
The tool generates preview files using those commands:
|
2909
3319
|
|
2910
3320
|
* `trevents` : only recently uploaded files will be tested (transfer events)
|
2911
3321
|
* `events` : only recently uploaded files will be tested (file events: not working)
|
2912
|
-
* `scan` :
|
2913
|
-
* `
|
2914
|
-
* `file` : for an individual file generation
|
2915
|
-
|
2916
|
-
Note that for the `event`, the option `iteration_file` should be specified so that
|
2917
|
-
successive calls only process new events. This file will hold an identifier
|
2918
|
-
telling from where to get new events.
|
2919
|
-
|
2920
|
-
It is also possible to test a local file, using the `test` command.
|
3322
|
+
* `scan` : recursively scan all files under the access key's "storage root"
|
3323
|
+
* `test` : test using a local file
|
2921
3324
|
|
2922
3325
|
Once candidate are selected, once candidates are selected,
|
2923
3326
|
a preview is always generated if it does not exist already,
|
2924
3327
|
else if a preview already exist, it will be generated
|
2925
|
-
using one of three overwrite
|
3328
|
+
using one of three values for the `overwrite` option:
|
2926
3329
|
|
2927
3330
|
* `always` : preview is always generated, even if it already exists and is newer than original
|
2928
3331
|
* `never` : preview is generated only if it does not exist already
|
2929
3332
|
* `mtime` : preview is generated only if the original file is newer than the existing
|
2930
3333
|
|
2931
|
-
Deletion of preview for deleted source files: not implemented yet.
|
3334
|
+
Deletion of preview for deleted source files: not implemented yet (TODO).
|
2932
3335
|
|
2933
3336
|
If the `scan` or `events` detection method is used, then the option : `skip_folders` can be used to skip some folders. It expects a list of path relative to the storage root (docroot) starting with slash, use the `@json:` notation, example:
|
2934
3337
|
|
@@ -2938,6 +3341,14 @@ $ ascli preview scan --skip-folders=@json:'["/not_here"]'
|
|
2938
3341
|
|
2939
3342
|
The option `folder_reset_cache` forces the node service to refresh folder contents using various methods.
|
2940
3343
|
|
3344
|
+
When scanning the option `value` has the same behaviour as for the `node find` command.
|
3345
|
+
|
3346
|
+
For instance to filter out files beginning with `._` do:
|
3347
|
+
|
3348
|
+
```
|
3349
|
+
... --value='exec:!f["name"].start_with?("._") or f["name"].eql?(".DS_Store")'
|
3350
|
+
```
|
3351
|
+
|
2941
3352
|
## Preview File types
|
2942
3353
|
|
2943
3354
|
Two types of preview can be generated:
|
@@ -3075,7 +3486,7 @@ Note that in addition, many "EX_" [_transfer-spec_](#transferspec) parameters ar
|
|
3075
3486
|
## Simple session
|
3076
3487
|
|
3077
3488
|
```
|
3078
|
-
MY_TSPEC='{"remote_host":"demo.asperasoft.com","remote_user":"asperaweb","ssh_port":33001,"remote_password":"
|
3489
|
+
MY_TSPEC='{"remote_host":"demo.asperasoft.com","remote_user":"asperaweb","ssh_port":33001,"remote_password":"_demo_pass_","direction":"receive","destination_root":"./test.dir","paths":[{"source":"/aspera-test-dir-tiny/200KB.1"}],"resume_level":"none"}'
|
3079
3490
|
|
3080
3491
|
echo "${MY_TSPEC}"|asession
|
3081
3492
|
```
|
@@ -3088,7 +3499,7 @@ This is particularly useful for a persistent session ( with the [_transfer-spec_
|
|
3088
3499
|
|
3089
3500
|
```
|
3090
3501
|
$ asession
|
3091
|
-
{"remote_host":"demo.asperasoft.com","ssh_port":33001,"remote_user":"asperaweb","remote_password":"
|
3502
|
+
{"remote_host":"demo.asperasoft.com","ssh_port":33001,"remote_user":"asperaweb","remote_password":"_demo_pass_","direction":"receive","destination_root":".","keepalive":true,"resume_level":"none"}
|
3092
3503
|
{"type":"START","source":"/aspera-test-dir-tiny/200KB.2"}
|
3093
3504
|
{"type":"DONE"}
|
3094
3505
|
```
|
@@ -3182,6 +3593,34 @@ $ ascli server upload source_hot --to-folder=/Upload/target_hot --lock-port=1234
|
|
3182
3593
|
|
3183
3594
|
The local (here, relative path: source_hot) is sent (upload) to basic fasp server, source files are deleted after transfer. growing files will be sent only once they dont grow anymore (based ona 8 second cooloff period). If a transfer takes more than the execution period, then the subsequent execution is skipped (lock-port).
|
3184
3595
|
|
3596
|
+
# Aspera Health check and Nagios
|
3597
|
+
|
3598
|
+
Each plugin provide a `health` command that will check the health status of the application. Example:
|
3599
|
+
|
3600
|
+
```
|
3601
|
+
$ ascli console health
|
3602
|
+
+--------+-------------+------------+
|
3603
|
+
| status | component | message |
|
3604
|
+
+--------+-------------+------------+
|
3605
|
+
| ok | console api | accessible |
|
3606
|
+
+--------+-------------+------------+
|
3607
|
+
```
|
3608
|
+
|
3609
|
+
Typically, the health check uses the REST API of the application with the following exception: the `server` plugin allows checking health by:
|
3610
|
+
|
3611
|
+
* issuing a transfer to the server
|
3612
|
+
* checking web app status with `asctl all:status`
|
3613
|
+
* checking daemons process status
|
3614
|
+
|
3615
|
+
`ascli` can be called by Nagios to check the health status of an Aspera server. The output can be made compatible to Nagios with option `--format=nagios` :
|
3616
|
+
|
3617
|
+
```
|
3618
|
+
$ ascli server health transfer --to-folder=/Upload --format=nagios --progress=none
|
3619
|
+
OK - [transfer:ok]
|
3620
|
+
$ ascli server health asctlstatus --cmd_prefix='sudo ' --format=nagios
|
3621
|
+
OK - [NP:running, MySQL:running, Mongrels:running, Background:running, DS:running, DB:running, Email:running, Apache:running]
|
3622
|
+
```
|
3623
|
+
|
3185
3624
|
# Module: `Aspera`
|
3186
3625
|
|
3187
3626
|
Main components:
|
@@ -3201,6 +3640,16 @@ This sample code shows some example of use of the API as well as
|
|
3201
3640
|
REST API.
|
3202
3641
|
Note: although nice, it's probably a good idea to use RestClient for REST.
|
3203
3642
|
|
3643
|
+
Example of use of the API of Aspera on Cloud:
|
3644
|
+
|
3645
|
+
```
|
3646
|
+
require 'aspera/aoc'
|
3647
|
+
|
3648
|
+
aoc=Aspera::AoC.new(url: 'https://sedemo.ibmaspera.com',auth: :jwt, scope: 'user:all', private_key: File.read(File.expand_path('~/.aspera/ascli/aspera_on_cloud_key')),username: 'laurent.martin.aspera@fr.ibm.com',subpath: 'api/v1')
|
3649
|
+
|
3650
|
+
aoc.read('self')
|
3651
|
+
```
|
3652
|
+
|
3204
3653
|
# History
|
3205
3654
|
|
3206
3655
|
When I joined Aspera, there was only one CLI: `ascp`, which is the implementation of the FASP protocol, but there was no CLI to access the various existing products (Server, Faspex, Shares). Once, Serban (founder) provided a shell script able to create a Faspex Package using Faspex REST API. Since all products relate to file transfers using FASP (ascp), I thought it would be interesting to have a unified CLI for transfers using FASP. Also, because there was already the `ascp` tool, I thought of an extended tool : `eascp.pl` which was accepting all `ascp` options for transfer but was also able to transfer to Faspex and Shares (destination was a kind of URI for the applications).
|
@@ -3217,11 +3666,43 @@ So, it evolved into `ascli`:
|
|
3217
3666
|
* supports transfers with multiple [Transfer Agents](#agents), that's why transfer parameters moved from ascp command line to [_transfer-spec_](#transferspec) (more reliable , more standard)
|
3218
3667
|
* `ruby` is consistent with other Aspera products
|
3219
3668
|
|
3669
|
+
# Changes (Release notes)
|
3220
3670
|
|
3671
|
+
* 4.2.1
|
3221
3672
|
|
3222
|
-
|
3673
|
+
* new: command `faspex package recv` supports link of type: `faspe:`
|
3674
|
+
* new: command `faspex package recv` supports option `recipient` to specify dropbox with leading `*`
|
3223
3675
|
|
3224
|
-
* 4.
|
3676
|
+
* 4.2.0
|
3677
|
+
|
3678
|
+
* new: command `aoc remind` to receive organization membership by email
|
3679
|
+
* new: in `preview` option `value` to filter out on file name
|
3680
|
+
* new: `initdemo` to initialize for demo server
|
3681
|
+
* new: `direct` transfer agent options: `spawn_timeout_sec` and `spawn_delay_sec`
|
3682
|
+
* fix: on Windows `conf ascp use` expects ascp.exe
|
3683
|
+
* fix: (break) multi_session_threshold is Integer, not String
|
3684
|
+
* fix: `conf ascp install` renames sdk folder if it already exists (leftover shared lib may make fail)
|
3685
|
+
* fix: removed replace_illegal_chars from default aspera.conf causing "Error creating illegal char conversion table"
|
3686
|
+
* change: (break) `aoc apiinfo` is removed, use `aoc servers` to provide the list of cloud systems
|
3687
|
+
* change: (break) parameters for resume in `transfer-info` for `direct` are now in sub-key `"resume"`
|
3688
|
+
|
3689
|
+
* 4.1.0
|
3690
|
+
|
3691
|
+
* fix: remove keys from transfer spec and command line when not needed
|
3692
|
+
* fix: default to create_dir:true so that sending single file to a folder does not rename file if folder does not exist
|
3693
|
+
* new: update documentation with regard to offline and docker installation
|
3694
|
+
* new: renamed command `nagios_check` to `health`
|
3695
|
+
* new: agent `http_gw` now supports upload
|
3696
|
+
* new: added option `sdk_url` to install SDK from local file for offline install
|
3697
|
+
* new: check new gem version periodically
|
3698
|
+
* new: the --fields= option, support -_fieldname_ to remove a field from default fields
|
3699
|
+
* new: Oauth tokens are discarded automatically after 30 minutes (useful for COS delegated refresh tokens)
|
3700
|
+
* new: mimemagic is now optional, needs manual install for `preview`, compatible with version 0.4.x
|
3701
|
+
* new: AoC a password can be provided for a public link
|
3702
|
+
* new: `conf doc` take an optional parameter to go to a section
|
3703
|
+
* new: initial support for Faspex 5 Beta 1
|
3704
|
+
|
3705
|
+
* 4.0.0
|
3225
3706
|
|
3226
3707
|
* now available as open source at [https://github.com/IBM/aspera-cli](https://github.com/IBM/aspera-cli) with general cleanup
|
3227
3708
|
* changed default tool name from `mlia` to `ascli`
|
@@ -3349,7 +3830,7 @@ So, it evolved into `ascli`:
|
|
3349
3830
|
|
3350
3831
|
* 0.10.6
|
3351
3832
|
|
3352
|
-
* FaspManager: transfer spec `authentication` no more needed for local tranfer to use
|
3833
|
+
* FaspManager: transfer spec `authentication` no more needed for local tranfer to use Aspera public keys. public keys will be used if there is a token and no key or password is provided.
|
3353
3834
|
* gem version requirements made more open
|
3354
3835
|
|
3355
3836
|
* 0.10.5
|
@@ -3576,11 +4057,15 @@ Breaking change:
|
|
3576
4057
|
|
3577
4058
|
* Breaking change: "files" application renamed to "aspera" (for "Aspera on Cloud"). "repository" renamed to "files". Default is automatically reset, e.g. in config files and change key "files" to "aspera" in [option preset](#lprt) "default".
|
3578
4059
|
|
3579
|
-
# BUGS
|
4060
|
+
# BUGS, FEATURES, CONTRIBUTION
|
3580
4061
|
|
3581
|
-
|
4062
|
+
For issues or feature requests use the Github repository and issues.
|
3582
4063
|
|
3583
|
-
|
4064
|
+
You can also contribute to this open source project.
|
4065
|
+
|
4066
|
+
One can also create one's own command nplugin.
|
4067
|
+
|
4068
|
+
## Only one value for any option
|
3584
4069
|
|
3585
4070
|
Some commands and sub commands may ask for the same option name.
|
3586
4071
|
Currently, since option definition is position independant (last one wins), it is not possible
|
@@ -3594,7 +4079,8 @@ This happens typically for the `node` sub command, e.g. identify the node by nam
|
|
3594
4079
|
|
3595
4080
|
## ED255519 key not supported
|
3596
4081
|
|
3597
|
-
|
4082
|
+
ED25519 keys are deactivated since version 0.9.24 so this type of key will just be ignored.
|
4083
|
+
|
3598
4084
|
Without this deactivation, if such key was present the following error was generated:
|
3599
4085
|
|
3600
4086
|
```
|
@@ -3604,7 +4090,17 @@ OpenSSH keys only supported if ED25519 is available
|
|
3604
4090
|
Which meant that you do not have ruby support for ED25519 SSH keys.
|
3605
4091
|
You may either install the suggested Gems, or remove your ed25519 key from your `.ssh` folder to solve the issue.
|
3606
4092
|
|
3607
|
-
|
4093
|
+
## Error "Remote host is not who we expected"
|
4094
|
+
|
4095
|
+
`ascp` version 4.x changed the algorithm used to check the SSH server certificate. To ignore the certificate (SSH fingerprint) add option on client side:
|
4096
|
+
|
4097
|
+
```
|
4098
|
+
--ts=@json:'{"sshfp":null}'
|
4099
|
+
```
|
4100
|
+
|
4101
|
+
Refer to ES-1944 in release notes of 4.1 and to [HSTS admin manual section "Configuring Transfer Server Authentication With a Host-Key Fingerprint"](https://www.ibm.com/docs/en/ahts/4.2?topic=upgrades-configuring-ssh-server): if you have access to server side, basically disable other SSH host keys than RSA.
|
4102
|
+
|
4103
|
+
## Miscelaneous
|
3608
4104
|
|
3609
4105
|
* remove rest and oauth classes and use ruby standard gems:
|
3610
4106
|
|
@@ -3620,9 +4116,3 @@ You may either install the suggested Gems, or remove your ed25519 key from your
|
|
3620
4116
|
* Going through proxy: use env var http_proxy and https_proxy, no_proxy
|
3621
4117
|
|
3622
4118
|
* easier use with https://github.com/pmq20/ruby-packer
|
3623
|
-
|
3624
|
-
# Contribution
|
3625
|
-
|
3626
|
-
Send comments !
|
3627
|
-
|
3628
|
-
Create your own plugin !
|