File size: 1,228 Bytes
cada408 2eac4ba cada408 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | import os
import requests
from typing import Optional
class ExternalFileUploader:
def __init__(self):
self.base_url = os.getenv("FILE_UPLOAD_API_URL")
self.api_key = os.getenv("FILE_UPLOAD_API_KEY")
def upload_file(self, file_bytes: bytes, file_name: str) -> Optional[str]:
try:
files = {
"files": (file_name, file_bytes, "image/png")
}
headers = {
"X-API-Key": self.api_key
}
response = requests.post(
f"{self.base_url}/api/v1/files/bulk-upload",
headers=headers,
files=files,
timeout=30
)
if response.status_code != 201:
print("Upload failed:", response.text)
return None
data = response.json()
# Expecting array response
if not isinstance(data, list) or not data:
return None
first = data[0]
if not first.get("success"):
return None
return first["data"]["file_url"]
except Exception as e:
print("Uploader error:", str(e))
return None |