mirror of
https://github.com/aria2/aria2.git
synced 2024-12-29 14:14:53 +00:00
cd91e2ea4f
* src/Xml2MetalinkProcessor.h (xpathExists): New function. * src/Xml2MetalinkProcessor.cc (xpathExists): New function. Not to send HEAD request if filename and size are available in Metalink file: * src/UrlRequestInfo.h (filename): New variable. (totalLength): New variable. (setTotalLength): New function. (setFilename): New function. * src/MetalinkRequestInfo.cc (execute): Set filename and size to UrlRequestInfo. * src/MetalinkEntry.cc (MetalinkEntry): Initialize size with 0. * src/UrlRequestInfo.cc (execute): Set filename and size to SegmentMan. Not to download rest of the files after selected files are downloaded in BitTorrent: * src/PieceStorage.h (allDownloadFinished): New function. * src/DefaultBtAnnounce.cc (isCompleteAnnounceReady): Use allDownloadFinished instead of downloadFinished. (getAnnounceUrl): Use allDownloadFinished instead of downloadFinished. * src/DefaultPieceStorage.cc (completePiece): Use allDownloadFinished instead of downloadFinished. Commented out the call to finishSelectiveDownloadingMode(). (downloadFinished): Call isFilteredAllBitSet() instead of isAllBitSet(). (allDownloadFinished): New function. * src/DefaultBtInteractive.cc (addBitfieldMessageToQueue): Call allDownloadFinished() instead of downloadFinished(). (checkHave): Call allDownloadFinished() instead of downloadFinished(). * src/TorrentDownloadEngine.cc (onEndOfRun): Call allDownloadFinished() instead of downloadFinished(). * src/BitfieldMan.h (isFilteredAllBitSet): New function. * src/ShareRatioSeedCriteria.h (PieceStorage.h): New include. (pieceStorage): New variable. (evaluate): btContext->getTotalLength() -> pieceStorage->getCompletedLength() * src/BitfieldMan.cc (isFilteredAllBitSet): New function. (isAllBitSet): Filter is not took into account. Rename --force-truncate as --allow-overwrite: * src/TorrentRequestInfo.cc (execute): PREF_FORCE_TRUNCATE -> PREF_ALLOW_OVERWRITE * src/main.cc (showUsage): --force-truncate -> --allow-overwrite * src/message.h (EX_FILE_ALREADY_EXISTS): --force-truncate -> --allow-overwrite * src/prefs.h (PREF_FORCE_TRUNCATE): Removed. (PREF_ALLOW_OVERWRITE): New definition. * src/SegmentMan.cc (shouldCancelDownloadForSafety): --force-truncate -> --allow-overwrite * src/MetalinkRequestInfo.cc (execute): Queueing message are now logged in info level. * src/common.h (LONG_LONG_MAX): Removed. (LONG_LONG_MIN): Removed. * src/HttpResponseCommand.cc (handleDefaultEncoding): LONG_LONG_MAX -> INT64_MAX * src/FtpNegotiateCommand.cc (recvSize): LONG_LONG_MAX -> INT64_MAX * src/main.cc (showUsage): Added --check-integiry and --realtime-chunk-checksum command-line option. (main): Added --check-integiry and --realtime-chunk-checksum command-line option. --force-truncate -> --allow-overwrite Set initial value of --check-integrity option to false. Don't show usage when error occurs while persing command-line options. Removed deprecated --upload-limit option.
103 lines
3.9 KiB
Plaintext
103 lines
3.9 KiB
Plaintext
aria2 - The high speed download utility
|
|
|
|
1. Disclaimer
|
|
-------------
|
|
This program comes with no warranty.
|
|
You must use this program at your own risk.
|
|
|
|
2. About aria2
|
|
--------------
|
|
aria2 has segmented downloading engine in its core. By segmented downloading,
|
|
it can download files very much faster than ordinary browsers.
|
|
|
|
aria2 is in very early development stage. Currently it has following features:
|
|
* HTTP/HTTPS GET support
|
|
* HTTP Proxy support
|
|
* HTTP BASIC authentication support
|
|
* HTTP Proxy authentication support
|
|
* FTP support(active, passive mode)
|
|
* FTP through HTTP proxy(GET command or tunneling)
|
|
* Segmented download
|
|
* Cookie support(currently aria2 ignores "expires")
|
|
* It can run as a daemon process.
|
|
* BitTorrent protocol support with fast extension.
|
|
* Selective download in multi-file torrent
|
|
* Metalink version 3.0 support(HTTP/FTP/BitTorrent).
|
|
* Limiting download/upload speed.
|
|
|
|
3. How to build
|
|
---------------
|
|
$ ./configure
|
|
$ make
|
|
|
|
The executable is aria2c in src directory.
|
|
|
|
4. Dependency
|
|
-------------
|
|
In order to enable HTTPS support, you need GNU TLS or OpenSSL.
|
|
In order to enable BitTorrent support, you need GNU TLS+libgcrypt or OpenSSL.
|
|
In order to enable Metalink support, you need libxml2. Optionally GNU TLS+
|
|
libgcrypt or OpenSSL are required for checksum checking support(MD5, SHA1).
|
|
|
|
GNU TLS has precedence over OpenSSL if both libraries are installed.
|
|
If you prefer OpenSSL, run configure with "--without-gnutls".
|
|
|
|
You can disable BitTorrent, Metalink support by providing --disable-bittorrent,
|
|
--disable-metalink respectively to configure script.
|
|
|
|
In order to enable async DNS support, you need c-ares or ares.
|
|
c-ares: http://daniel.haxx.se/projects/c-ares/
|
|
ares: ftp://athena-dist.mit.edu/pub/ATHENA/ares
|
|
|
|
5. BitTorrrent
|
|
--------------
|
|
The filename of the downloaded file is determined as follows:
|
|
|
|
single-file mode:
|
|
If "name" key is present in .torrent file, filename is the value of "name"
|
|
key. Otherwise, filename is the basename of .torrent file appended by
|
|
".file". For example, .torrent file is "test.torrrent", then filename is
|
|
"test.torrent.file".
|
|
The directory to store the downloaded file can be specified by -d option.
|
|
multi-file mode:
|
|
The complete directory/file structure mentioned in .torrent file is
|
|
created.
|
|
The directory to store the top directory of downloaded files can be
|
|
specified by -d option.
|
|
|
|
In the default behavior, before download starts, complete directory structure
|
|
is created if needed. Then aria2 opens all files mentioned in .torrent file,
|
|
directly writes to and reads from these files.
|
|
NOTE: Even in selective download, all files are opened.
|
|
|
|
If "--direct-file-mapping" option set to be false, aria2 creates temporary
|
|
file in the store directory. The length of this file is the sum of length of
|
|
the files in .torrent file, so at least 2 times more disk space than the file
|
|
size itself is required. Writing and reading is done against this file.
|
|
After download completes, aria2 creates complete directory structure if needed,
|
|
and copies whole file or a part of it to the destination.
|
|
|
|
Note:
|
|
* -o option is used to change the filename of downloaded .torrent file.
|
|
* This version only supports compact peers list format.
|
|
* The ports aria2c uses are 6881-6999.
|
|
* The maximum number of peers is 55.
|
|
* As of release 0.10.0, aria2 stops sending request message after selective
|
|
download completes,
|
|
|
|
6. Metalink
|
|
-----------
|
|
The current implementation supports HTTP/FTP/BitTorrent.
|
|
BitTorrent always has precedence over HTTP/FTP.
|
|
The other P2P protocols are ignored.
|
|
|
|
For checksum checking, both MD5 and SHA1 are supported. If both values are
|
|
provided, then aria2 uses SHA1. If checksum checking is failed, aria2 doesn't
|
|
retry the download and just exits with non-zero return code.
|
|
|
|
The supported user preferences are version, language and os.
|
|
|
|
If chunk checksums are provided in Metalink file, aria2 automatically validate
|
|
a chunk of file while downloading it. This behavior can be turned off by
|
|
a command-line option.
|