💾 Archived View for uhc.megaburken.net › help › aget captured on 2024-12-17 at 11:20:31.

View Raw

More Information

⬅️ Previous capture (2023-01-29)

🚧 View Differences

-=-=-=-=-=-=-

aget - A small and performant HTTP/HTTPS/Gemini download tool

Usage:
> aget ?
URL/A,TO,BUFSIZE/K/N,MINIMIZEDELAY/S,TIMEOUTSECONDS/K/N,DUMPHEADERS/K,TOSTDOUT/S,ONLYPROGRESS/S,QUIET/S:

URL:            The URL to download. If no protocol part is given in the
                URL, it defaults to http://.
TO:             Optional destination path. The default is to download to
                the current directory, using the file name from the URL. If
                a drive or directory is specified, it will download there
                instead. If a path with file name is specified, it will
                download to that.
BUFSIZE:        Total buffer size in Bytes. This will be rounded to a size
                which makes sense for writing to a file system. Default is
                128kB.
MINIMIZEDELAY:  Do not wait until the buffer is filled up before writing.
                Beneficial for minimizing delay, if you are not downloading
                to a normal filesystem, but instead to something that does
                not prefer evenly sized chunks like PIPE:.
TIMEOUTSECONDS: How many seconds to wait until connection times out. The
                default is whatever the connect timeout in the TCP/IP is.
DUMPHEADERS:    Dump the headers from the server response to this file.
                The format can be parsed by dos.library/ReadArgs() and
                friends.
TOSTDOUT:       Print the downloaded data to the standard output instead of
                downloading it to disk.
ONLYPROGRESS:   Only show the progress bar during download.
QUIET:          Print no output, except if an error is encountered.

Example:
1> aget https://uhc.a1k.org/UHCTools.lha 
Buffer size: 128k
Connected to uhc.a1k.org:443
TLSv1.3 connection is using TLS_CHACHA20_POLY1305_SHA256
Sent GET request!
Server response: 200 OK
Receiving file: 0% - [oooooooooooooooooooooooooooooooo] - 100% (53.23kB)
53.23kB received in 1.07s - 49.42kB/s

Additional usage details:
- A HTTP proxy can be used by setting the ENV-variable http_proxy to the URL
  of the proxy.
- Using aget for HTTPS or Gemini requires AmiSSL 4+.

Relevant implementation details:
It uses double buffering and asynchronous writes - downloads from the
network to one buffer at the same time as it writes the other buffer to disk.
This more or less removes the effect seek times and slow disks has on the
download speed (as long as the disk is at least as fast as the network).
This will be most effective if you have a real DMA disk controller, as then
the disk writes taking place at the same time as the network download will
steal a minimum of CPU time from the TCP/IP stack.