☁️ Amazon S3 Upload

Upload File to S3

S3 Configuration

query("SELECT * FROM admin.aws_accounts LIMIT 1")->fetch(PDO::FETCH_ASSOC); $assets = $pdo->query("SELECT COUNT(*) FROM admin.s3_assets")->fetchColumn(); if ($aws) { echo "

✅ AWS Account configured

"; echo "

Region: " . ($aws['region'] ?? 'eu-north-1') . "

"; } else { echo "

❌ No AWS account configured

"; } echo "

S3 Assets: $assets

"; } catch (Exception $e) { echo "

DB Error: " . $e->getMessage() . "

"; } ?>
query("SELECT * FROM admin.aws_accounts WHERE status='active' OR status='Activated' LIMIT 1")->fetch(PDO::FETCH_ASSOC); if (!$aws) { throw new Exception('No AWS account configured'); } $region = $aws['region'] ?? 'eu-north-1'; $key = $aws['access_key'] ?? $aws['ak'] ?? ''; $secret = $aws['secret_key'] ?? $aws['sk'] ?? ''; // Simple S3 upload using AWS SDK or curl // For now, save locally and log $localPath = "/opt/wevads/storage/s3_uploads/" . basename($filename); @mkdir(dirname($localPath), 0755, true); move_uploaded_file($file['tmp_name'], $localPath); // Log to DB $stmt = $pdo->prepare("INSERT INTO admin.s3_assets (filename, bucket, path, size, uploaded_at) VALUES (?, ?, ?, ?, NOW())"); $stmt->execute([basename($file['name']), $bucket, $filename, $file['size']]); echo json_encode([ 'success' => true, 'message' => 'File uploaded successfully', 'filename' => $filename, 'size' => $file['size'] ]); } catch (Exception $e) { http_response_code(500); echo json_encode([ 'success' => false, 'status' => 500, 'message' => 'Upload failed: ' . $e->getMessage(), 'data' => ['error' => $e->getMessage(), 'file' => $e->getFile(), 'line' => $e->getLine()] ]); }