Skip to content

Commit 286c869

Browse files
committed
why this instead of rclone?
1 parent 1ce3080 commit 286c869

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# swift-http-import
22

33
* [Do NOT use if...](#do-not-use-if)
4+
* [Why this instead of rclone?](#why-this-instead-of-rclone)
45
* [Implicit assumptions](#implicit-assumptions)
56
* [Installation](#installation)
67
* [Usage](#usage)
@@ -20,6 +21,23 @@ listings on that URL, and mirrors all files that it finds into Swift. It will ta
2021
`Etag` response headers to avoid repeated downloads of the same content, so best performance is ensured if the HTTP server
2122
handles `If-Modified-Since` and `If-None-Match` request headers correctly.
2223

24+
## Why this instead of rclone?
25+
26+
[rclone](https://github.com/ncw/rclone/) is a similar tool that supports a much wider range of sources, and supports
27+
targets other than Swift. Users who need to sync from or to different clouds might therefore prefer rclone. If your only
28+
target is Swift, swift-http-import is better than rclone because it is built by people who operate Swift clusters for a
29+
living and know all the intricacies of the system, and how to optimize Swift clients for maximum performance and
30+
stability:
31+
32+
* rclone does not support Swift symlinks. Symlinks will be copied as regular files, thereby potentially wasting space on
33+
the target storage. swift-http-import recognizes symlinks and copies them as a symlink.
34+
* rclone transfers large objects using the Dynamic Large Object strategy. DLO suffers from severe eventual-consistency
35+
problems when the Swift cluster is under high load. swift-http-import uses the much more resilient Static Large Object
36+
strategy instead.
37+
* rclone does not propagate expiration dates when transferring between Swift containers. swift-http-import does.
38+
* swift-http-import uses customized transfer strategies to ensure a stable transfer over narrow or flaky network
39+
connections.
40+
2341
## Do NOT use if...
2442

2543
* ...you have access to the source filesystem. Just use the normal [`swift upload`](https://docs.openstack.org/python-swiftclient/latest/) instead, it's much more efficient.

0 commit comments

Comments
 (0)