BucketPilot Drop — upload from a desktop or a server
A folder on your computer or server whose contents upload to a bucket by themselves — install it, sign in, and what it does with your files.
What it is
BucketPilot Drop gives a computer or a server a folder that uploads to one of your buckets (or a connected server drive) as you. Put a file in, and a moment later it is in the bucket; once BucketPilot has confirmed it, it leaves the folder.
- •It is you, not a key. You sign in with your BucketPilot account by approving a code in a browser, so it can write exactly where you can write and nowhere else. Nobody pastes an access key into a machine.
- •One way. Files go in. Drop has no way to delete anything from your bucket.
- •Folders both ways. The bucket's folders appear in the drop (refreshed every couple of minutes), and a folder you create in the drop is created in the bucket.
- •It needs a plan that can upload. The read-only Free tier cannot connect a computer.
Not sure it fits? Three pages show it at work: upload a Linux folder to S3 automatically (the general case), scan to S3 and media ingest to S3.
It comes in three forms:
| For | Where the drop is | |
|---|---|---|
| Mac and Windows app | A desk | A drive in Finder / This PC |
| Linux desktop app | A Linux desk (Ubuntu, Debian, Fedora, RHEL and relatives) | A folder, ~/BucketPilot_Drop |
Server program (bucketpilot-drop) | A Linux server with no screen — a scanner share, a render farm, a camera ingest | A folder you choose, uploaded by a service |
For the Mac and Windows installers, ask us and we will send them. The Linux packages are public — below.
Install on Linux
One line, on Debian, Ubuntu, Fedora, RHEL, Rocky or Alma, x86-64 or arm64. It checks the signing key's fingerprint, adds BucketPilot's signed package repository, and installs — so updates arrive with your normal system updates.
The desktop app:
curl -fsSL https://packages.bucketpilot.io/install.sh | sudo shOpen BucketPilot Drop from your applications menu (or run bucketpilot-drop-desktop).
The server program — a single file with nothing else to install, no Node:
curl -fsSL https://packages.bucketpilot.io/install.sh | sudo sh -s -- --serverThe package repository has its own page, packages.bucketpilot.io, with the apt and dnf setup lines and the signing key's fingerprint; you can read the install script first at packages.bucketpilot.io/install.sh. Prefer to add the repository by hand? The commands for apt and dnf are on packages.bucketpilot.io, with the key's fingerprint: 7BD2 8641 3318 1DC8 7FF4 5B92 8C49 99F0 BFDD 52BB.
A server runs on glibc 2.17 or newer on x86-64 (Ubuntu 18.04, CentOS 7 and later), and 2.28 or newer on arm64. An older system is refused by the package manager with a message, rather than installed and failing later.
No package manager? Ask us for the AppImage as a .tar.gz with a Run.sh — unpack it and run ./Run.sh; nothing to install and no administrator password.
Set up the server program
Three commands. None of them needs a browser on the server.
bucketpilot-drop login
bucketpilot-drop buckets
bucketpilot-drop connect <bucket>login prints an address and a code — open the address on any device where you are signed in to BucketPilot and approve the code. buckets lists the buckets you can upload to. connect starts the uploading.
connect takes a bucket's name or id and, optionally, --prefix scans/ (a folder inside the bucket) and --folder /srv/drop (the folder to watch). Without --folder the drop is ~/BucketPilot_Drop. It refuses a bucket or folder you cannot write to, and says why. It also starts the service for you (a systemd service, running as you — or as root if you ran it as root), so a file put in the folder uploads by itself; add --no-service if you would rather run bucketpilot-drop run yourself.
The server shows up under Settings → Connected devices with its status, and can be disconnected from there in one click.
What happens to files
- •A file is uploaded once it has stopped growing (a copy still in progress is not sent half-written), then removed from the server's folder after BucketPilot confirmed it. A failed upload never removes anything. Change this with
--after-upload keep(leave it, never send it twice) or--after-upload move:/some/other/folder. - •Hidden files and temporary files (
.something,~$lock,.tmp) are not sent. - •The bucket's folders appear in the drop within a couple of minutes, and a folder you create in the drop is created in the bucket.
--no-mirrorturns this off.
Changing bucket (bucketpilot-drop connect <other bucket>) empties the drop, so you see the new bucket's folders and nothing from the old one. Files are moved aside to ~/.config/bucketpilot-drop/removed/<time>/ — not deleted — and nothing in either bucket is touched. If the drop holds a file the old bucket never received, connect stops and tells you; add --yes to continue.
Settings changes take effect by themselves: a running service notices a new bucket, folder or option within seconds and restarts with it.
Logs and status
bucketpilot-drop status
tail -f /var/log/BucketPilot/drop.logstatus shows who is signed in, where files go, whether the service is running, the version and the log path. The log lists every file that uploaded and every failure with its reason.
The log rotates at 10 MB, keeping one older file. If you run the program by hand without access to /var/log/BucketPilot, the log is drop.log next to the settings (~/.config/bucketpilot-drop).
bucketpilot-drop run --once uploads what is in the folder now and exits — handy to test, or from cron.
Updating is the system's own: sudo apt update && sudo apt upgrade, or sudo dnf upgrade. The package restarts a running service on upgrade.
If something is wrong
| You see | It means | What to do |
|---|---|---|
| "Something on this network blocked the request — the reply came from cloudflare, not BucketPilot (403)" | A firewall, proxy, VPN or web filter between the machine and BucketPilot refused the request | Try from another network, or ask whoever runs the network to allow bucketpilot.io. The message ends with a reference (a Ray ID) — send it to support |
| "No permission to write there" | Your role cannot upload to that bucket or folder | Ask a workspace admin for write access, or connect to a folder you can write to |
| The device shows Offline in Connected devices | Nothing has reported for a few minutes | bucketpilot-drop status — is the service running? A one-off run --once does not mark a server offline |
| "signed out — the device session was revoked" | The connection was disconnected in Connected devices | Run bucketpilot-drop login again |
| A file stays in the drop | It is still being written, was ignored (hidden or temporary), or failed | Read the log; failed files are retried and the reason is shown |
Still stuck? Send support the last lines of the log.