Mount Neva Objects S3 with Rclone
Mount Neva Objects S3 with Rclone
Section titled “Mount Neva Objects S3 with Rclone”General-purpose S3 mount for Neva Objects using Rclone + FUSE. Works as a local filesystem bridge: any app that writes to /mnt/neva-s3 transparently uploads to your bucket.
1. Install Rclone & FUSE3
Section titled “1. Install Rclone & FUSE3”# FUSE3 (required for mount)sudo dnf install fuse3 -y
# Rclone via official install scriptsudo -v ; curl https://rclone.org/install.sh | sudo bashFor Debian/Ubuntu: replace dnf with apt.
2. Configure Rclone
Section titled “2. Configure Rclone”mkdir -p ~/.config/rclone~/.config/rclone/rclone.conf (or /root/.config/rclone/rclone.conf for systemd):
[neva-s3]type = s3provider = Otheraccess_key_id = YOUR_ACCESS_KEYsecret_access_key = YOUR_SECRET_KEYendpoint = https://s3.nevaobjects.idforce_path_style = truev2_auth = true
v2_auth = trueis mandatory. Neva Objects routes through a reverse proxy/gateway, and without v2 signing the signature hash breaks, causing 403 errors.
3. Create Mount Point
Section titled “3. Create Mount Point”sudo mkdir -p /mnt/neva-s34. Systemd Service (Auto-Mount on Boot)
Section titled “4. Systemd Service (Auto-Mount on Boot)”/etc/systemd/system/rclone-neva-s3.service:
[Unit]Description=Rclone Mount: Neva Objects S3After=network-online.target
[Service]Type=simpleExecStartPre=/bin/mkdir -p /mnt/neva-s3ExecStart=/usr/bin/rclone mount neva-s3:YOUR-BUCKET-NAME /mnt/neva-s3 \ --config /root/.config/rclone/rclone.conf \ --allow-other \ --vfs-cache-mode full \ --vfs-cache-max-size 10GExecStop=/usr/bin/fusermount3 -uz /mnt/neva-s3Restart=on-failureRestartSec=10
[Install]WantedBy=multi-user.target
--vfs-cache-mode fullbuffers writes on local disk/memory before uploading. This is what makes apps that need POSIX locking (Borg, SQLite, any tool creating.lockfiles) work: the lock file lives in cache, not on S3 directly.
--vfs-cache-max-size 10Gtunes the cache ceiling to your available disk space. The cache dir defaults to~/.cache/rclone.
5. Enable & Start
Section titled “5. Enable & Start”sudo systemctl daemon-reloadsudo systemctl enable --now rclone-neva-s3.servicesudo systemctl status rclone-neva-s3.service # should show "active (running)"6. Verify
Section titled “6. Verify”ls /mnt/neva-s3echo "hello neva" | sudo tee /mnt/neva-s3/test.txtcat /mnt/neva-s3/test.txtIf ls shows your bucket contents and the test file writes successfully, you’re done. Any application can now read/write /mnt/neva-s3 as if it were a local directory: Rclone handles the upload/download in the background.
Quick Troubleshooting
Section titled “Quick Troubleshooting”| Symptom | Fix |
|---|---|
| 403 Forbidden on mount | Verify v2_auth = true is set in rclone.conf |
| ”Transport endpoint not connected” | sudo fusermount3 -uz /mnt/neva-s3 then restart the service |
| Mount works but writes are slow | Increase --vfs-cache-max-size or use --vfs-write-back 5m for batching |
| Permission denied for non-root | --allow-other is set; also check /etc/fuse.conf has user_allow_other uncommented |
Manual Mount (One-Off, No Systemd)
Section titled “Manual Mount (One-Off, No Systemd)”rclone mount neva-s3:YOUR-BUCKET-NAME /mnt/neva-s3 \ --vfs-cache-mode full \ --daemonThe --daemon flag backgrounds it. Use fusermount3 -u /mnt/neva-s3 to unmount.