mirror of
https://github.com/rclone/rclone.git
synced 2026-01-30 16:24:01 +00:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cbecc57ded | ||
|
|
0cdfae3313 | ||
|
|
02e6c4fc26 | ||
|
|
16f33824fe | ||
|
|
5b9925e19b |
@@ -632,14 +632,22 @@ Add your backend to the docs - you'll need to pick an icon for it from
|
||||
alphabetical order of full name of remote (e.g. `drive` is ordered as
|
||||
`Google Drive`) but with the local file system last.
|
||||
|
||||
First add a data file about your backend in
|
||||
`docs/data/backends/remote.yaml` - this is used to build the overview
|
||||
tables and the tiering info.
|
||||
|
||||
- Create it with: `bin/manage_backends.py create docs/data/backends/remote.yaml`
|
||||
- Edit it to fill in the blanks. Look at the [tiers docs](https://rclone.org/tiers/).
|
||||
- Run this command to fill in the features: `bin/manage_backends.py features docs/data/backends/remote.yaml`
|
||||
|
||||
Next edit these files:
|
||||
|
||||
- `README.md` - main GitHub page
|
||||
- `docs/content/remote.md` - main docs page (note the backend options are
|
||||
automatically added to this file with `make backenddocs`)
|
||||
- make sure this has the `autogenerated options` comments in (see your
|
||||
reference backend docs)
|
||||
- update them in your backend with `bin/make_backend_docs.py remote`
|
||||
- `docs/content/overview.md` - overview docs - add an entry into the Features
|
||||
table and the Optional Features table.
|
||||
- `docs/content/docs.md` - list of remotes in config section
|
||||
- `docs/content/_index.md` - front page of rclone.org
|
||||
- `docs/layouts/chrome/navbar.html` - add it to the website navigation
|
||||
|
||||
300
bin/manage_backends.py
Executable file
300
bin/manage_backends.py
Executable file
@@ -0,0 +1,300 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Manage the backend yaml files in docs/data/backends
|
||||
|
||||
usage: manage_backends.py [-h] {create,features,update,help} [files ...]
|
||||
|
||||
Manage rclone backend YAML files.
|
||||
|
||||
positional arguments:
|
||||
{create,features,update,help}
|
||||
Action to perform
|
||||
files List of YAML files to operate on
|
||||
|
||||
options:
|
||||
-h, --help show this help message and exit
|
||||
"""
|
||||
import argparse
|
||||
import sys
|
||||
import os
|
||||
import yaml
|
||||
import json
|
||||
import subprocess
|
||||
import time
|
||||
import socket
|
||||
from contextlib import contextmanager
|
||||
from pprint import pprint
|
||||
|
||||
# --- Configuration ---
|
||||
|
||||
# The order in which keys should appear in the YAML file
|
||||
CANONICAL_ORDER = [
|
||||
"backend",
|
||||
"name",
|
||||
"tier",
|
||||
"maintainers",
|
||||
"features_score",
|
||||
"integration_tests",
|
||||
"data_integrity",
|
||||
"performance",
|
||||
"adoption",
|
||||
"docs",
|
||||
"security",
|
||||
"virtual",
|
||||
"remote",
|
||||
"features",
|
||||
"hashes",
|
||||
"precision"
|
||||
]
|
||||
|
||||
# Default values for fields when creating/updating
|
||||
DEFAULTS = {
|
||||
"tier": None,
|
||||
"maintainers": None,
|
||||
"features_score": None,
|
||||
"integration_tests": None,
|
||||
"data_integrity": None,
|
||||
"performance": None,
|
||||
"adoption": None,
|
||||
"docs": None,
|
||||
"security": None,
|
||||
"virtual": False,
|
||||
"remote": None,
|
||||
"features": [],
|
||||
"hashes": [],
|
||||
"precision": None
|
||||
}
|
||||
|
||||
# --- Test server management ---
|
||||
|
||||
def wait_for_tcp(address_str, delay=1, timeout=2, tries=60):
|
||||
"""
|
||||
Blocks until the specified TCP address (e.g., '172.17.0.3:21') is reachable.
|
||||
"""
|
||||
host, port = address_str.split(":")
|
||||
port = int(port)
|
||||
print(f"Waiting for {host}:{port}...")
|
||||
for tri in range(tries):
|
||||
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
|
||||
sock.settimeout(timeout)
|
||||
result = sock.connect_ex((host, port))
|
||||
if result == 0:
|
||||
print(f"Connected to {host}:{port} successfully!")
|
||||
break
|
||||
else:
|
||||
print(f"Failed to connect to {host}:{port} try {tri} !")
|
||||
time.sleep(delay)
|
||||
|
||||
def parse_init_output(binary_input):
|
||||
"""
|
||||
Parse the output of the init script
|
||||
"""
|
||||
decoded_str = binary_input.decode('utf-8')
|
||||
result = {}
|
||||
for line in decoded_str.splitlines():
|
||||
if '=' in line:
|
||||
key, value = line.split('=', 1)
|
||||
result[key.strip()] = value.strip()
|
||||
return result
|
||||
|
||||
@contextmanager
|
||||
def test_server(remote):
|
||||
"""Start the test server for remote if needed"""
|
||||
remote_name = remote.split(":",1)[0]
|
||||
init_script = "fstest/testserver/init.d/" + remote_name
|
||||
if not os.path.isfile(init_script):
|
||||
yield
|
||||
return
|
||||
print(f"--- Starting {init_script} ---")
|
||||
out = subprocess.check_output([init_script, "start"])
|
||||
out = parse_init_output(out)
|
||||
pprint(out)
|
||||
# Configure the server with environment variables
|
||||
env_keys = []
|
||||
for key, value in out.items():
|
||||
env_key = f"RCLONE_CONFIG_{remote_name.upper()}_{key.upper()}"
|
||||
env_keys.append(env_key)
|
||||
os.environ[env_key] = value
|
||||
for key,var in os.environ.items():
|
||||
if key.startswith("RCLON"):
|
||||
print(key, var)
|
||||
if "_connect" in out:
|
||||
wait_for_tcp(out["_connect"])
|
||||
try:
|
||||
yield
|
||||
finally:
|
||||
print(f"--- Stopping {init_script} ---")
|
||||
subprocess.run([init_script, "stop"], check=True)
|
||||
# Remove the env vars
|
||||
for env_key in env_keys:
|
||||
del os.environ[env_key]
|
||||
|
||||
# --- Helper Functions ---
|
||||
|
||||
def load_yaml(filepath):
|
||||
if not os.path.exists(filepath):
|
||||
return {}
|
||||
with open(filepath, 'r', encoding='utf-8') as f:
|
||||
return yaml.safe_load(f) or {}
|
||||
|
||||
def save_yaml(filepath, data):
|
||||
# Reconstruct dictionary in canonical order
|
||||
ordered_data = {}
|
||||
|
||||
# Add known keys in order
|
||||
for key in CANONICAL_ORDER:
|
||||
if key in data:
|
||||
ordered_data[key] = data[key]
|
||||
|
||||
# Add any other keys that might exist (custom fields)
|
||||
for key in data:
|
||||
if key not in CANONICAL_ORDER:
|
||||
ordered_data[key] = data[key]
|
||||
|
||||
# Ensure features are a sorted list (if present)
|
||||
if 'features' in ordered_data and isinstance(ordered_data['features'], list):
|
||||
ordered_data['features'].sort()
|
||||
|
||||
with open(filepath, 'w', encoding='utf-8') as f:
|
||||
yaml.dump(ordered_data, f, default_flow_style=False, sort_keys=False, allow_unicode=True)
|
||||
print(f"Saved {filepath}")
|
||||
|
||||
def get_backend_name_from_file(filepath):
|
||||
"""
|
||||
s3.yaml -> S3
|
||||
azureblob.yaml -> Azureblob
|
||||
"""
|
||||
basename = os.path.basename(filepath)
|
||||
name, _ = os.path.splitext(basename)
|
||||
return name.title()
|
||||
|
||||
def fetch_rclone_features(remote_str):
|
||||
"""
|
||||
Runs `rclone backend features remote:` and returns the JSON object.
|
||||
"""
|
||||
cmd = ["rclone", "backend", "features", remote_str]
|
||||
try:
|
||||
with test_server(remote_str):
|
||||
result = subprocess.run(cmd, capture_output=True, text=True, check=True)
|
||||
return json.loads(result.stdout)
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"Error running rclone: {e.stderr}")
|
||||
return None
|
||||
except FileNotFoundError:
|
||||
print("Error: 'rclone' command not found in PATH.")
|
||||
sys.exit(1)
|
||||
|
||||
# --- Verbs ---
|
||||
|
||||
def do_create(files):
|
||||
for filepath in files:
|
||||
if os.path.exists(filepath):
|
||||
print(f"Skipping {filepath} (already exists)")
|
||||
continue
|
||||
|
||||
data = DEFAULTS.copy()
|
||||
# Set a default name based on filename
|
||||
data['name'] = get_backend_name_from_file(filepath)
|
||||
save_yaml(filepath, data)
|
||||
|
||||
def do_update(files):
|
||||
for filepath in files:
|
||||
if not os.path.exists(filepath):
|
||||
print(f"Warning: {filepath} does not exist. Use 'create' first.")
|
||||
continue
|
||||
|
||||
data = load_yaml(filepath)
|
||||
modified = False
|
||||
|
||||
# Inject the filename as the 'backend'
|
||||
file_backend = os.path.splitext(os.path.basename(filepath))[0]
|
||||
|
||||
if data.get('backend') != file_backend:
|
||||
data['backend'] = file_backend
|
||||
modified = True
|
||||
print(f"[{filepath}] Updated backend to: {file_backend}")
|
||||
|
||||
# Add missing default fields
|
||||
for key, default_val in DEFAULTS.items():
|
||||
if key not in data:
|
||||
data[key] = default_val
|
||||
modified = True
|
||||
print(f"[{filepath}] Added missing field: {key}")
|
||||
|
||||
# Special handling for 'name' if it was just added as None or didn't exist
|
||||
if data.get('name') is None:
|
||||
data['name'] = get_backend_name_from_file(filepath)
|
||||
modified = True
|
||||
print(f"[{filepath}] Set default name: {data['name']}")
|
||||
|
||||
if modified:
|
||||
save_yaml(filepath, data)
|
||||
else:
|
||||
# We save anyway to enforce canonical order if the file was messy
|
||||
save_yaml(filepath, data)
|
||||
|
||||
def do_features(files):
|
||||
for filepath in files:
|
||||
if not os.path.exists(filepath):
|
||||
print(f"Error: {filepath} not found.")
|
||||
continue
|
||||
|
||||
data = load_yaml(filepath)
|
||||
remote = data.get('remote')
|
||||
|
||||
if not remote:
|
||||
print(f"Error: [{filepath}] 'remote' field is missing or empty. Cannot fetch features.")
|
||||
continue
|
||||
|
||||
print(f"[{filepath}] Fetching features for remote: '{remote}'...")
|
||||
rclone_data = fetch_rclone_features(remote)
|
||||
|
||||
if not rclone_data:
|
||||
print(f"Failed to fetch data for {filepath}")
|
||||
continue
|
||||
|
||||
# Process Features (Dict -> Sorted List of True keys)
|
||||
features_dict = rclone_data.get('Features', {})
|
||||
# Filter only true values and sort keys
|
||||
feature_list = sorted([k for k, v in features_dict.items() if v])
|
||||
|
||||
# Process Hashes
|
||||
hashes_list = rclone_data.get('Hashes', [])
|
||||
|
||||
# Process Precision
|
||||
precision = rclone_data.get('Precision')
|
||||
|
||||
# Update data
|
||||
data['features'] = feature_list
|
||||
data['hashes'] = hashes_list
|
||||
data['precision'] = precision
|
||||
|
||||
save_yaml(filepath, data)
|
||||
|
||||
# --- Main CLI ---
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="Manage rclone backend YAML files.")
|
||||
parser.add_argument("verb", choices=["create", "features", "update", "help"], help="Action to perform")
|
||||
parser.add_argument("files", nargs="*", help="List of YAML files to operate on")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.verb == "help":
|
||||
parser.print_help()
|
||||
sys.exit(0)
|
||||
|
||||
if not args.files:
|
||||
print("Error: No files specified.")
|
||||
parser.print_help()
|
||||
sys.exit(1)
|
||||
|
||||
if args.verb == "create":
|
||||
do_create(args.files)
|
||||
elif args.verb == "update":
|
||||
do_update(args.files)
|
||||
elif args.verb == "features":
|
||||
do_features(args.files)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "Amazon Drive"
|
||||
description: "Rclone docs for Amazon Drive"
|
||||
versionIntroduced: "v1.20"
|
||||
status: Deprecated
|
||||
status: Removed
|
||||
---
|
||||
|
||||
# {{< icon "fab fa-amazon" >}} Amazon Drive
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
title: "Cache"
|
||||
description: "Rclone docs for cache remote"
|
||||
versionIntroduced: "v1.39"
|
||||
status: Deprecated
|
||||
---
|
||||
|
||||
# {{< icon "fa fa-archive" >}} Cache
|
||||
@@ -10,6 +9,9 @@ status: Deprecated
|
||||
The `cache` remote wraps another existing remote and stores file structure
|
||||
and its data for long running tasks like `rclone mount`.
|
||||
|
||||
It is **deprecated** so not recommended for use with new installations
|
||||
and may be removed at some point.
|
||||
|
||||
## Status
|
||||
|
||||
The cache backend code is working but it currently doesn't
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
title: "Chunker"
|
||||
description: "Split-chunking overlay remote"
|
||||
versionIntroduced: "v1.50"
|
||||
status: Beta
|
||||
---
|
||||
|
||||
# {{< icon "fa fa-cut" >}} Chunker
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
title: "Compress"
|
||||
description: "Compression Remote"
|
||||
versionIntroduced: "v1.54"
|
||||
status: Experimental
|
||||
---
|
||||
|
||||
# {{< icon "fas fa-compress" >}} Compress
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
title: "Hasher"
|
||||
description: "Better checksums for other remotes"
|
||||
versionIntroduced: "v1.57"
|
||||
status: Experimental
|
||||
---
|
||||
|
||||
# {{< icon "fa fa-check-double" >}} Hasher
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
title: "iCloud Drive"
|
||||
description: "Rclone docs for iCloud Drive"
|
||||
versionIntroduced: "v1.69"
|
||||
status: Beta
|
||||
---
|
||||
|
||||
# {{< icon "fa fa-cloud" >}} iCloud Drive
|
||||
|
||||
@@ -14,105 +14,7 @@ show through.
|
||||
|
||||
Here is an overview of the major features of each cloud storage system.
|
||||
|
||||
| Name | Hash | ModTime | Case Insensitive | Duplicate Files | MIME Type | Metadata |
|
||||
| ---------------------------- |:-----------------:|:-------:|:----------------:|:---------------:|:---------:|:--------:|
|
||||
| 1Fichier | Whirlpool | - | No | Yes | R | - |
|
||||
| Akamai Netstorage | MD5, SHA256 | R/W | No | No | R | - |
|
||||
| Amazon S3 (or S3 compatible) | MD5 | R/W | No | No | R/W | RWU |
|
||||
| Backblaze B2 | SHA1 | R/W | No | No | R/W | - |
|
||||
| Box | SHA1 | R/W | Yes | No | - | - |
|
||||
| Citrix ShareFile | MD5 | R/W | Yes | No | - | - |
|
||||
| Cloudinary | MD5 | R | No | Yes | - | - |
|
||||
| Drime | - | - | No | No | R/W | - |
|
||||
| Dropbox | DBHASH ¹ | R | Yes | No | - | - |
|
||||
| Enterprise File Fabric | - | R/W | Yes | No | R/W | - |
|
||||
| FileLu Cloud Storage | MD5 | R/W | No | Yes | R | - |
|
||||
| Filen | Blake3 | R/W | Yes | No | R/W | - |
|
||||
| Files.com | MD5, CRC32 | DR/W | Yes | No | R | - |
|
||||
| FTP | - | R/W ¹⁰ | No | No | - | - |
|
||||
| Gofile | MD5 | DR/W | No | Yes | R | - |
|
||||
| Google Cloud Storage | MD5 | R/W | No | No | R/W | - |
|
||||
| Google Drive | MD5, SHA1, SHA256 | DR/W | No | Yes | R/W | DRWU |
|
||||
| Google Photos | - | - | No | Yes | R | - |
|
||||
| HDFS | - | R/W | No | No | - | - |
|
||||
| HiDrive | HiDrive ¹² | R/W | No | No | - | - |
|
||||
| HTTP | - | R | No | No | R | R |
|
||||
| iCloud Drive | - | R | No | No | - | - |
|
||||
| Internet Archive | MD5, SHA1, CRC32 | R/W ¹¹ | No | No | - | RWU |
|
||||
| Jottacloud | MD5 | R/W | Yes | No | R | RW |
|
||||
| Koofr | MD5 | - | Yes | No | - | - |
|
||||
| Linkbox | - | R | No | No | - | - |
|
||||
| Mail.ru Cloud | Mailru ⁶ | R/W | Yes | No | - | - |
|
||||
| Mega | - | - | No | Yes | - | - |
|
||||
| Memory | MD5 | R/W | No | No | - | - |
|
||||
| Microsoft Azure Blob Storage | MD5 | R/W | No | No | R/W | - |
|
||||
| Microsoft Azure Files Storage | MD5 | R/W | Yes | No | R/W | - |
|
||||
| Microsoft OneDrive | QuickXorHash ⁵ | DR/W | Yes | No | R | DRW |
|
||||
| OpenDrive | MD5 | R/W | Yes | Partial ⁸ | - | - |
|
||||
| OpenStack Swift | MD5 | R/W | No | No | R/W | - |
|
||||
| Oracle Object Storage | MD5 | R/W | No | No | R/W | RU |
|
||||
| pCloud | MD5, SHA1 ⁷ | R/W | No | No | W | - |
|
||||
| PikPak | MD5 | R | No | No | R | - |
|
||||
| Pixeldrain | SHA256 | R/W | No | No | R | RW |
|
||||
| premiumize.me | - | - | Yes | No | R | - |
|
||||
| put.io | CRC-32 | R/W | No | Yes | R | - |
|
||||
| Proton Drive | SHA1 | R/W | No | No | R | - |
|
||||
| QingStor | MD5 | - ⁹ | No | No | R/W | - |
|
||||
| Quatrix by Maytech | - | R/W | No | No | - | - |
|
||||
| Seafile | - | - | No | No | - | - |
|
||||
| SFTP | MD5, SHA1 ² | DR/W | Depends | No | - | - |
|
||||
| Shade | - | - | Yes | No | - | - |
|
||||
| Sia | - | - | No | No | - | - |
|
||||
| SMB | - | R/W | Yes | No | - | - |
|
||||
| SugarSync | - | - | No | No | - | - |
|
||||
| Storj | - | R | No | No | - | - |
|
||||
| Uloz.to | MD5, SHA256 ¹³ | - | No | Yes | - | - |
|
||||
| WebDAV | MD5, SHA1 ³ | R ⁴ | Depends | No | - | - |
|
||||
| Yandex Disk | MD5 | R/W | No | No | R | - |
|
||||
| Zoho WorkDrive | - | - | No | No | - | - |
|
||||
| The local filesystem | All | DR/W | Depends | No | - | DRWU |
|
||||
|
||||
¹ Dropbox supports [its own custom
|
||||
hash](https://www.dropbox.com/developers/reference/content-hash).
|
||||
This is an SHA256 sum of all the 4 MiB block SHA256s.
|
||||
|
||||
² SFTP supports checksums if the same login has shell access and
|
||||
`md5sum` or `sha1sum` as well as `echo` are in the remote's PATH.
|
||||
|
||||
³ WebDAV supports hashes when used with Fastmail Files, Owncloud and Nextcloud only.
|
||||
|
||||
⁴ WebDAV supports modtimes when used with Fastmail Files, Owncloud and Nextcloud
|
||||
only.
|
||||
|
||||
⁵ [QuickXorHash](https://docs.microsoft.com/en-us/onedrive/developer/code-snippets/quickxorhash)
|
||||
is Microsoft's own hash.
|
||||
|
||||
⁶ Mail.ru uses its own modified SHA1 hash
|
||||
|
||||
⁷ pCloud only supports SHA1 (not MD5) in its EU region
|
||||
|
||||
⁸ Opendrive does not support creation of duplicate files using
|
||||
their web client interface or other stock clients, but the underlying
|
||||
storage platform has been determined to allow duplicate files, and it
|
||||
is possible to create them with `rclone`. It may be that this is a
|
||||
mistake or an unsupported feature.
|
||||
|
||||
⁹ QingStor does not support SetModTime for objects bigger than 5 GiB.
|
||||
|
||||
¹⁰ FTP supports modtimes for the major FTP servers, and also others
|
||||
if they advertised required protocol extensions. See [this](/ftp/#modification-times)
|
||||
for more details.
|
||||
|
||||
¹¹ Internet Archive requires option `wait_archive` to be set to a non-zero value
|
||||
for full modtime support.
|
||||
|
||||
¹² HiDrive supports [its own custom
|
||||
hash](https://static.hidrive.com/dev/0001).
|
||||
It combines SHA1 sums for each 4 KiB block hierarchically to a single
|
||||
top-level sum.
|
||||
|
||||
¹³ Uloz.to provides server-calculated MD5 hash upon file upload. MD5 and SHA256
|
||||
hashes are client-calculated and stored as metadata fields.
|
||||
{{< features-table >}}
|
||||
|
||||
### Hash
|
||||
|
||||
@@ -508,74 +410,7 @@ See [the metadata docs](/docs/#metadata) for more info.
|
||||
All rclone remotes support a base command set. Other features depend
|
||||
upon backend-specific capabilities.
|
||||
|
||||
| Name | Purge | Copy | Move | DirMove | CleanUp | ListR | StreamUpload | MultithreadUpload | LinkSharing | About | EmptyDir |
|
||||
| ---------------------------- |:-----:|:----:|:----:|:-------:|:-------:|:-----:|:------------:|:------------------|:------------:|:-----:|:--------:|
|
||||
| 1Fichier | No | Yes | Yes | No | No | No | No | No | Yes | No | Yes |
|
||||
| Akamai Netstorage | Yes | No | No | No | No | Yes | Yes | No | No | No | Yes |
|
||||
| Amazon S3 (or S3 compatible) | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No |
|
||||
| Backblaze B2 | No | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No |
|
||||
| Box | Yes | Yes | Yes | Yes | Yes | No | Yes | No | Yes | Yes | Yes |
|
||||
| Citrix ShareFile | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes |
|
||||
| Drime | Yes | Yes | Yes | Yes | No | No | Yes | Yes | No | No | Yes |
|
||||
| Dropbox | Yes | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes | Yes |
|
||||
| Cloudinary | No | No | No | No | No | No | Yes | No | No | No | No |
|
||||
| Enterprise File Fabric | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes |
|
||||
| Filen | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes |
|
||||
| Files.com | Yes | Yes | Yes | Yes | No | No | Yes | No | Yes | No | Yes |
|
||||
| FTP | No | No | Yes | Yes | No | No | Yes | No | No | No | Yes |
|
||||
| Gofile | Yes | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes | Yes |
|
||||
| Google Cloud Storage | Yes | Yes | No | No | No | No | Yes | No | No | No | No |
|
||||
| Google Drive | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes |
|
||||
| Google Photos | No | No | No | No | No | No | No | No | No | No | No |
|
||||
| HDFS | Yes | No | Yes | Yes | No | No | Yes | No | No | Yes | Yes |
|
||||
| HiDrive | Yes | Yes | Yes | Yes | No | No | Yes | No | No | No | Yes |
|
||||
| HTTP | No | No | No | No | No | No | No | No | No | No | Yes |
|
||||
| iCloud Drive | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes |
|
||||
| ImageKit | Yes | No | Yes | No | No | No | No | No | No | No | Yes |
|
||||
| Internet Archive | No | Yes | No | No | Yes | Yes | No | No | Yes | Yes | No |
|
||||
| Jottacloud | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes |
|
||||
| Koofr | Yes | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes | Yes |
|
||||
| Mail.ru Cloud | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes |
|
||||
| Mega | Yes | No | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes |
|
||||
| Memory | No | Yes | No | No | No | Yes | Yes | No | No | No | No |
|
||||
| Microsoft Azure Blob Storage | Yes | Yes | No | No | No | Yes | Yes | Yes | No | No | No |
|
||||
| Microsoft Azure Files Storage | No | Yes | Yes | Yes | No | No | Yes | Yes | No | Yes | Yes |
|
||||
| Microsoft OneDrive | Yes | Yes | Yes | Yes | Yes | Yes ⁵ | No | No | Yes | Yes | Yes |
|
||||
| OpenDrive | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes |
|
||||
| OpenStack Swift | Yes ¹ | Yes | No | No | No | Yes | Yes | No | No | Yes | No |
|
||||
| Oracle Object Storage | No | Yes | No | No | Yes | Yes | Yes | Yes | No | No | No |
|
||||
| pCloud | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes |
|
||||
| PikPak | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes | Yes |
|
||||
| Pixeldrain | Yes | No | Yes | Yes | No | No | Yes | No | Yes | Yes | Yes |
|
||||
| premiumize.me | Yes | No | Yes | Yes | No | No | No | No | Yes | Yes | Yes |
|
||||
| put.io | Yes | No | Yes | Yes | Yes | No | Yes | No | No | Yes | Yes |
|
||||
| Proton Drive | Yes | No | Yes | Yes | Yes | No | No | No | No | Yes | Yes |
|
||||
| QingStor | No | Yes | No | No | Yes | Yes | No | No | No | No | No |
|
||||
| Quatrix by Maytech | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes |
|
||||
| Seafile | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes |
|
||||
| SFTP | No | Yes ⁴| Yes | Yes | No | No | Yes | No | No | Yes | Yes |
|
||||
| Sia | No | No | No | No | No | No | Yes | No | No | No | Yes |
|
||||
| SMB | No | No | Yes | Yes | No | No | Yes | Yes | No | No | Yes |
|
||||
| SugarSync | Yes | Yes | Yes | Yes | No | No | Yes | No | Yes | No | Yes |
|
||||
| Storj | Yes ² | Yes | Yes | No | No | Yes | Yes | No | Yes | No | No |
|
||||
| Uloz.to | No | No | Yes | Yes | No | No | No | No | No | No | Yes |
|
||||
| WebDAV | Yes | Yes | Yes | Yes | No | No | Yes ³ | No | No | Yes | Yes |
|
||||
| Yandex Disk | Yes | Yes | Yes | Yes | Yes | No | Yes | No | Yes | Yes | Yes |
|
||||
| Zoho WorkDrive | Yes | Yes | Yes | Yes | No | No | No | No | No | Yes | Yes |
|
||||
| The local filesystem | No | No | Yes | Yes | No | No | Yes | Yes | No | Yes | Yes |
|
||||
|
||||
¹ Note Swift implements this in order to delete directory markers but
|
||||
it doesn't actually have a quicker way of deleting files other than
|
||||
deleting them individually.
|
||||
|
||||
² Storj implements this efficiently only for entire buckets. If
|
||||
purging a directory inside a bucket, files are deleted individually.
|
||||
|
||||
³ StreamUpload is not supported with Nextcloud
|
||||
|
||||
⁴ Use the `--sftp-copy-is-hardlink` flag to enable.
|
||||
|
||||
⁵ Use the `--onedrive-delta` flag to enable.
|
||||
{{< optional-features-table >}}
|
||||
|
||||
### Purge
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
title: "Proton Drive"
|
||||
description: "Rclone docs for Proton Drive"
|
||||
versionIntroduced: "v1.64.0"
|
||||
status: Beta
|
||||
---
|
||||
|
||||
# {{< icon "fa fa-folder" >}} Proton Drive
|
||||
|
||||
58
docs/content/tiers.md
Normal file
58
docs/content/tiers.md
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
title: "Backend Support Tiers"
|
||||
description: "A complete list of supported backends and their stability tiers."
|
||||
---
|
||||
|
||||
# Tiers
|
||||
|
||||
Rclone backends are divided into tiers to give users an idea of the stability of each backend.
|
||||
|
||||
| Tier | Label | Intended meaning |
|
||||
|--------|---------------|------------------|
|
||||
| {{< tier tier="Tier 1" >}} | Core | Production-grade, first-class |
|
||||
| {{< tier tier="Tier 2" >}} | Stable | Well-supported, minor gaps |
|
||||
| {{< tier tier="Tier 3" >}} | Supported | Works for many uses; known caveats |
|
||||
| {{< tier tier="Tier 4" >}} | Experimental | Use with care; expect gaps/changes |
|
||||
| {{< tier tier="Tier 5" >}} | Deprecated | No longer maintained or supported |
|
||||
|
||||
## Overview
|
||||
|
||||
Here is a summary of all backends:
|
||||
|
||||
{{< tiers-table >}}
|
||||
|
||||
## Scoring
|
||||
|
||||
Here is how the backends are scored.
|
||||
|
||||
### Features
|
||||
|
||||
These are useful optional features a backend should have in rough
|
||||
order of importance. Each one of these scores a point for the Features
|
||||
column.
|
||||
|
||||
- F1: Hash(es)
|
||||
- F2: Modtime
|
||||
- F3: Stream upload
|
||||
- F4: Copy/Move
|
||||
- F5: DirMove
|
||||
- F6: Metadata
|
||||
- F7: MultipartUpload
|
||||
|
||||
|
||||
### Tier
|
||||
|
||||
The tier is decided after determining these attributes. Some discretion is allowed in tiering as some of these attributes are more important than others.
|
||||
|
||||
| Attr | T1: Core | T2: Stable | T3: Supported | T4: Experimental | T5: Incubator |
|
||||
|------|----------|------------|---------------|------------------|---------------|
|
||||
| Maintainers | >=2 | >=1 | >=1 | >=0 | >=0 |
|
||||
| API source | Official | Official | Either | Either | Either |
|
||||
| Features (F1-F7) | >=5/7 | >=4/7 | >=3/7 | >=2/7 | N/A |
|
||||
| Integration tests | All Green | All green | Nearly all green | Some Flaky | N/A |
|
||||
| Error handling | Pacer | Pacer | Retries | Retries | N/A |
|
||||
| Data integrity | Hashes, alt, modtime | Hashes or alt | Hash OR modtime | Best-effort | N/A |
|
||||
| Perf baseline | Bench within 2x S3 | Bench doc | Anecdotal OK | Optional | N/A |
|
||||
| Adoption | widely used | often used | some use | N/A | N/A |
|
||||
| Docs completeness | Full | Full | Basic | Minimal | Minimal |
|
||||
| Security | Principle-of-least-privilege | Reasonable scopes | Basic auth | Works | Works |
|
||||
16
docs/data/backends/alias.yaml
Normal file
16
docs/data/backends/alias.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
backend: alias
|
||||
name: Alias
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 7
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: true
|
||||
remote: null
|
||||
features: null
|
||||
hashes: null
|
||||
precision: null
|
||||
43
docs/data/backends/archive.yaml
Normal file
43
docs/data/backends/archive.yaml
Normal file
@@ -0,0 +1,43 @@
|
||||
backend: archive
|
||||
name: Archive
|
||||
tier: Tier 3
|
||||
maintainers: Core
|
||||
features_score: 3
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: true
|
||||
remote: 'TestArchive:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- DirMove
|
||||
- Move
|
||||
- OpenWriterAt
|
||||
- Overlay
|
||||
- PartialUploads
|
||||
- PutStream
|
||||
- ReadMetadata
|
||||
- SetWrapper
|
||||
- UnWrap
|
||||
- UserMetadata
|
||||
- WrapFs
|
||||
- WriteMetadata
|
||||
hashes:
|
||||
- md5
|
||||
- sha1
|
||||
- whirlpool
|
||||
- crc32
|
||||
- sha256
|
||||
- sha512
|
||||
- blake3
|
||||
- xxh3
|
||||
- xxh128
|
||||
- dropbox
|
||||
- hidrive
|
||||
- mailru
|
||||
- quickxor
|
||||
precision: 1000000000
|
||||
34
docs/data/backends/azureblob.yaml
Normal file
34
docs/data/backends/azureblob.yaml
Normal file
@@ -0,0 +1,34 @@
|
||||
backend: azureblob
|
||||
name: Azure Blob
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 7
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestAzureBlob:'
|
||||
features:
|
||||
- BucketBased
|
||||
- BucketBasedRootOK
|
||||
- Copy
|
||||
- DoubleSlash
|
||||
- GetTier
|
||||
- ListP
|
||||
- ListR
|
||||
- OpenChunkWriter
|
||||
- Purge
|
||||
- PutStream
|
||||
- ReadMetadata
|
||||
- ReadMimeType
|
||||
- ServerSideAcrossConfigs
|
||||
- SetTier
|
||||
- UserMetadata
|
||||
- WriteMetadata
|
||||
- WriteMimeType
|
||||
hashes:
|
||||
- md5
|
||||
precision: 1
|
||||
30
docs/data/backends/azurefiles.yaml
Normal file
30
docs/data/backends/azurefiles.yaml
Normal file
@@ -0,0 +1,30 @@
|
||||
backend: azurefiles
|
||||
name: Azure Files
|
||||
tier: Tier 2
|
||||
maintainers: Core
|
||||
features_score: 6
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestAzureFiles:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- CaseInsensitive
|
||||
- Copy
|
||||
- DirMove
|
||||
- ListP
|
||||
- Move
|
||||
- OpenWriterAt
|
||||
- PartialUploads
|
||||
- PutStream
|
||||
- ReadMimeType
|
||||
- SlowHash
|
||||
- WriteMimeType
|
||||
hashes:
|
||||
- md5
|
||||
precision: 1000000000
|
||||
31
docs/data/backends/b2.yaml
Normal file
31
docs/data/backends/b2.yaml
Normal file
@@ -0,0 +1,31 @@
|
||||
backend: b2
|
||||
name: B2
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 6
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestB2:'
|
||||
features:
|
||||
- BucketBased
|
||||
- BucketBasedRootOK
|
||||
- ChunkWriterDoesntSeek
|
||||
- CleanUp
|
||||
- Command
|
||||
- Copy
|
||||
- ListP
|
||||
- ListR
|
||||
- OpenChunkWriter
|
||||
- PublicLink
|
||||
- Purge
|
||||
- PutStream
|
||||
- ReadMimeType
|
||||
- WriteMimeType
|
||||
hashes:
|
||||
- sha1
|
||||
precision: 1000000
|
||||
32
docs/data/backends/box.yaml
Normal file
32
docs/data/backends/box.yaml
Normal file
@@ -0,0 +1,32 @@
|
||||
backend: box
|
||||
name: Box
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 6
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestBox:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- CaseInsensitive
|
||||
- ChangeNotify
|
||||
- CleanUp
|
||||
- Copy
|
||||
- DirCacheFlush
|
||||
- DirMove
|
||||
- ListP
|
||||
- Move
|
||||
- PublicLink
|
||||
- Purge
|
||||
- PutStream
|
||||
- PutUnchecked
|
||||
- Shutdown
|
||||
hashes:
|
||||
- sha1
|
||||
precision: 1000000000
|
||||
40
docs/data/backends/cache.yaml
Normal file
40
docs/data/backends/cache.yaml
Normal file
@@ -0,0 +1,40 @@
|
||||
backend: cache
|
||||
name: Cache
|
||||
tier: Tier 5
|
||||
maintainers: None
|
||||
features_score: 7
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: true
|
||||
remote: 'TestCache:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- Command
|
||||
- DirCacheFlush
|
||||
- DirMove
|
||||
- Move
|
||||
- Overlay
|
||||
- PutStream
|
||||
- SetWrapper
|
||||
- UnWrap
|
||||
- WrapFs
|
||||
hashes:
|
||||
- md5
|
||||
- sha1
|
||||
- whirlpool
|
||||
- crc32
|
||||
- sha256
|
||||
- sha512
|
||||
- blake3
|
||||
- xxh3
|
||||
- xxh128
|
||||
- dropbox
|
||||
- hidrive
|
||||
- mailru
|
||||
- quickxor
|
||||
precision: 1
|
||||
16
docs/data/backends/chunker.yaml
Normal file
16
docs/data/backends/chunker.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
backend: chunker
|
||||
name: Chunker
|
||||
tier: Tier 4
|
||||
maintainers: None
|
||||
features_score: 7
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: true
|
||||
remote: 'TestChunkerLocal:'
|
||||
features: null
|
||||
hashes: null
|
||||
precision: null
|
||||
18
docs/data/backends/cloudinary.yaml
Normal file
18
docs/data/backends/cloudinary.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
backend: cloudinary
|
||||
name: Cloudinary
|
||||
tier: Tier 3
|
||||
maintainers: Core
|
||||
features_score: 3
|
||||
integration_tests: Failing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Often used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestCloudinary:'
|
||||
features:
|
||||
- CanHaveEmptyDirectories
|
||||
hashes:
|
||||
- md5
|
||||
precision: 3153600000000000000
|
||||
49
docs/data/backends/combine.yaml
Normal file
49
docs/data/backends/combine.yaml
Normal file
@@ -0,0 +1,49 @@
|
||||
backend: combine
|
||||
name: Combine
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 7
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Often used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: true
|
||||
remote: TestCombine:dir1
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- DirModTimeUpdatesOnWrite
|
||||
- DirMove
|
||||
- DirSetModTime
|
||||
- ListP
|
||||
- MkdirMetadata
|
||||
- Move
|
||||
- OpenWriterAt
|
||||
- Overlay
|
||||
- PartialUploads
|
||||
- PutStream
|
||||
- ReadDirMetadata
|
||||
- ReadMetadata
|
||||
- SlowHash
|
||||
- UserDirMetadata
|
||||
- UserMetadata
|
||||
- WriteDirMetadata
|
||||
- WriteDirSetModTime
|
||||
- WriteMetadata
|
||||
hashes:
|
||||
- md5
|
||||
- sha1
|
||||
- whirlpool
|
||||
- crc32
|
||||
- sha256
|
||||
- sha512
|
||||
- blake3
|
||||
- xxh3
|
||||
- xxh128
|
||||
- dropbox
|
||||
- hidrive
|
||||
- mailru
|
||||
- quickxor
|
||||
precision: 1
|
||||
39
docs/data/backends/compress.yaml
Normal file
39
docs/data/backends/compress.yaml
Normal file
@@ -0,0 +1,39 @@
|
||||
backend: compress
|
||||
name: Compress
|
||||
tier: Tier 4
|
||||
maintainers: Core
|
||||
features_score: 5
|
||||
integration_tests: Failing
|
||||
data_integrity: Hash
|
||||
performance: Medium
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: true
|
||||
remote: 'TestCompress:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- DirModTimeUpdatesOnWrite
|
||||
- DirMove
|
||||
- DirSetModTime
|
||||
- ListP
|
||||
- MkdirMetadata
|
||||
- Move
|
||||
- Overlay
|
||||
- PartialUploads
|
||||
- PutStream
|
||||
- ReadDirMetadata
|
||||
- ReadMetadata
|
||||
- ReadMimeType
|
||||
- SetWrapper
|
||||
- UnWrap
|
||||
- UserDirMetadata
|
||||
- UserMetadata
|
||||
- WrapFs
|
||||
- WriteDirMetadata
|
||||
- WriteDirSetModTime
|
||||
- WriteMetadata
|
||||
hashes:
|
||||
- md5
|
||||
precision: 1
|
||||
16
docs/data/backends/crypt.yaml
Normal file
16
docs/data/backends/crypt.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
backend: crypt
|
||||
name: Crypt
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 7
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: true
|
||||
remote: 'TestCryptLocal:'
|
||||
features: null
|
||||
hashes: null
|
||||
precision: null
|
||||
16
docs/data/backends/doi.yaml
Normal file
16
docs/data/backends/doi.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
backend: doi
|
||||
name: Doi
|
||||
tier: Tier 2
|
||||
maintainers: External
|
||||
features_score: 0
|
||||
integration_tests: N/A
|
||||
data_integrity: Other
|
||||
performance: High
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: null
|
||||
features: null
|
||||
hashes: null
|
||||
precision: null
|
||||
27
docs/data/backends/drime.yaml
Normal file
27
docs/data/backends/drime.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
backend: drime
|
||||
name: Drime
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 4
|
||||
integration_tests: Passing
|
||||
data_integrity: High
|
||||
performance: High
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestDrime:'
|
||||
features:
|
||||
- CanHaveEmptyDirectories
|
||||
- Copy
|
||||
- DirCacheFlush
|
||||
- DirMove
|
||||
- Move
|
||||
- OpenChunkWriter
|
||||
- Purge
|
||||
- PutStream
|
||||
- PutUnchecked
|
||||
- ReadMimeType
|
||||
- WriteMimeType
|
||||
hashes: []
|
||||
precision: 3153600000000000000
|
||||
48
docs/data/backends/drive.yaml
Normal file
48
docs/data/backends/drive.yaml
Normal file
@@ -0,0 +1,48 @@
|
||||
backend: drive
|
||||
name: Drive
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 7
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestDrive:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- ChangeNotify
|
||||
- CleanUp
|
||||
- Command
|
||||
- Copy
|
||||
- DirCacheFlush
|
||||
- DirMove
|
||||
- DirSetModTime
|
||||
- DuplicateFiles
|
||||
- FilterAware
|
||||
- ListP
|
||||
- ListR
|
||||
- MergeDirs
|
||||
- MkdirMetadata
|
||||
- Move
|
||||
- PublicLink
|
||||
- Purge
|
||||
- PutStream
|
||||
- PutUnchecked
|
||||
- ReadDirMetadata
|
||||
- ReadMetadata
|
||||
- ReadMimeType
|
||||
- UserDirMetadata
|
||||
- UserMetadata
|
||||
- WriteDirMetadata
|
||||
- WriteDirSetModTime
|
||||
- WriteMetadata
|
||||
- WriteMimeType
|
||||
hashes:
|
||||
- md5
|
||||
- sha1
|
||||
- sha256
|
||||
precision: 1000000
|
||||
29
docs/data/backends/dropbox.yaml
Normal file
29
docs/data/backends/dropbox.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
backend: dropbox
|
||||
name: Dropbox
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 6
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestDropbox:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- CaseInsensitive
|
||||
- ChangeNotify
|
||||
- Copy
|
||||
- DirMove
|
||||
- ListP
|
||||
- Move
|
||||
- PublicLink
|
||||
- Purge
|
||||
- PutStream
|
||||
- Shutdown
|
||||
hashes:
|
||||
- dropbox
|
||||
precision: 1000000000
|
||||
26
docs/data/backends/fichier.yaml
Normal file
26
docs/data/backends/fichier.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
backend: fichier
|
||||
name: Fichier
|
||||
tier: Tier 3
|
||||
maintainers: Core
|
||||
features_score: 2
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: Medium
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestFichier:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- Copy
|
||||
- DirMove
|
||||
- DuplicateFiles
|
||||
- Move
|
||||
- PublicLink
|
||||
- PutUnchecked
|
||||
- ReadMimeType
|
||||
hashes:
|
||||
- whirlpool
|
||||
precision: 3153600000000000000
|
||||
26
docs/data/backends/filefabric.yaml
Normal file
26
docs/data/backends/filefabric.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
backend: filefabric
|
||||
name: Filefabric
|
||||
tier: Tier 4
|
||||
maintainers: Core
|
||||
features_score: 3
|
||||
integration_tests: Failing
|
||||
data_integrity: Modtime
|
||||
performance: Medium
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestFileFabric:'
|
||||
features:
|
||||
- CanHaveEmptyDirectories
|
||||
- CaseInsensitive
|
||||
- CleanUp
|
||||
- Copy
|
||||
- DirCacheFlush
|
||||
- DirMove
|
||||
- Move
|
||||
- Purge
|
||||
- ReadMimeType
|
||||
- WriteMimeType
|
||||
hashes: []
|
||||
precision: 1000000000
|
||||
21
docs/data/backends/filelu.yaml
Normal file
21
docs/data/backends/filelu.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
backend: filelu
|
||||
name: Filelu
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 1
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestFileLu:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- Move
|
||||
- Purge
|
||||
- SlowHash
|
||||
hashes: []
|
||||
precision: 3153600000000000000
|
||||
29
docs/data/backends/filen.yaml
Normal file
29
docs/data/backends/filen.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
backend: filen
|
||||
name: Filen
|
||||
tier: Tier 1
|
||||
maintainers: External
|
||||
features_score: 6
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestFilen:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- ChunkWriterDoesntSeek
|
||||
- CleanUp
|
||||
- DirMove
|
||||
- ListR
|
||||
- Move
|
||||
- OpenChunkWriter
|
||||
- Purge
|
||||
- PutStream
|
||||
- ReadMimeType
|
||||
- WriteMimeType
|
||||
hashes:
|
||||
- blake3
|
||||
precision: 1000000
|
||||
29
docs/data/backends/filescom.yaml
Normal file
29
docs/data/backends/filescom.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
backend: filescom
|
||||
name: Filescom
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 5
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestFilesCom:'
|
||||
features:
|
||||
- CanHaveEmptyDirectories
|
||||
- CaseInsensitive
|
||||
- Copy
|
||||
- DirModTimeUpdatesOnWrite
|
||||
- DirMove
|
||||
- DirSetModTime
|
||||
- Move
|
||||
- PublicLink
|
||||
- Purge
|
||||
- PutStream
|
||||
- ReadMimeType
|
||||
hashes:
|
||||
- md5
|
||||
- crc32
|
||||
precision: 1000000000
|
||||
22
docs/data/backends/ftp.yaml
Normal file
22
docs/data/backends/ftp.yaml
Normal file
@@ -0,0 +1,22 @@
|
||||
backend: ftp
|
||||
name: FTP
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 4
|
||||
integration_tests: Passing
|
||||
data_integrity: Modtime
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: Varies
|
||||
virtual: false
|
||||
remote: 'TestFTPProftpd:'
|
||||
features:
|
||||
- CanHaveEmptyDirectories
|
||||
- DirMove
|
||||
- Move
|
||||
- PartialUploads
|
||||
- PutStream
|
||||
- Shutdown
|
||||
hashes: []
|
||||
precision: 1000000000
|
||||
34
docs/data/backends/gofile.yaml
Normal file
34
docs/data/backends/gofile.yaml
Normal file
@@ -0,0 +1,34 @@
|
||||
backend: gofile
|
||||
name: Gofile
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 5
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Often used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestGoFile:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- Copy
|
||||
- DirCacheFlush
|
||||
- DirModTimeUpdatesOnWrite
|
||||
- DirMove
|
||||
- DirSetModTime
|
||||
- DuplicateFiles
|
||||
- ListR
|
||||
- MergeDirs
|
||||
- Move
|
||||
- PublicLink
|
||||
- Purge
|
||||
- PutStream
|
||||
- PutUnchecked
|
||||
- ReadMimeType
|
||||
- WriteDirSetModTime
|
||||
hashes:
|
||||
- md5
|
||||
precision: 1000000000
|
||||
26
docs/data/backends/googlecloudstorage.yaml
Normal file
26
docs/data/backends/googlecloudstorage.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
backend: googlecloudstorage
|
||||
name: Google Cloud Storage
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 6
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestGoogleCloudStorage:'
|
||||
features:
|
||||
- BucketBased
|
||||
- BucketBasedRootOK
|
||||
- CanHaveEmptyDirectories
|
||||
- Copy
|
||||
- ListP
|
||||
- ListR
|
||||
- PutStream
|
||||
- ReadMimeType
|
||||
- WriteMimeType
|
||||
hashes:
|
||||
- md5
|
||||
precision: 1
|
||||
20
docs/data/backends/googlephotos.yaml
Normal file
20
docs/data/backends/googlephotos.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
backend: googlephotos
|
||||
name: Google Photos
|
||||
tier: Tier 5
|
||||
maintainers: None
|
||||
features_score: 0
|
||||
integration_tests: Failing
|
||||
data_integrity: Other
|
||||
performance: Low
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestGooglePhotos:'
|
||||
features:
|
||||
- Disconnect
|
||||
- ReadMimeType
|
||||
- Shutdown
|
||||
- UserInfo
|
||||
hashes: []
|
||||
precision: 3153600000000000000
|
||||
16
docs/data/backends/hasher.yaml
Normal file
16
docs/data/backends/hasher.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
backend: hasher
|
||||
name: Hasher
|
||||
tier: Tier 4
|
||||
maintainers: Core
|
||||
features_score: 7
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: true
|
||||
remote: null
|
||||
features: null
|
||||
hashes: null
|
||||
precision: null
|
||||
22
docs/data/backends/hdfs.yaml
Normal file
22
docs/data/backends/hdfs.yaml
Normal file
@@ -0,0 +1,22 @@
|
||||
backend: hdfs
|
||||
name: HDFS
|
||||
tier: Tier 2
|
||||
maintainers: Core
|
||||
features_score: 4
|
||||
integration_tests: Passing
|
||||
data_integrity: Modtime
|
||||
performance: Medium
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestHdfs:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- DirMove
|
||||
- Move
|
||||
- Purge
|
||||
- PutStream
|
||||
hashes: []
|
||||
precision: 1000000000
|
||||
25
docs/data/backends/hidrive.yaml
Normal file
25
docs/data/backends/hidrive.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
backend: hidrive
|
||||
name: Hidrive
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 5
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: Medium
|
||||
adoption: Often used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestHiDrive:'
|
||||
features:
|
||||
- CanHaveEmptyDirectories
|
||||
- Copy
|
||||
- DirMove
|
||||
- Move
|
||||
- Purge
|
||||
- PutStream
|
||||
- PutUnchecked
|
||||
- Shutdown
|
||||
hashes:
|
||||
- hidrive
|
||||
precision: 1000000000
|
||||
20
docs/data/backends/http.yaml
Normal file
20
docs/data/backends/http.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
backend: http
|
||||
name: HTTP
|
||||
tier: Tier 3
|
||||
maintainers: Core
|
||||
features_score: 0
|
||||
integration_tests: N/A
|
||||
data_integrity: Other
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: Varies
|
||||
virtual: false
|
||||
remote: ':http,url=''http://downloads.rclone.org'':'
|
||||
features:
|
||||
- CanHaveEmptyDirectories
|
||||
- Command
|
||||
- PutStream
|
||||
- ReadMetadata
|
||||
hashes: []
|
||||
precision: 1000000000
|
||||
16
docs/data/backends/iclouddrive.yaml
Normal file
16
docs/data/backends/iclouddrive.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
backend: iclouddrive
|
||||
name: Iclouddrive
|
||||
tier: Tier 4
|
||||
maintainers: External
|
||||
features_score: 3
|
||||
integration_tests: Flaky
|
||||
data_integrity: Modtime
|
||||
performance: Low
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestICloudDrive:'
|
||||
features: null
|
||||
hashes: null
|
||||
precision: null
|
||||
23
docs/data/backends/imagekit.yaml
Normal file
23
docs/data/backends/imagekit.yaml
Normal file
@@ -0,0 +1,23 @@
|
||||
backend: imagekit
|
||||
name: Imagekit
|
||||
tier: Tier 1
|
||||
maintainers: External
|
||||
features_score: 0
|
||||
integration_tests: Passing
|
||||
data_integrity: Other
|
||||
performance: High
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestImageKit:'
|
||||
features:
|
||||
- CanHaveEmptyDirectories
|
||||
- FilterAware
|
||||
- PublicLink
|
||||
- Purge
|
||||
- ReadMetadata
|
||||
- ReadMimeType
|
||||
- SlowHash
|
||||
hashes: []
|
||||
precision: 3153600000000000000
|
||||
28
docs/data/backends/internetarchive.yaml
Normal file
28
docs/data/backends/internetarchive.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
backend: internetarchive
|
||||
name: Internet Archive
|
||||
tier: Tier 3
|
||||
maintainers: Core
|
||||
features_score: 5
|
||||
integration_tests: Failing
|
||||
data_integrity: Hash
|
||||
performance: Medium
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: TestIA:rclone-integration-test
|
||||
features:
|
||||
- About
|
||||
- BucketBased
|
||||
- CleanUp
|
||||
- Copy
|
||||
- ListR
|
||||
- PublicLink
|
||||
- ReadMetadata
|
||||
- UserMetadata
|
||||
- WriteMetadata
|
||||
hashes:
|
||||
- md5
|
||||
- sha1
|
||||
- crc32
|
||||
precision: 1
|
||||
32
docs/data/backends/jottacloud.yaml
Normal file
32
docs/data/backends/jottacloud.yaml
Normal file
@@ -0,0 +1,32 @@
|
||||
backend: jottacloud
|
||||
name: Jottacloud
|
||||
tier: Tier 2
|
||||
maintainers: Core
|
||||
features_score: 6
|
||||
integration_tests: Flaky
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestJottacloud:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- CaseInsensitive
|
||||
- CleanUp
|
||||
- Copy
|
||||
- DirMove
|
||||
- ListR
|
||||
- Move
|
||||
- PublicLink
|
||||
- Purge
|
||||
- ReadMetadata
|
||||
- ReadMimeType
|
||||
- Shutdown
|
||||
- UserInfo
|
||||
- WriteMetadata
|
||||
hashes:
|
||||
- md5
|
||||
precision: 1000000000
|
||||
25
docs/data/backends/koofr.yaml
Normal file
25
docs/data/backends/koofr.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
backend: koofr
|
||||
name: Koofr
|
||||
tier: Tier 2
|
||||
maintainers: Core
|
||||
features_score: 5
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestKoofr:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- CaseInsensitive
|
||||
- Copy
|
||||
- DirMove
|
||||
- Move
|
||||
- PublicLink
|
||||
- PutStream
|
||||
hashes:
|
||||
- md5
|
||||
precision: 1000000
|
||||
20
docs/data/backends/linkbox.yaml
Normal file
20
docs/data/backends/linkbox.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
backend: linkbox
|
||||
name: Linkbox
|
||||
tier: Tier 5
|
||||
maintainers: Core
|
||||
features_score: 2
|
||||
integration_tests: Failing
|
||||
data_integrity: Modtime
|
||||
performance: High
|
||||
adoption: Often used
|
||||
docs: Basic
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestLinkbox:'
|
||||
features:
|
||||
- CanHaveEmptyDirectories
|
||||
- CaseInsensitive
|
||||
- DirCacheFlush
|
||||
- Purge
|
||||
hashes: []
|
||||
precision: 3153600000000000000
|
||||
50
docs/data/backends/local.yaml
Normal file
50
docs/data/backends/local.yaml
Normal file
@@ -0,0 +1,50 @@
|
||||
backend: local
|
||||
name: Local
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 7
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: .
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- Command
|
||||
- DirModTimeUpdatesOnWrite
|
||||
- DirMove
|
||||
- DirSetModTime
|
||||
- FilterAware
|
||||
- IsLocal
|
||||
- MkdirMetadata
|
||||
- Move
|
||||
- OpenWriterAt
|
||||
- PartialUploads
|
||||
- PutStream
|
||||
- ReadDirMetadata
|
||||
- ReadMetadata
|
||||
- SlowHash
|
||||
- UserDirMetadata
|
||||
- UserMetadata
|
||||
- WriteDirMetadata
|
||||
- WriteDirSetModTime
|
||||
- WriteMetadata
|
||||
hashes:
|
||||
- md5
|
||||
- sha1
|
||||
- whirlpool
|
||||
- crc32
|
||||
- sha256
|
||||
- sha512
|
||||
- blake3
|
||||
- xxh3
|
||||
- xxh128
|
||||
- dropbox
|
||||
- hidrive
|
||||
- mailru
|
||||
- quickxor
|
||||
precision: 1
|
||||
27
docs/data/backends/mailru.yaml
Normal file
27
docs/data/backends/mailru.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
backend: mailru
|
||||
name: Mailru
|
||||
tier: Tier 1
|
||||
maintainers: External
|
||||
features_score: 6
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: Medium
|
||||
adoption: Often used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestMailru:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- CaseInsensitive
|
||||
- CleanUp
|
||||
- Copy
|
||||
- DirMove
|
||||
- Move
|
||||
- PublicLink
|
||||
- Purge
|
||||
- ServerSideAcrossConfigs
|
||||
hashes:
|
||||
- mailru
|
||||
precision: 1000000000
|
||||
27
docs/data/backends/mega.yaml
Normal file
27
docs/data/backends/mega.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
backend: mega
|
||||
name: Mega
|
||||
tier: Tier 2
|
||||
maintainers: Core
|
||||
features_score: 3
|
||||
integration_tests: Flaky
|
||||
data_integrity: Other
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestMega:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- CleanUp
|
||||
- DirCacheFlush
|
||||
- DirMove
|
||||
- DuplicateFiles
|
||||
- MergeDirs
|
||||
- Move
|
||||
- PublicLink
|
||||
- Purge
|
||||
- PutUnchecked
|
||||
hashes: []
|
||||
precision: 3153600000000000000
|
||||
25
docs/data/backends/memory.yaml
Normal file
25
docs/data/backends/memory.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
backend: memory
|
||||
name: Memory
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 4
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: ':memory:'
|
||||
features:
|
||||
- BucketBased
|
||||
- BucketBasedRootOK
|
||||
- Copy
|
||||
- ListP
|
||||
- ListR
|
||||
- PutStream
|
||||
- ReadMimeType
|
||||
- WriteMimeType
|
||||
hashes:
|
||||
- md5
|
||||
precision: 1
|
||||
22
docs/data/backends/netstorage.yaml
Normal file
22
docs/data/backends/netstorage.yaml
Normal file
@@ -0,0 +1,22 @@
|
||||
backend: netstorage
|
||||
name: Netstorage
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 3
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestnStorage:'
|
||||
features:
|
||||
- CanHaveEmptyDirectories
|
||||
- Command
|
||||
- ListR
|
||||
- Purge
|
||||
- PutStream
|
||||
hashes:
|
||||
- md5
|
||||
precision: 1000000000
|
||||
38
docs/data/backends/onedrive.yaml
Normal file
38
docs/data/backends/onedrive.yaml
Normal file
@@ -0,0 +1,38 @@
|
||||
backend: onedrive
|
||||
name: Onedrive
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 6
|
||||
integration_tests: Flaky
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestOneDrive:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- CaseInsensitive
|
||||
- ChangeNotify
|
||||
- CleanUp
|
||||
- Copy
|
||||
- DirCacheFlush
|
||||
- DirMove
|
||||
- DirSetModTime
|
||||
- ListP
|
||||
- MkdirMetadata
|
||||
- Move
|
||||
- PublicLink
|
||||
- Purge
|
||||
- ReadDirMetadata
|
||||
- ReadMetadata
|
||||
- ReadMimeType
|
||||
- Shutdown
|
||||
- WriteDirMetadata
|
||||
- WriteDirSetModTime
|
||||
- WriteMetadata
|
||||
hashes:
|
||||
- quickxor
|
||||
precision: 1000000000
|
||||
25
docs/data/backends/opendrive.yaml
Normal file
25
docs/data/backends/opendrive.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
backend: opendrive
|
||||
name: Opendrive
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 5
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Often used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestOpenDrive:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- CaseInsensitive
|
||||
- Copy
|
||||
- DirCacheFlush
|
||||
- DirMove
|
||||
- Move
|
||||
- Purge
|
||||
hashes:
|
||||
- md5
|
||||
precision: 1000000000
|
||||
32
docs/data/backends/oracleobjectstorage.yaml
Normal file
32
docs/data/backends/oracleobjectstorage.yaml
Normal file
@@ -0,0 +1,32 @@
|
||||
backend: oracleobjectstorage
|
||||
name: Oracle Object Storage
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 6
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestOracleObjectStorage:'
|
||||
features:
|
||||
- BucketBased
|
||||
- BucketBasedRootOK
|
||||
- CleanUp
|
||||
- Command
|
||||
- Copy
|
||||
- GetTier
|
||||
- ListP
|
||||
- ListR
|
||||
- OpenChunkWriter
|
||||
- PutStream
|
||||
- ReadMetadata
|
||||
- ReadMimeType
|
||||
- SetTier
|
||||
- SlowModTime
|
||||
- WriteMimeType
|
||||
hashes:
|
||||
- md5
|
||||
precision: 1000000
|
||||
31
docs/data/backends/pcloud.yaml
Normal file
31
docs/data/backends/pcloud.yaml
Normal file
@@ -0,0 +1,31 @@
|
||||
backend: pcloud
|
||||
name: Pcloud
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 5
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Often used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestPcloud:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- ChangeNotify
|
||||
- Copy
|
||||
- DirCacheFlush
|
||||
- DirMove
|
||||
- ListP
|
||||
- ListR
|
||||
- Move
|
||||
- PartialUploads
|
||||
- PublicLink
|
||||
- Purge
|
||||
- Shutdown
|
||||
hashes:
|
||||
- sha1
|
||||
- sha256
|
||||
precision: 1000000000
|
||||
30
docs/data/backends/pikpak.yaml
Normal file
30
docs/data/backends/pikpak.yaml
Normal file
@@ -0,0 +1,30 @@
|
||||
backend: pikpak
|
||||
name: Pikpak
|
||||
tier: Tier 1
|
||||
maintainers: External
|
||||
features_score: 5
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Often used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestPikPak:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- CleanUp
|
||||
- Command
|
||||
- Copy
|
||||
- DirCacheFlush
|
||||
- DirMove
|
||||
- Move
|
||||
- NoMultiThreading
|
||||
- PublicLink
|
||||
- Purge
|
||||
- ReadMimeType
|
||||
- UserInfo
|
||||
hashes:
|
||||
- md5
|
||||
precision: 3153600000000000000
|
||||
29
docs/data/backends/pixeldrain.yaml
Normal file
29
docs/data/backends/pixeldrain.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
backend: pixeldrain
|
||||
name: Pixeldrain
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 7
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestPixeldrain:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- ChangeNotify
|
||||
- DirMove
|
||||
- DirSetModTime
|
||||
- Move
|
||||
- PublicLink
|
||||
- Purge
|
||||
- PutStream
|
||||
- ReadMetadata
|
||||
- ReadMimeType
|
||||
- WriteMetadata
|
||||
hashes:
|
||||
- sha256
|
||||
precision: 1000000
|
||||
27
docs/data/backends/premiumizeme.yaml
Normal file
27
docs/data/backends/premiumizeme.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
backend: premiumizeme
|
||||
name: Premiumizeme
|
||||
tier: Tier 3
|
||||
maintainers: Core
|
||||
features_score: 2
|
||||
integration_tests: Passing
|
||||
data_integrity: Other
|
||||
performance: High
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestPremiumizeMe:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- CaseInsensitive
|
||||
- DirCacheFlush
|
||||
- DirMove
|
||||
- Move
|
||||
- PublicLink
|
||||
- Purge
|
||||
- PutUnchecked
|
||||
- ReadMimeType
|
||||
- Shutdown
|
||||
hashes: []
|
||||
precision: 3153600000000000000
|
||||
27
docs/data/backends/protondrive.yaml
Normal file
27
docs/data/backends/protondrive.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
backend: protondrive
|
||||
name: Proton Drive
|
||||
tier: Tier 5
|
||||
maintainers: None
|
||||
features_score: 4
|
||||
integration_tests: Failing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Often used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestProtonDrive:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- CleanUp
|
||||
- DirCacheFlush
|
||||
- DirMove
|
||||
- Disconnect
|
||||
- Move
|
||||
- NoMultiThreading
|
||||
- Purge
|
||||
- ReadMimeType
|
||||
hashes:
|
||||
- sha1
|
||||
precision: 1000000000
|
||||
28
docs/data/backends/putio.yaml
Normal file
28
docs/data/backends/putio.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
backend: putio
|
||||
name: Putio
|
||||
tier: Tier 2
|
||||
maintainers: Core
|
||||
features_score: 5
|
||||
integration_tests: Flaky
|
||||
data_integrity: Hash
|
||||
performance: Low
|
||||
adoption: Often used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestPutio:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- CleanUp
|
||||
- Copy
|
||||
- DirCacheFlush
|
||||
- DirMove
|
||||
- DuplicateFiles
|
||||
- Move
|
||||
- Purge
|
||||
- PutUnchecked
|
||||
- ReadMimeType
|
||||
hashes:
|
||||
- crc32
|
||||
precision: 1000000000
|
||||
25
docs/data/backends/qingstor.yaml
Normal file
25
docs/data/backends/qingstor.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
backend: qingstor
|
||||
name: Qingstor
|
||||
tier: Tier 3
|
||||
maintainers: Core
|
||||
features_score: 3
|
||||
integration_tests: Disabled
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Often used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestQingStor:'
|
||||
features:
|
||||
- BucketBased
|
||||
- BucketBasedRootOK
|
||||
- CleanUp
|
||||
- Copy
|
||||
- ListR
|
||||
- ReadMimeType
|
||||
- SlowModTime
|
||||
- WriteMimeType
|
||||
hashes:
|
||||
- md5
|
||||
precision: 3153600000000000000
|
||||
24
docs/data/backends/quatrix.yaml
Normal file
24
docs/data/backends/quatrix.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
backend: quatrix
|
||||
name: Quatrix
|
||||
tier: Tier 3
|
||||
maintainers: Core
|
||||
features_score: 3
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Often used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestQuatrix:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- Copy
|
||||
- DirCacheFlush
|
||||
- DirMove
|
||||
- Move
|
||||
- PartialUploads
|
||||
- Purge
|
||||
hashes: []
|
||||
precision: 1000
|
||||
37
docs/data/backends/s3.yaml
Normal file
37
docs/data/backends/s3.yaml
Normal file
@@ -0,0 +1,37 @@
|
||||
backend: s3
|
||||
name: S3
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 7
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestS3:'
|
||||
features:
|
||||
- BucketBased
|
||||
- BucketBasedRootOK
|
||||
- CleanUp
|
||||
- Command
|
||||
- Copy
|
||||
- DoubleSlash
|
||||
- GetTier
|
||||
- ListP
|
||||
- ListR
|
||||
- OpenChunkWriter
|
||||
- PublicLink
|
||||
- Purge
|
||||
- PutStream
|
||||
- ReadMetadata
|
||||
- ReadMimeType
|
||||
- SetTier
|
||||
- SlowModTime
|
||||
- UserMetadata
|
||||
- WriteMetadata
|
||||
- WriteMimeType
|
||||
hashes:
|
||||
- md5
|
||||
precision: 1
|
||||
28
docs/data/backends/seafile.yaml
Normal file
28
docs/data/backends/seafile.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
backend: seafile
|
||||
name: Seafile
|
||||
tier: Tier 3
|
||||
maintainers: Core
|
||||
features_score: 3
|
||||
integration_tests: Failing
|
||||
data_integrity: Other
|
||||
performance: Medium
|
||||
adoption: Some use
|
||||
docs: Basic
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestSeafile:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- CleanUp
|
||||
- Copy
|
||||
- DirMove
|
||||
- ListR
|
||||
- Move
|
||||
- PublicLink
|
||||
- Purge
|
||||
- PutStream
|
||||
- Shutdown
|
||||
- UserInfo
|
||||
hashes: []
|
||||
precision: 3153600000000000000
|
||||
29
docs/data/backends/sftp.yaml
Normal file
29
docs/data/backends/sftp.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
backend: sftp
|
||||
name: SFTP
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 5
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestSFTPOpenssh:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- Copy
|
||||
- DirModTimeUpdatesOnWrite
|
||||
- DirMove
|
||||
- DirSetModTime
|
||||
- Move
|
||||
- PartialUploads
|
||||
- PutStream
|
||||
- Shutdown
|
||||
- SlowHash
|
||||
hashes:
|
||||
- md5
|
||||
- sha1
|
||||
precision: 1000000000
|
||||
20
docs/data/backends/shade.yaml
Normal file
20
docs/data/backends/shade.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
backend: shade
|
||||
name: Shade
|
||||
tier: Tier 1
|
||||
maintainers: External
|
||||
features_score: 0
|
||||
integration_tests: Passing
|
||||
data_integrity: Other
|
||||
performance: High
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestShade:'
|
||||
features:
|
||||
- CanHaveEmptyDirectories
|
||||
- DirMove
|
||||
- Move
|
||||
- OpenChunkWriter
|
||||
hashes: []
|
||||
precision: 3153600000000000000
|
||||
17
docs/data/backends/sharefile.yaml
Normal file
17
docs/data/backends/sharefile.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
backend: sharefile
|
||||
name: Sharefile
|
||||
tier: Tier 5
|
||||
maintainers: Core
|
||||
features_score: 4
|
||||
integration_tests: Disabled
|
||||
data_integrity: Modtime
|
||||
performance: Medium
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestSharefile:'
|
||||
features: null
|
||||
hashes:
|
||||
- md5
|
||||
precision: 1000000000
|
||||
18
docs/data/backends/sia.yaml
Normal file
18
docs/data/backends/sia.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
backend: sia
|
||||
name: Sia
|
||||
tier: Tier 4
|
||||
maintainers: Core
|
||||
features_score: 1
|
||||
integration_tests: Failing
|
||||
data_integrity: Other
|
||||
performance: Medium
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestSia:'
|
||||
features:
|
||||
- CanHaveEmptyDirectories
|
||||
- PutStream
|
||||
hashes: []
|
||||
precision: 3153600000000000000
|
||||
26
docs/data/backends/smb.yaml
Normal file
26
docs/data/backends/smb.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
backend: smb
|
||||
name: SMB
|
||||
tier: Tier 2
|
||||
maintainers: External
|
||||
features_score: 5
|
||||
integration_tests: Passing
|
||||
data_integrity: Modtime
|
||||
performance: Medium
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: TestSMB:rclone
|
||||
features:
|
||||
- About
|
||||
- BucketBased
|
||||
- CanHaveEmptyDirectories
|
||||
- CaseInsensitive
|
||||
- DirMove
|
||||
- Move
|
||||
- OpenWriterAt
|
||||
- PartialUploads
|
||||
- PutStream
|
||||
- Shutdown
|
||||
hashes: []
|
||||
precision: 1000000
|
||||
24
docs/data/backends/storj.yaml
Normal file
24
docs/data/backends/storj.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
backend: storj
|
||||
name: Storj
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 4
|
||||
integration_tests: Passing
|
||||
data_integrity: Modtime
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestStorj:'
|
||||
features:
|
||||
- BucketBased
|
||||
- BucketBasedRootOK
|
||||
- Copy
|
||||
- ListR
|
||||
- Move
|
||||
- PublicLink
|
||||
- Purge
|
||||
- PutStream
|
||||
hashes: []
|
||||
precision: 1
|
||||
26
docs/data/backends/sugarsync.yaml
Normal file
26
docs/data/backends/sugarsync.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
backend: sugarsync
|
||||
name: Sugarsync
|
||||
tier: Tier 3
|
||||
maintainers: Core
|
||||
features_score: 3
|
||||
integration_tests: Passing
|
||||
data_integrity: Other
|
||||
performance: Medium
|
||||
adoption: Some use
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: TestSugarSync:Test
|
||||
features:
|
||||
- CanHaveEmptyDirectories
|
||||
- CaseInsensitive
|
||||
- Copy
|
||||
- DirCacheFlush
|
||||
- DirMove
|
||||
- Move
|
||||
- PublicLink
|
||||
- Purge
|
||||
- PutStream
|
||||
- PutUnchecked
|
||||
hashes: []
|
||||
precision: 3153600000000000000
|
||||
28
docs/data/backends/swift.yaml
Normal file
28
docs/data/backends/swift.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
backend: swift
|
||||
name: Swift
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 4
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestSwiftAIO:'
|
||||
features:
|
||||
- About
|
||||
- BucketBased
|
||||
- BucketBasedRootOK
|
||||
- Copy
|
||||
- ListP
|
||||
- ListR
|
||||
- Purge
|
||||
- PutStream
|
||||
- ReadMimeType
|
||||
- SlowModTime
|
||||
- WriteMimeType
|
||||
hashes:
|
||||
- md5
|
||||
precision: 1
|
||||
25
docs/data/backends/ulozto.yaml
Normal file
25
docs/data/backends/ulozto.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
backend: ulozto
|
||||
name: Ulozto
|
||||
tier: Tier 3
|
||||
maintainers: Core
|
||||
features_score: 3
|
||||
integration_tests: Failing
|
||||
data_integrity: Hash
|
||||
performance: Medium
|
||||
adoption: Often used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestUlozto:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- DirCacheFlush
|
||||
- DirMove
|
||||
- DuplicateFiles
|
||||
- Move
|
||||
- PutUnchecked
|
||||
hashes:
|
||||
- md5
|
||||
- sha256
|
||||
precision: 1000
|
||||
47
docs/data/backends/union.yaml
Normal file
47
docs/data/backends/union.yaml
Normal file
@@ -0,0 +1,47 @@
|
||||
backend: union
|
||||
name: Union
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 7
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Often used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: true
|
||||
remote: 'TestUnion:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- DirModTimeUpdatesOnWrite
|
||||
- DirMove
|
||||
- DirSetModTime
|
||||
- MkdirMetadata
|
||||
- Move
|
||||
- Overlay
|
||||
- PartialUploads
|
||||
- PutStream
|
||||
- ReadDirMetadata
|
||||
- ReadMetadata
|
||||
- SlowHash
|
||||
- UserDirMetadata
|
||||
- UserMetadata
|
||||
- WriteDirMetadata
|
||||
- WriteDirSetModTime
|
||||
- WriteMetadata
|
||||
hashes:
|
||||
- md5
|
||||
- sha1
|
||||
- whirlpool
|
||||
- crc32
|
||||
- sha256
|
||||
- sha512
|
||||
- blake3
|
||||
- xxh3
|
||||
- xxh128
|
||||
- dropbox
|
||||
- hidrive
|
||||
- mailru
|
||||
- quickxor
|
||||
precision: 1
|
||||
24
docs/data/backends/webdav.yaml
Normal file
24
docs/data/backends/webdav.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
backend: webdav
|
||||
name: WebDAV
|
||||
tier: Tier 1
|
||||
maintainers: Core
|
||||
features_score: 5
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: Low
|
||||
adoption: Widely used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestWebdavNextcloud:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- Copy
|
||||
- DirMove
|
||||
- ListP
|
||||
- Move
|
||||
- Purge
|
||||
hashes:
|
||||
- sha1
|
||||
precision: 1000000000
|
||||
27
docs/data/backends/yandex.yaml
Normal file
27
docs/data/backends/yandex.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
backend: yandex
|
||||
name: Yandex
|
||||
tier: Tier 1
|
||||
maintainers: External
|
||||
features_score: 5
|
||||
integration_tests: Passing
|
||||
data_integrity: Hash
|
||||
performance: High
|
||||
adoption: Often used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestYandex:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- CleanUp
|
||||
- Copy
|
||||
- DirMove
|
||||
- Move
|
||||
- PublicLink
|
||||
- Purge
|
||||
- PutStream
|
||||
- ReadMimeType
|
||||
hashes:
|
||||
- md5
|
||||
precision: 1
|
||||
23
docs/data/backends/zoho.yaml
Normal file
23
docs/data/backends/zoho.yaml
Normal file
@@ -0,0 +1,23 @@
|
||||
backend: zoho
|
||||
name: Zoho
|
||||
tier: Tier 3
|
||||
maintainers: External
|
||||
features_score: 2
|
||||
integration_tests: Failing
|
||||
data_integrity: Other
|
||||
performance: Medium
|
||||
adoption: Often used
|
||||
docs: Full
|
||||
security: High
|
||||
virtual: false
|
||||
remote: 'TestZoho:'
|
||||
features:
|
||||
- About
|
||||
- CanHaveEmptyDirectories
|
||||
- Copy
|
||||
- DirCacheFlush
|
||||
- DirMove
|
||||
- Move
|
||||
- Purge
|
||||
hashes: []
|
||||
precision: 3153600000000000000
|
||||
@@ -41,7 +41,12 @@
|
||||
{{ with .Params.status | lower }}
|
||||
{{ $statusCode := . }}
|
||||
{{ $statusMessage := index $statusMap $statusCode }}
|
||||
<span class="badge badge-pill badge-danger float-right" style="margin-top: 30px; font-size: 100%" title="{{ $statusMessage }}">{{ $statusCode }}</span>
|
||||
<span class="badge badge-pill badge-danger float-right" style="margin-top: 30px; font-size: 100%" title="{{ $statusMessage }}">{{ $statusCode | title }}</span>
|
||||
{{ end }}
|
||||
|
||||
{{ if .Page.File }}
|
||||
{{ $backendName := .Page.File.TranslationBaseName }}
|
||||
{{ partial "tier.html" (dict "name" $backendName "align" true) }}
|
||||
{{ end }}
|
||||
|
||||
{{ block "main" . }}
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
</a>
|
||||
<div class="dropdown-menu pre-scrollable" aria-labelledby="navbarDropdown">
|
||||
<a class="dropdown-item" href="/overview/"><i class="fas fa-map fa-fw"></i> Overview</a>
|
||||
<a class="dropdown-item" href="/tiers/"><i class="fas fa-map fa-fw"></i> Support Tiers</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="/fichier/"><i class="fa fa-archive fa-fw"></i> 1Fichier</a>
|
||||
<a class="dropdown-item" href="/netstorage/"><i class="fas fa-database fa-fw"></i> Akamai NetStorage</a>
|
||||
|
||||
6
docs/layouts/partials/bool.html
Normal file
6
docs/layouts/partials/bool.html
Normal file
@@ -0,0 +1,6 @@
|
||||
{{ if . }}
|
||||
<span class="text-success">✔</span>
|
||||
{{ else }}
|
||||
<span class="text-danger">✖</span>
|
||||
{{ end }}
|
||||
|
||||
42
docs/layouts/partials/tier.html
Normal file
42
docs/layouts/partials/tier.html
Normal file
@@ -0,0 +1,42 @@
|
||||
{{/* Context: Accepts .tier (string) OR .name (string) for lookup. Optional: .align (bool) */}}
|
||||
|
||||
{{ $tierColors := dict
|
||||
"Tier 1" "success"
|
||||
"Tier 2" "success"
|
||||
"Tier 3" "warning"
|
||||
"Tier 4" "danger"
|
||||
"Tier 5" "danger"
|
||||
}}
|
||||
|
||||
{{ $tierMessages := dict
|
||||
"Tier 1" "Core: Production-grade, first-class"
|
||||
"Tier 2" "Stable: Well-supported, minor gaps"
|
||||
"Tier 3" "Supported: Works for many uses; known caveats"
|
||||
"Tier 4" "Experimental: Use with care; expect gaps/changes"
|
||||
"Tier 5" "Deprecated: No longer maintained or supported"
|
||||
}}
|
||||
|
||||
{{/* Determine the Tier Name */}}
|
||||
{{ $currentTier := "" }}
|
||||
|
||||
{{ if .tier }}
|
||||
{{/* Direct Tier Usage */}}
|
||||
{{ $currentTier = .tier }}
|
||||
{{ else if .name }}
|
||||
{{/* Backend Lookup Usage */}}
|
||||
{{ $backendName := .name | lower }}
|
||||
{{ $data := index site.Data.backends $backendName }}
|
||||
{{ if $data }}
|
||||
{{ $currentTier = $data.tier }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{/* Render Badge if a Tier was found */}}
|
||||
{{ if $currentTier }}
|
||||
{{ $color := index $tierColors $currentTier | default "secondary" }}
|
||||
{{ $message := index $tierMessages $currentTier | default "" }}
|
||||
|
||||
<a href="/tiers/" class="badge badge-pill badge-{{ $color }} {{ if .align }}float-right{{ end }}" style="{{ if .align }}margin-top: 30px; {{ end }}font-size: 100%" title="{{ $message }}">
|
||||
{{ $currentTier }}
|
||||
</a>
|
||||
{{ end }}
|
||||
120
docs/layouts/shortcodes/features-table.html
Normal file
120
docs/layouts/shortcodes/features-table.html
Normal file
@@ -0,0 +1,120 @@
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Tier</th>
|
||||
<th>Hash</th>
|
||||
<th>ModTime</th>
|
||||
<th>Case Insensitive</th>
|
||||
<th>Duplicate Files</th>
|
||||
<th>MIME Type</th>
|
||||
<th>Metadata</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{ range sort site.Data.backends "name" "asc" }}
|
||||
{{ if .virtual }}{{ continue }} {{ end }}
|
||||
<tr>
|
||||
<td style="font-weight: bold;">
|
||||
<a href="/{{ .backend | urlize }}">{{ .name }}</a>
|
||||
</td>
|
||||
|
||||
{{/* Tier Column */}}
|
||||
<td>
|
||||
{{ partial "tier.html" (dict "name" .backend "align" false) }}
|
||||
</td>
|
||||
|
||||
{{/* Hash Column */}}
|
||||
<td>
|
||||
{{ $local := in .features "IsLocal" }}
|
||||
{{ if $local }}
|
||||
<b>ALL</b>
|
||||
{{ else }}
|
||||
{{ with .hashes }}
|
||||
{{ delimit . ", " }}
|
||||
{{ else }}
|
||||
-
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</td>
|
||||
|
||||
{{/* ModTime */}}
|
||||
<td>
|
||||
{{ $d := or (in .features "MkdirMetadata") (in .features "DirSetModTime") }}
|
||||
{{ $r := true }} {{/* FIXME don't have a way of reading this from the features */}}
|
||||
{{ $w := and (isset . "precision") (le .precision 1000000000) }}
|
||||
{{- if $d -}}
|
||||
D
|
||||
{{- end -}}
|
||||
{{ if and $r $w -}}
|
||||
R/W
|
||||
{{- else if $r -}}
|
||||
R
|
||||
{{- else if $w -}}
|
||||
W
|
||||
{{- else -}}
|
||||
-
|
||||
{{- end -}}
|
||||
</td>
|
||||
|
||||
{{/* Case Insensitive */}}
|
||||
<td>
|
||||
{{ partial "bool.html" (in .features "CaseInsensitive") }}
|
||||
</td>
|
||||
|
||||
{{/* Duplicate Files */}}
|
||||
<td>
|
||||
{{ partial "bool.html" (in .features "DuplicateFiles") }}
|
||||
</td>
|
||||
|
||||
{{/* MIME Type Synthesis */}}
|
||||
<td>
|
||||
{{ $r := in .features "ReadMimeType" }}
|
||||
{{ $w := in .features "WriteMimeType" }}
|
||||
{{ if and $r $w }}
|
||||
R/W
|
||||
{{ else if $r }}
|
||||
R
|
||||
{{ else if $w }}
|
||||
W
|
||||
{{ else }}
|
||||
-
|
||||
{{ end }}
|
||||
</td>
|
||||
|
||||
{{/* Metadata Synthesis */}}
|
||||
<td>
|
||||
{{ $meta := "" }}
|
||||
|
||||
{{/* Check Directory Metadata Support */}}
|
||||
{{ if or (in .features "ReadDirMetadata") (in .features "WriteDirMetadata") }}
|
||||
{{ $meta = "D" }}
|
||||
{{ end }}
|
||||
|
||||
{{/* Check System Metadata Read */}}
|
||||
{{ if in .features "ReadMetadata" }}
|
||||
{{ $meta = print $meta "R" }}
|
||||
{{ end }}
|
||||
|
||||
{{/* Check System Metadata Write */}}
|
||||
{{ if in .features "WriteMetadata" }}
|
||||
{{ $meta = print $meta "W" }}
|
||||
{{ end }}
|
||||
|
||||
{{/* Check User Metadata Support */}}
|
||||
{{ if in .features "UserMetadata" }}
|
||||
{{ $meta = print $meta "U" }}
|
||||
{{ end }}
|
||||
|
||||
{{/* Output result or hyphen if empty */}}
|
||||
{{ if eq $meta "" }}
|
||||
-
|
||||
{{ else }}
|
||||
{{ $meta }}
|
||||
{{ end }}
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{{ end }}
|
||||
</tbody>
|
||||
</table>
|
||||
40
docs/layouts/shortcodes/optional-features-table.html
Normal file
40
docs/layouts/shortcodes/optional-features-table.html
Normal file
@@ -0,0 +1,40 @@
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th align="left">Name</th>
|
||||
<th align="center">Purge</th>
|
||||
<th align="center">Copy</th>
|
||||
<th align="center">Move</th>
|
||||
<th align="center">DirMove</th>
|
||||
<th align="center">CleanUp</th>
|
||||
<th align="center">ListR</th>
|
||||
<th align="center">StreamUpload</th>
|
||||
<th align="left">MultithreadUpload</th>
|
||||
<th align="center">LinkSharing</th>
|
||||
<th align="center">About</th>
|
||||
<th align="center">EmptyDir</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{ range sort site.Data.backends "name" "asc" }}
|
||||
{{ if .virtual }}{{ continue }} {{ end }}
|
||||
<tr>
|
||||
<td align="left" style="font-weight: bold;">
|
||||
<a href="/{{ .backend | urlize }}">{{ .name }}</a>
|
||||
</td>
|
||||
|
||||
<td align="center">{{ partial "bool.html" (in .features "Purge") }}</td>
|
||||
<td align="center">{{ partial "bool.html" (in .features "Copy") }}</td>
|
||||
<td align="center">{{ partial "bool.html" (in .features "Move") }}</td>
|
||||
<td align="center">{{ partial "bool.html" (in .features "DirMove") }}</td>
|
||||
<td align="center">{{ partial "bool.html" (in .features "CleanUp") }}</td>
|
||||
<td align="center">{{ partial "bool.html" (in .features "ListR") }}</td>
|
||||
<td align="center">{{ partial "bool.html" (in .features "PutStream") }}</td>
|
||||
<td align="center">{{ partial "bool.html" (or (in .features "OpenChunkWriter") (in .features "OpenWriterAt")) }}</td>
|
||||
<td align="center">{{ partial "bool.html" (in .features "PublicLink") }}</td>
|
||||
<td align="center">{{ partial "bool.html" (in .features "About") }}</td>
|
||||
<td align="center">{{ partial "bool.html" (in .features "CanHaveEmptyDirectories") }}</td>
|
||||
</tr>
|
||||
{{ end }}
|
||||
</tbody>
|
||||
</table>
|
||||
1
docs/layouts/shortcodes/tier.html
Normal file
1
docs/layouts/shortcodes/tier.html
Normal file
@@ -0,0 +1 @@
|
||||
{{ partial "tier.html" (dict "tier" (.Get "tier") "name" (.Get "name") "align" (.Get "align")) }}
|
||||
41
docs/layouts/shortcodes/tiers-table.html
Normal file
41
docs/layouts/shortcodes/tiers-table.html
Normal file
@@ -0,0 +1,41 @@
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Backend</th>
|
||||
<th>Tier</th>
|
||||
<th>Maintainers</th>
|
||||
<th>Features</th>
|
||||
<th>Tests</th>
|
||||
<th>Integrity</th>
|
||||
<th>Perf</th>
|
||||
<th>Adoption</th>
|
||||
<th>Docs</th>
|
||||
<th>Security</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{ range $name, $data := site.Data.backends }}
|
||||
<tr>
|
||||
<td style="font-weight: bold;">
|
||||
<a href="/{{ $name | urlize }}">{{ $data.name }}</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ partial "tier.html" (dict "name" $name "align" false) }}
|
||||
</td>
|
||||
<td>{{ $data.maintainers | default "-" }}</td>
|
||||
<td>{{ $data.features_score | string | default "-" }}</td>
|
||||
<td>
|
||||
<span class="{{ if eq $data.integration_tests "Passing" }}text-success{{ else }}text-danger{{ end }}">
|
||||
{{ if eq $data.integration_tests "Passing" }}✔{{ else }}✖{{ end }}
|
||||
</span>
|
||||
{{ $data.integration_tests | default "-" }}
|
||||
</td>
|
||||
<td>{{ $data.data_integrity | default "-" }}</td>
|
||||
<td>{{ $data.performance | default "-" }}</td>
|
||||
<td>{{ $data.adoption | default "-" }}</td>
|
||||
<td>{{ $data.docs | default "-" }}</td>
|
||||
<td>{{ $data.security | default "-" }}</td>
|
||||
</tr>
|
||||
{{ end }}
|
||||
</tbody>
|
||||
</table>
|
||||
Reference in New Issue
Block a user