#!/bin/sh inotifywait -m /out -e close_write | while read PATH ACTION FILE; do if [[ "${FILE}" == *.mp4 ]] then echo "Following PATH is selected: $PATH" echo "Uploading following FILE: $FILE" file_path="${PATH}${FILE}" chunk_size="$CHUNK_SIZE" id="${FILE%.mp4}" # Überprüfen, ob die Datei existiert if [ ! -f "$file_path" ]; then echo "Fehler: Datei $file_path existiert nicht." exit 1 fi # Dateigröße ermitteln file_size=$(/bin/stat -c%s "$file_path") num_chunks=$(( (file_size + chunk_size - 1) / chunk_size )) # Datei in Chunks hochladen i=0 while [ $i -lt $num_chunks ] do # Temporäre Datei für den Chunk temp_chunk_file="/tmp/chunk_$i" # Chunk erstellen /bin/dd if="$file_path" bs=$chunk_size skip=$i count=1 of="$temp_chunk_file" 2>/dev/null # Überprüfen, ob der Chunk erfolgreich erstellt wurde if [ -f "$temp_chunk_file" ] then # Chunk hochladen /usr/bin/curl --no-progress-meter \ --location "$UPLOAD_URL" \ --header "Authorization: Bearer $AUTH_TOKEN" \ --form "recording_id=${id}" \ --form "chunk_index=${i}" \ --form "total_chunks=${num_chunks}" \ --form "file=@$temp_chunk_file" # Temporäre Datei löschen /bin/rm "$temp_chunk_file" else echo "Fehler beim Erstellen des Chunks $i" fi # Inkrementieren des Chunk-Zählers i=$(( i + 1 )) done fi done