You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The <%=gemspec.name%> Ruby gem offers a powerful command-line interface (CLI, <%=tool%>) for IBM Aspera software, facilitating seamless interaction with Aspera APIs and enabling high-performance file transfers.
35
-
It also serves as an excellent resource for developers seeking to explore and understand the Aspera API ecosystem.
34
+
The <%=gemspec.name%> Ruby gem offers a powerful command-line interface (CLI, <%=tool%>) for IBM Aspera software, enabling seamless interaction with Aspera APIs and high-performance file transfers.
35
+
It also serves as a useful resource for developers who want to explore and understand the Aspera API ecosystem.
> If you are scripting or automating transfers from the command line, <%=tool%> is the right choice.
49
49
> If you are developing an application, prefer the APIs or SDKs instead.
50
50
51
-
The <%=tool%> tool is designed for command-line interaction with IBM Aspera products, enabling users to execute remote commands and perform file transfers efficiently.
52
-
It supports both interactive terminal operations (e.g., maintenance tasks on VT100-compatible terminals) and scripting use cases (e.g., batch jobs via shell scripts or cron).
51
+
<%=tool%> is designed for command-line interaction with IBM Aspera products, enabling users to execute remote commands and perform high-performance file transfers.
52
+
It supports both interactive terminal operations (e.g., maintenance tasks on VT100-compatible terminals) and scripting use cases (e.g., batch jobs via shell scripts or `cron`).
53
53
54
54
Internally, <%=tool%> integrates several components:
55
55
@@ -58,19 +58,20 @@ Internally, <%=tool%> integrates several components:
58
58
- REST API calls, including OAuth (like `curl`)
59
59
- Aspera’s `ascp` for high-speed file transfers
60
60
61
-
For programmatic integration in languages such as C/C++, Go, Python, NodeJS, and others, it is recommended to use the [Aspera APIs](https://ibm.biz/aspera_api) directly.
61
+
For programmatic integration with languages such as C/C++, Go, Python, NodeJS, and others, it is recommended to use the [Aspera APIs](https://ibm.biz/aspera_api) directly.
62
62
These include:
63
63
64
64
- REST APIs for products like Aspera on Cloud (AoC), Faspex, and Node
65
65
- The Transfer Daemon with gRPC interfaces and language-specific stubs (C/C++, Python, .NET/C#, Java, Go, Ruby, Rust, etc.)
66
66
67
-
Using these APIs is generally more suitable for long-term development and maintenance.
67
+
These APIs are generally more suitable for long-term development and maintenance.
68
68
Example implementations can be found at: <https://github.com/laurent-martin/aspera-api-examples>.
69
69
70
70
For scripting and ad-hoc command-line tasks, <%=tool%> is ideal.
71
71
It is developer-friendly and well-suited for quickly testing and learning Aspera APIs (see [Logging, Debugging](#logging-debugging)).
72
72
73
-
Clarifying the CLI landscape:
73
+
**CLI landscape overview**
74
+
74
75
`ascp` is the low-level command-line utility that implements the FASP protocol and is used for actual data transfers.
75
76
Every Aspera transfer involves an `ascp` process on both the client and server sides.
76
77
While `ascp` can be used directly, it is limited to basic send/receive operations and lacks features like configuration management, automatic resume, and remote file listing.
@@ -84,18 +85,18 @@ Using [Windows PowerShell or cmd](#shell-parsing-for-windows) is also possible.
84
85
> [!NOTE]
85
86
> All command line examples in sections titled **<%=sample_commands_title(:_plugin_name_)%>** are verified during version validation.
86
87
87
-
Command line arguments beginning with `my_` in examples, e.g. `my_param_value`, are user-provided values, and not fixed value commands.
88
+
Command line arguments beginning with `my_` in examples, e.g. `my_param_value`, are user-provided values, not fixed value commands.
88
89
89
90
<%=tool%> is an API **Client** toward the remote Aspera application **Server** (Faspex, HSTS, etc.)
90
91
91
92
Some commands will start an Aspera transfer (e.g. `upload`).
92
-
The transfer is not directly implemented in <%=tool%>; rather, <%=tool%> uses one of the external Aspera Transfer Clients called **[Transfer Agents](#transfer-clients-agents)**.
93
+
The transfer is not implemented directly in <%=tool%>; rather, <%=tool%> uses one of the external Aspera Transfer Clients called **[Transfer Agents](#transfer-clients-agents)**.
93
94
94
95
> [!NOTE]
95
96
> A **[Transfer Agent](#transfer-clients-agents)** is a client for the remote Transfer Server (HSTS/HSTE).
96
97
> It can be local, or remote.
97
98
> For example a remote Aspera Transfer Server may be used as a transfer agent (using Node API).
98
-
> i.e. using option `--transfer=node`
99
+
> i.e. using the option `--transfer=node`
99
100
100
101
## Quick Start
101
102
@@ -105,7 +106,7 @@ This section walks you through your first interaction with <%=tool%> on Linux.
105
106
106
107
- Get the <%=tool%> binary for Linux (.tgz) in the [release section of the GitHub repository](https://github.com/IBM/aspera-cli/releases).
107
108
108
-
- Decompress to get the executable:
109
+
- Decompress the archive to get the executable:
109
110
110
111
```shell
111
112
mkdir -p $HOME/bin
@@ -115,7 +116,7 @@ export PATH=$PATH:$HOME/bin
115
116
```
116
117
117
118
> [!NOTE]
118
-
> For other OSes, complete the [Installation](#installation) section (Ruby, Gem, FASP) to get <%=tool%> set up on your system.
119
+
> For other operating systems, complete the [Installation](#installation) section (Ruby, Gem, FASP) to get <%=tool%> set up on your system.
119
120
120
121
- Once installed, confirm <%=tool%> is accessible by checking its version:
121
122
@@ -135,7 +136,7 @@ export PATH=$PATH:$HOME/bin
135
136
136
137
### Option A - Test with the Aspera Demo Server
137
138
138
-
- Run the following two commands to initialize the demo environment:
139
+
- Run the following command to initialize the demo environment:
139
140
140
141
```shell
141
142
<%=cmd%> config initdemo
@@ -217,29 +218,29 @@ If you'd prefer to test against Aspera on Cloud, skip ahead to the [AoC Wizard](
217
218
218
219
## Installation
219
220
220
-
There are several possibilities to install <%=tool%>:
221
+
There are several ways to install <%=tool%>:
221
222
222
223
- Using a Ruby environment directly on the host operating system (Linux, macOS, Windows).
223
224
224
-
This is the most generic method.
225
-
It consists in installing:
225
+
This is the most general method.
226
+
It consists of installing:
226
227
- The [Ruby language](#ruby),
227
228
- Then [<%=gemspec.name%>](#ruby-gem-aspera-cli) Ruby gem,<!-- markdownlint-disable-line -->
228
229
-[Aspera Transfer Daemon (`ascp`)](#fasp-protocol-ascp).
229
230
- As a [single file executable](#single-file-executable)
230
231
231
-
This is easy, but only a limited number of platforms is supported.
232
+
This method is simple, but only a limited number of platforms are supported.
232
233
- As a [container](#container) (`docker`, `podman`, `singularity`).
233
234
234
-
The following sections provide information on the various installation methods.
235
+
The following sections describe the various installation methods.
235
236
236
237
An internet connection is required for the installation.
237
-
If you don't have internet for the installation, refer to section [Installation without internet access](#installation-in-air-gapped-environment).
238
+
If you do not have internet access, refer to section [Installation without internet access](#installation-in-air-gapped-environment).
238
239
239
240
### Single file executable
240
241
241
242
> [!WARNING]
242
-
> Only on a limited number of platforms.
243
+
> Available only on a limited number of platforms.
243
244
244
245
<%=tool%> is available as a single **platform-dependent executable** in the [Releases](https://github.com/IBM/aspera-cli/releases).
245
246
@@ -261,7 +262,7 @@ chmod a+x <%=cmd%>
261
262
> [!WARNING]
262
263
> On Linux, the executable requires a minimum GLIBC version, specified in the executable name on download site.
263
264
264
-
On Linux, check your system's GLIBC version on this site: [repology.org](https://repology.org/project/glibc/versions), or check your GLIBC version with `ldd`:
265
+
On Linux, you can check your system's GLIBC version on this site: [repology.org](https://repology.org/project/glibc/versions), or check your GLIBC version with `ldd`:
265
266
266
267
```shell
267
268
ldd --version | head -n1
@@ -290,9 +291,9 @@ The required GLIBC version for `ascp` can be found in the [Release Notes of HSTS
290
291
291
292
A Ruby interpreter is required to run <%=tool%>.
292
293
293
-
Required Ruby <%=ruby_version%>.
294
+
Required Ruby version is <%=ruby_version%>.
294
295
295
-
**Ruby can be installed using any method**: `rpm`, `yum`, `dnf`, `rvm`, `rbenv`, `brew`, Windows installer, ...
296
+
**Ruby can be installed using any of the following methods**: `rpm`, `yum`, `dnf`, `rvm`, `rbenv`, `brew`, Windows installer, ...
296
297
297
298
**In priority**, refer to the official Ruby documentation:
298
299
@@ -310,11 +311,11 @@ Manual installation:
310
311
311
312
- Navigate to [https://rubyinstaller.org/](https://rubyinstaller.org/)→**Downloads**.
312
313
- Download the latest Ruby installer **"with devkit"**. (`Msys2` is needed to install some native extensions, such as `grpc`)
313
-
- Execute the installer which installs by default in: `C:\RubyVV-x64` (`VV` is the version number)
314
+
- Execute the installer, which installs by default in: `C:\RubyVV-x64` (`VV` is the version number)
314
315
- At the end of the installation procedure, the `Msys2` installer is automatically executed, select option 3 (`Msys2` and `mingw`)
315
316
- Then install the `aspera-cli` gem and Aspera Transfer Daemon (see next sections)
316
317
317
-
Automated installation, with internet access:
318
+
Automated installation (with internet access):
318
319
319
320
The Ruby installer supports silent installation, to see the options, execute it with `/help`, or refer to the [Ruby Installer FAQ](https://github.com/oneclick/rubyinstaller2/wiki/FAQ)
320
321
@@ -352,15 +353,15 @@ brew install ruby
352
353
353
354
This installs a recent Ruby suitable for <%=tool%>.
354
355
355
-
To add PATH to Ruby on Apple Silicon, add the following lines to your shell configuration file (i.e. `~/.zshrc` if you are using `zsh`, or `~/.bash_profile` for `bash`):
356
+
To add Ruby to your `PATH` on Apple Silicon, add the following lines to your shell configuration file (i.e. `~/.zshrc` if you are using `zsh`, or `~/.bash_profile` for `bash`):
The user installs the gem with `HighSecurity` or `MediumSecurity`: this will succeed only of the gem is trusted:
619
+
The user installs the gem with `HighSecurity` or `MediumSecurity`: this will succeed only if the gem is trusted:
619
620
620
621
```shell
621
622
gem install -P MediumSecurity <%=gemspec.name%>
@@ -699,7 +700,7 @@ To download it, pipe to `config download`:
699
700
<%=cmd%> config transferd list --select=@json:'{"platform":"osx-arm64","version":"1.1.3"}' --fields=url |<%=cmd%> config download @stdin:
700
701
```
701
702
702
-
If installation from a local file preferred (air-gapped installation) instead of fetching from internet: one can specify the location of the SDK file with option `sdk_url`:
703
+
If installation from a local file is preferred (air-gapped installation) instead of fetching from internet: one can specify the location of the SDK file with option `sdk_url`:
> The local file (`samplefile.txt`) is specified relative to storage view from container (`/xferfiles`) mapped to the host folder `$HOME/xferdir`
981
982
982
983
> [!WARNING]
983
-
> Do not use too many volumes, as the legacy `aufs` limits the number.
984
+
> Do not use too many volumes, as the legacy `aufs`driver limits their number.
984
985
> (anyway, prefer to use `overlay2`)
985
986
986
987
#### Container: Offline installation
@@ -1129,7 +1130,7 @@ For example, on Linux to force the use the system's certificate store:
1129
1130
`ascp` also needs to validate certificates when using **WSS** for transfer TCP part (instead of **SSH**).
1130
1131
1131
1132
By default,`ascp` uses a hard coded root location `OPENSSLDIR`.
1132
-
Original `ascp`'s hardcoded locations can be found using:
1133
+
Original `ascp`'s hard-coded locations can be found using:
1133
1134
1134
1135
```shell
1135
1136
<%=cmd%> config ascp info --fields=openssldir
@@ -1280,7 +1281,7 @@ It's up to the program to split arguments:
1280
1281
-[Windows: How Command Line Parameters Are Parsed](https://daviddeley.com/autohotkey/parameters/parameters.htm#RUBY)
1281
1282
-[Understand Quoting and Escaping of Windows Command Line Arguments](https://web.archive.org/web/20190316094059/http://www.windowsinspired.com/understanding-the-command-line-string-and-arguments-received-by-a-windows-program/)
1282
1283
1283
-
<%tool%> is a Ruby program, so Ruby parses the command line (received with `GetCommandLineW`) into arguments and provides them to the Ruby code (`$0` and `ARGV`).
1284
+
<%=tool%> is a Ruby program, so Ruby parses the command line (received with `GetCommandLineW`) into arguments and provides them to the Ruby code (`$0` and `ARGV`).
1284
1285
Ruby vaguely follows the Microsoft C/C++ parameter parsing rules.
1285
1286
(See `w32_cmdvector` in Ruby source [`win32.c`](https://github.com/ruby/ruby/blob/master/win32/win32.c#L1766)) : <!--cspell:disable-line-->
1286
1287
@@ -4162,9 +4163,7 @@ File transfer operations are monitored, and a progress bar is displayed on the t
4162
4163
4163
4164
The same progress bar is used for any type of transfer, using `ascp`, server to server, using HTTPS, etc.
4164
4165
4165
-
### Daemon and Scheduler
4166
-
4167
-
#### Automated Execution
4166
+
### Scheduler
4168
4167
4169
4168
<%=tool%> does not include a built-in scheduler.
4170
4169
Automated execution should therefore rely on operating system facilities.
0 commit comments