Skip to content

Client gotchas

AWS CLI ignores my endpoint

You must pass --endpoint-url "https://YOUR-ENDPOINT/" on each command (or script it via a wrapper). Without it, the CLI talks to AWS, not your node. See client examples.

rclone can't see my buckets

Check that your remote has endpoint set with https://, and add force_path_style = true. Without path-style, rclone may try bucket-prefixed hostnames.

s3cmd fails on bucket operations

Set both host_base and host_bucket to your endpoint hostname (no scheme) and use_https = True. A mismatch between those two values is the usual culprit.

Cyberduck shows certificate or host errors

Enter the endpoint hostname only (no https://) as the server, use your access key as the username and secret key as the password, and prefer path-style connect mode if offered.

My SDK uses virtual-host addressing and breaks

Force path-style. For boto3:

from botocore.config import Config
s3 = boto3.client("s3", endpoint_url="https://YOUR-ENDPOINT/",
                  config=Config(s3={"addressing_style": "path"}))

See Path-style vs virtual-host.

A tool demands a region and won't proceed

Enter us-east-1. It's a placeholder; the endpoint URL determines routing.

Scans or listings are slow

By default rclone makes one API call per directory, which is slow over a high-latency S3 endpoint when a tool walks a large library. Add --fast-list to direct commands (rclone lsf/ls/size/copy) — it reads the tree recursively in batched LIST calls (one per ~1000 objects). It costs ~1 KB RAM per object, so drop it on memory-constrained boxes.

On an rclone mount, on-demand browsing ignores --fast-list, so the first browse after a reboot crawls. Warm the VFS cache once after mounting — one non-recursive async refresh per top-level directory, so the walks run in parallel and stay light on the backend:

for d in /mnt/zendrive/*/; do
  rclone rc vfs/refresh dir="$(basename "$d")" recursive=false _async=true \
    --rc-addr 127.0.0.1:5572
done

This warms the top-level listings you browse — the production-proven default. For a boot-time service that warms several mounts safely, see Warming the rclone cache at startup. If you want the whole tree cached so a full library scan reads from memory, run a recursive deep prime once instead (recursive=true, which honors --fast-list) — heavier on a library the size of ZenDRIVE. See Mount for streaming.

A large download stalls partway

Retry — most clients resume from where they left off. Raising concurrency can also help. If a specific object consistently fails, open a support ticket.

My client tries to upload or create a bucket and fails

That's expected — ZenDRIVE S3 Access is read-only. Use list/download operations only; see Browsing & downloading.

My GUI client isn't listed here

If it supports a custom S3 endpoint plus access/secret keys and path-style addressing, it should work. Mirror the settings from the client examples.