Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Usage:
- # ./upload.sh <file_or_url>
- # Example (local file):
- # ./upload.sh ./myfile.zip
- # Example (remote URL):
- # ./upload.sh https://example.com/file.zip
- if [ $# -lt 1 ]; then
- echo "Usage: $0 <file_or_url>"
- exit 1
- fi
- INPUT="$1"
- API_KEY="YOUR_API_KEY" # replace with your actual API key
- # Step 1: Get upload info
- echo "Getting upload info..."
- upload_info=$(curl -s -X POST "https://www.mirrored.to/api/v1/get_upload_info" \
- -d "api_key=$API_KEY")
- echo "Raw upload_info: $upload_info"
- upload_id=$(echo "$upload_info" | jq -r '.message.upload_id // empty')
- file_upload_url=$(echo "$upload_info" | jq -r '.message.file_upload_url // empty')
- remote_upload_url=$(echo "$upload_info" | jq -r '.message.remote_upload_url // empty')
- default_mirrors=$(echo "$upload_info" | jq -r '.message.default_mirrors | map(.[0]) | join(",") // empty')
- if [ -z "$upload_id" ]; then
- echo "Failed to get upload info."
- exit 1
- fi
- echo "Upload ID: $upload_id"
- echo "Default mirrors: $default_mirrors"
- # Step 2: Decide local vs remote
- if [[ "$INPUT" =~ ^https?:// ]]; then
- echo "Detected remote URL upload..."
- response=$(curl -s -X POST "$remote_upload_url" \
- -d "api_key=$API_KEY" \
- -d "upload_id=$upload_id" \
- -d "remote_url=$INPUT")
- else
- echo "Detected local file upload..."
- if [ ! -f "$INPUT" ]; then
- echo "Error: File '$INPUT' not found!"
- exit 1
- fi
- response=$(curl -s -X POST "$file_upload_url" \
- -F "api_key=$API_KEY" \
- -F "upload_id=$upload_id" \
- -F "Filedata=@$INPUT")
- fi
- echo "Upload response: $response"
- # Step 3: Finish upload
- echo "Finishing upload..."
- finish_response=$(curl -s -X POST "https://www.mirrored.to/api/v1/finish_upload" \
- -d "api_key=$API_KEY" \
- -d "upload_id=$upload_id" \
- -d "mirrors=$default_mirrors")
- echo "Finish response: $finish_response"
- # Extract final URLs
- file_id=$(echo "$finish_response" | jq -r '.file_id // empty')
- full_url=$(echo "$finish_response" | jq -r '.full_url // empty')
- short_url=$(echo "$finish_response" | jq -r '.short_url // empty')
- if [ -n "$full_url" ]; then
- echo "File uploaded successfully!"
- echo "File ID: $file_id"
- echo "Full URL: $full_url"
- echo "Short URL: $short_url"
- else
- echo "Upload failed or no URL returned."
- fi
Add Comment
Please, Sign In to add comment