Uploading multiple files and checksums via http can be achieved with cURL and a few lines bash scripting. This might replace scp in most cases.
# array of files (and checksums) provided as cURL options
UPLOAD_FILES=()
# get all files within myUploadDir dir and calculate checksums
while read -r FILE
do
# get sha256 checksum
CHECKSUM=$(sha256sum ${FILE} | awk '{print $1}' )
echo $FILE
echo $CHECKSUM
# extract filename
FILENAME=$(basename ${FILE})
# append file and checksum to curl upload args
UPLOAD_FILES+=("-F" "file=@${FILE}")
UPLOAD_FILES+=("-F" "${FILENAME}=${CHECKSUM}")
# get all files within myUploadDir
done <<<$(find myUploadDir/* -type f | sort)
# upload
curl \
-X PUT -H "Content-Type: multipart/form-data" \
"${UPLOAD_FILES[@]}" \
https://httpbin.org/put