From 7a82afaf4c2bbf3ceb02394f055be17f95fc7eec Mon Sep 17 00:00:00 2001
From: Your Name <j@842.be>
Date: Thu, 29 May 2025 23:26:50 +1200
Subject: [PATCH] :-'Generic Commit'

---
 sos/sos | 39 +++++++++++++++++++++++++++++++++------
 1 file changed, 33 insertions(+), 6 deletions(-)

diff --git a/sos/sos b/sos/sos
index 635a738..ef74922 100755
--- a/sos/sos
+++ b/sos/sos
@@ -27,6 +27,7 @@ EOF
 }
 
 function die() {
+    echo "FATAL:"
     echo "$@"
     exit 1
 }
@@ -50,14 +51,40 @@ function upload() {
     fi
 
     # upload the file
-    echo "Uploading $file to $server - $label..."
+    TARGET_URL="https://$server/upload"
+    echo "Uploading $file to $TARGET_URL"
+
+    METADATA_JSON=$(cat<<EOF
+{
+  "labeltags": ["$label"],
+  "description": "Uploaded by sos"
+}
+EOF
+)
+
+    echo "Metadata:"
+    echo "$METADATA_JSON | jq"
+
+    TOKENPATH="$HOME/.config/sos/write_token.txt"
+    if [ ! -f "$TOKENPATH" ]; then
+        die "Token file not found: $TOKENPATH. Please create it and put your write token in it."
+    fi
+    WRITE_TOKEN=$(cat "$TOKENPATH")
 
-    METADATA="{\"labeltags\":[\"$label\"],\"description\":\"Uploaded by sos\"}"
-    
     HASH=""
-    JSON=$(curl -s -X POST -F "file=@$file" -F "metadata=$METADATA" "https://$server/$label") || die "Failed to upload $file to $server - $label"
-    HASH=$(echo "$JSON" | jq -r '.hash')
-    JSON2=$(curl -s "https://$server/meta/$HASH") || die "Failed to get meta for $HASH"
+
+    UPLOAD_RESPONSE=$(curl -X PUT \
+    -H "Authorization: Bearer ${WRITE_TOKEN}" \
+    -F "file=@${file}" \
+    -F "metadata=${METADATA_JSON}" \
+    "$TARGET_URL" \
+    ) || die "Failed to upload $file to $TARGET_URL"
+
+    echo "Repsonse:"
+    echo "$UPLOAD_RESPONSE"
+
+    HASH=$(echo "$UPLOAD_RESPONSE" | jq -r '.hash')
+    JSON2=$(eval "curl -s \"https://$server/meta/$HASH\"") || die "Failed to get meta for $HASH"
     FILENAME=$(echo "$JSON2" | jq -r '.filename')
 
     echo "Download URL: https://$server/$label > $FILENAME"