ApoAlly Insights Configuratie#
Debian/Ubuntu#
Bash Upload-Script
apoally-insights-upload.sh
#!/bin/bash
# upload_csv.sh
#
# Dit script zoekt nu automatisch naar een optioneel schema-bestand (.json of .csvs)
# met dezelfde basisnaam als het CSV/TSV-bestand. JSON heeft prioriteit boven CSVS als beide bestaan.
# Als er geen schema-bestand wordt gevonden, wordt alleen het CSV/TSV-bestand geüpload. Als een map wordt opgegeven,
# verwerkt het script alle .csv- en .tsv-bestanden erin (recursief), elk met zijn optionele schema-bestand.
#
# Gebruik:
# ./upload_csv.sh <pad_naar_csv_of_tsv_bestand_of_map>
#
# Omgevingsvariabelen:
# API_URL - De URL van het CSV-upload eindpunt (standaard: https://api.apoally.de/insights/upload)
# API_KEY - De API-sleutel gebruikt voor authenticatie (standaard: YOUR-API-KEY)
API_URL="https://api.apoally.de/insights/upload"
API_KEY="YOUR-API-KEY"
# Controleer of exact één argument is opgegeven
if [ "$#" -ne 1 ]; then
echo "Gebruik: $0 <pad_naar_csv_of_tsv_bestand_of_map>"
exit 1
fi
TARGET="$1"
function upload_single_file() {
local file_path="$1"
local base="${file_path%.*}"
# Detecteer optioneel schema-bestand met dezelfde basisnaam
local schema_file=""
if [ -f "${base}.json" ]; then
schema_file="${base}.json"
elif [ -f "${base}.csvs" ]; then
schema_file="${base}.csvs"
fi
echo "Bestand uploaden: $file_path"
if [ -n "$schema_file" ]; then
echo "Optioneel schema-bestand gevonden: $schema_file"
curl -X POST \
-H "X-API-Key: $API_KEY" \
-F "files=@${file_path}" \
-F "files=@${schema_file}" \
"$API_URL"
else
# Geen schema-bestand, upload alleen het CSV/TSV
curl -X POST \
-H "X-API-Key: $API_KEY" \
-F "files=@${file_path}" \
"$API_URL"
fi
echo
}
# Als TARGET een bestand is, upload het en het optionele schema
if [ -f "$TARGET" ]; then
# Haal de extensie op en sta zowel .csv als .tsv toe
extension="${TARGET##*.}"
if [ "$extension" != "csv" ] && [ "$extension" != "tsv" ]; then
echo "Fout: '$TARGET' is geen .csv- of .tsv-bestand."
exit 1
fi
upload_single_file "$TARGET"
# Als TARGET een map is, verwerk alle .csv- en .tsv-bestanden erin recursief
elif [ -d "$TARGET" ]; then
echo "Map verwerken: $TARGET"
while IFS= read -r -d '' file; do
upload_single_file "$file"
done < <(find "$TARGET" -type f \( -iname '*.csv' -o -iname '*.tsv' \) -print0)
else
echo "Fout: '$TARGET' is geen geldig bestand of map"
exit 1
fi
Installatie- en Configuratiehandleiding#
- Script aanmaken en opslaan
Sla het Bash-scriptapoally-insights-upload.shop in een gewenste map, bijvoorbeeld/usr/local/bin/.
- Uitvoerbaar maken
Zorg ervoor dat het script uitvoerbaar is:
- API-sleutel configureren
Open het script en vervangYOUR-API-KEYdoor uw daadwerkelijke API-sleutel.
Wijzig de regel:
Sla het bestand op en sluit het.
- Cronjob instellen
Om het script regelmatig uit te voeren (niet vaker dan elke 15 minuten), maakt u een Cronjob aan:
Voeg de volgende regel toe om het script elke 15 minuten uit te voeren:
*/15 * * * * /usr/local/bin/apoally-insights-upload.sh /path/to/your/csv_or_tsv_files >> /var/log/apoally-upload.log 2>&1
Vervang /path/to/your/csv_or_tsv_files door het pad naar uw bestand of map.
- Logbestand controleren
De uitvoer van het script wordt opgeslagen in/var/log/apoally-upload.log. Controleer het logbestand regelmatig om ervoor te zorgen dat het script correct werkt:
- Testuitvoering
Voer het script handmatig uit om te controleren of alles correct is ingesteld:
Controleer de uitvoer en het logbestand op fouten.
Opmerking#
- Zorg ervoor dat uw systeem over een stabiele internetverbinding beschikt om de gegevens succesvol te kunnen uploaden.
- Controleer regelmatig de Cronjob-uitvoering en de logbestanden om ervoor te zorgen dat er geen problemen optreden.