Prusa Mini: programmatically upload files via curl bash script
http api ethernet 3d printing prusa mini+
Thanks to the recent v4.4.1 BuddyBoard firmware the http file api works as desired: you can easily upload files to a usb stick attached to the printer. To perform bulk updates of your printer farm it’s much easier to write a simple bash script which deploys the print jobs:
#!/usr/bin/env bash set -e # printer settings PRINTER_HOST="192.168.1.123" API_KEY="ToEn8eDlR7kWIiUpVPJg" FILENAME=myfile.gcode # capture command stdout - http status code will be written to stdout # progress bar on stderr # http response (json) stored in /tmp/.upload-response CURL_HTTP_STATUS=$(curl \ --header "X-Api-Key: ${API_KEY}" \ -F "file=@${FILENAME}" \ -F "path=" \ -X POST \ -o /tmp/.upload-response \ --write-out "%{http_code}" \ http://${PRINTER_HOST}/api/files/local ) # get result CURL_EXITCODE=$? CURL_RESPONSE=$(cat /tmp/.upload-response) # success ? if [ ${CURL_EXITCODE} -ne 0 ] || [ "${CURL_HTTP_STATUS}" -ne "201" ]; then echo "error: upload failed (${CURL_HTTP_STATUS})" else echo "upload succeed" fi