almeira-web/scripts/verify_single_apply.py

61 lines
2.2 KiB
Python

import os
import shutil
import subprocess
import urllib.request
BUCKET_PATH = "/var/lib/docker/volumes/sss6crntvrcs54qbhvhy5728_appwrite-uploads/_data/app-69b84df5003bd8957c5c/media_bucket"
FILE_ID = "6a37df0e00089708650b"
TEST_FILE = f"{FILE_ID}.jpg"
target_file = os.path.join(BUCKET_PATH, TEST_FILE)
backup_file = f"{target_file}.bak"
tmp_opt = f"/tmp/{TEST_FILE}"
if not os.path.exists(tmp_opt):
print("Error: /tmp optimized file not found")
exit(1)
new_size = os.path.getsize(tmp_opt)
new_md5 = "e0a0fba38f6245a623eefc1a001852cc"
print("1. Creating backup of original...")
shutil.copy2(target_file, backup_file)
print("2. Replacing target file with optimized file...")
shutil.copy2(tmp_opt, target_file)
# Ensure proper permissions and ownership
os.chmod(target_file, 0o644)
shutil.chown(target_file, user="root", group="root")
print("3. Updating MariaDB record...")
sql = f"UPDATE _1_bucket_1 SET sizeOriginal = {new_size}, sizeActual = {new_size}, signature = '{new_md5}' WHERE _uid = '{FILE_ID}';"
cmd = [
"docker", "exec", "-i", "appwrite-mariadb-sss6crntvrcs54qbhvhy5728",
"mysql", "-u", "sYoHWwl0DGvEyt3s", "-psn9YkZqoLV06CQxAy2qsKi36S7POVShT", "appwrite",
"-e", sql
]
res = subprocess.run(cmd, capture_output=True, text=True)
if res.returncode != 0:
print("MariaDB update error:", res.stderr)
else:
print("MariaDB record updated successfully.")
print("4. Testing HTTP endpoint from Appwrite...")
url = f"https://appwrite.almeira.com.co/v1/storage/buckets/media_bucket/files/{FILE_ID}/view?project=69b84df5003bd8957c5c"
req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
try:
with urllib.request.urlopen(req) as response:
status = response.status
content_length = response.headers.get("Content-Length")
content_type = response.headers.get("Content-Type")
print(f"HTTP Status: {status}")
print(f"Content-Length: {content_length} bytes (Matches optimized size: {int(content_length) == new_size})")
print(f"Content-Type: {content_type}")
print("\nSUCCESS! Appwrite is serving the optimized file perfectly!")
except Exception as e:
print("HTTP Request failed:", e)
# Clean up backup
if os.path.exists(backup_file):
os.remove(backup_file)