This project provides an rclone backend for accessing files from Stud.IP instances.
This backend can be used in two ways:
- as a standalone rclone-compatible binary (recommended)
or
- as an rclone plugin loaded by an existing rclone installation
paru rclone-studip-git Download the binary for your platform from the releases page.
It is recommended to move the binary somewhere in your PATH.
Then continue with the configuration.
To use the plugin artifact with an existing rclone binary:
cp build/librcloneplugin_backend_studip.so "$RCLONE_PLUGIN_PATH/"Then continue with the configuration.
Notes:
- Linux and MacOS only.
- All plugins in
$RCLONE_PLUGIN_PATHare loaded. - If
RCLONE_PLUGIN_PATHis not set, plugin support is disabled. - Plugin and rclone must be built from compatible source versions.
Create a remote with rclone config, then choose storage type Stud.IP.
Backend options:
base_url: Base URL of the Stud.IP JSON API v1 endpoint.
Example:https://elearning.uni-bremen.de/jsonapi.php/v1/username: Stud.IP login username.password: Stud.IP login password (stored obscured by rclone config).course_id: Stud.IP course ID. Example:59e88658b39093836455413bd1f24f29license: License ID applied to uploaded files. Default:UNDEF_LICENSE.
Supported license values:
FREE_LICENSESELFMADE_NONPUBNON_TEXTUALTEXT_NO_LICENSEWITH_LICENSEUNDEF_LICENSE
Important:
- If
UNDEF_LICENSEis used, uploaded files are not readable until a valid license is chosen.
# List directories / files at remote root
rclone lsd studip-bremen-ma1:
rclone ls studip-bremen-ma1:
rclone lsf studip-bremen-ma1:
# Create a directory in the configured course
rclone mkdir studip-bremen-ma1:uploads
# Upload a directory recursively
rclone copy ./localdir studip-bremen-ma1:uploads/localdir
# Upload a single file to an exact destination path
rclone copyto ./report.pdf studip-bremen-ma1:uploads/report.pdf
# Stream text into a remote file
printf "hello from rclone\n" | rclone rcat studip-bremen-ma1:uploads/hello.txt
# Download files back to local disk
rclone copy studip-bremen-ma1:uploads ./downloads/uploads
# Show file content
rclone cat studip-bremen-ma1:uploads/hello.txt
# Remove files / empty directories
rclone deletefile studip-bremen-ma1:uploads/hello.txt
rclone rmdir studip-bremen-ma1:uploads/empty-dir
rclone mount studip-bremen-ma1: ./mount- Install Mage (one-time):
go install github.com/magefile/mage@latest- Build plugin and standalone binaries:
mageBuild output:
build/rclone-studip-darwin-amd64build/rclone-studip-darwin-arm64build/rclone-studip-linux-amd64build/rclone-studip-linux-arm64build/rclone-studip-windows-amd64.exebuild/rclone-studip-windows-arm64.exebuild/librcloneplugin_backend_studip.so