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

# get all files within myUploadDir dir and calculate checksums
while read -r FILE
    # 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}") 

# get all files within myUploadDir
done <<<$(find myUploadDir/* -type f | sort)

# upload
curl \
     -X PUT -H "Content-Type: multipart/form-data" \
     "${UPLOAD_FILES[@]}" \