Add comprehensive configuration and testing for HMAC File Server 3.2
- Introduced configuration files for Docker, Podman, and SystemD deployments. - Implemented a comprehensive test suite for HMAC validation, file uploads, and network resilience. - Added debugging scripts for live monitoring of upload issues and service status. - Created minimal configuration for testing purposes. - Developed multiple test scripts to validate HMAC calculations and response handling. - Enhanced upload tests to cover various scenarios including invalid HMAC and unsupported file extensions. - Improved logging and error analysis capabilities for better diagnostics.
This commit is contained in:
55
tests/test-response-body.sh
Executable file
55
tests/test-response-body.sh
Executable file
@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
# Test with full response body capture
|
||||
|
||||
BASE_PATH="c184288b79f8b7a6f7d87ac7f1fb1ce6dcf49a80"
|
||||
SUB_PATH="responsebody"
|
||||
FILENAME="test.mp4"
|
||||
FULL_PATH="$BASE_PATH/$SUB_PATH/$FILENAME"
|
||||
SECRET="f6g4ldPvQM7O2UTFeBEUUj33VrXypDAcsDt0yqKrLiOr5oQW"
|
||||
|
||||
TEST_FILE="/tmp/test_response.mp4"
|
||||
echo -n "Response body test" > "$TEST_FILE"
|
||||
FILE_SIZE=$(stat -c%s "$TEST_FILE")
|
||||
|
||||
HMAC_MESSAGE="$FULL_PATH $FILE_SIZE"
|
||||
HMAC_CALC=$(printf "%s" "$HMAC_MESSAGE" | openssl dgst -sha256 -hmac "$SECRET" | cut -d' ' -f2)
|
||||
|
||||
echo "=== Testing with Full Response Capture ==="
|
||||
echo "Path: $FULL_PATH"
|
||||
echo "HMAC: $HMAC_CALC"
|
||||
echo ""
|
||||
|
||||
# Capture full response including body
|
||||
RESPONSE=$(curl -X PUT \
|
||||
-H "Content-Type: video/mp4" \
|
||||
-H "User-Agent: TestResponseBody/1.0" \
|
||||
--data-binary "@$TEST_FILE" \
|
||||
"https://share.uuxo.net/$FULL_PATH?v=$HMAC_CALC" \
|
||||
-s \
|
||||
-w "CURL_STATUS:%{http_code}\nCURL_SIZE:%{size_upload}\n" \
|
||||
2>&1)
|
||||
|
||||
echo "=== Full Response ==="
|
||||
echo "$RESPONSE"
|
||||
echo ""
|
||||
|
||||
# Extract just the response body (everything before CURL_STATUS)
|
||||
RESPONSE_BODY=$(echo "$RESPONSE" | sed '/CURL_STATUS:/,$d')
|
||||
echo "=== Response Body Only ==="
|
||||
echo "'$RESPONSE_BODY'"
|
||||
echo ""
|
||||
|
||||
# Check response length
|
||||
RESPONSE_LENGTH=${#RESPONSE_BODY}
|
||||
echo "Response body length: $RESPONSE_LENGTH characters"
|
||||
|
||||
if [ $RESPONSE_LENGTH -eq 32 ]; then
|
||||
echo "✅ Response is exactly 32 characters (matches Nginx logs)"
|
||||
elif [ $RESPONSE_LENGTH -eq 0 ]; then
|
||||
echo "⚠️ Empty response body"
|
||||
else
|
||||
echo "ℹ️ Different response length than expected"
|
||||
fi
|
||||
|
||||
# Clean up
|
||||
rm -f "$TEST_FILE"
|
Reference in New Issue
Block a user