إنتقل إلى المحتوى الرئيسي

Header

استضافة الملفات والتنزيلات الرقمية

يدير نظام استضافة الملفات والتنزيلات الرقمية على BDX.market توزيع الأصول الرقمية غير التسلسلية، بما في ذلك مثبتات البرامج الرقمية وتصحيحات عملاء الألعاب وحزم الجرافيك عالية الدقة والأدلة الرقمية وتعديلات الألعاب المخصصة والمستندات الإلكترونية.

لتوفير تنزيلات سريعة وموثوقة للمستخدمين في جميع أنحاء بنغلاديش مع منع الربط الساخن والتوزيع غير المصرح به، يجمع BDX.market بين تخزين الكائنات الآمن Cloudflare R2 / S3 مع روابط موقعة محدودة المدة وتحسين النطاق الترددي والتحقق بفحص الفيروسات.


1. بنية النظام والبنية التحتية​

يعتمد تسليم الملفات الرقمية على بنية تخزين معزولة تفصل خوادم تطبيقات الويب عن عمليات نقل الأصول عالية النطاق. تُخزَّن جميع أصول البائعين المرفوعة في حاويات خاصة مشفرة على تخزين الكائنات وتُقدَّم عبر عقد CDN محلية.

+------------------+ +-------------------+ +--------------------+
| Seller File Upload| ----> | Malware / Virus | ----> | Private S3 / R2 |
| (Dashboard) | | Scanner Service | | Bucket (No Public) |
+------------------+ +-------------------+ +--------------------+
|
v
+------------------+ +-------------------+ +--------------------+
| Direct Download | <---- | Short-Lived Signed| <---- | Buyer Requests File|
| From CDN Edge | | Delivery URL | | (Verified Purchase)|
+------------------+ +-------------------+ +--------------------+

أبرز النقاط التقنية​

  1. تخزين الكائنات الخاص: تُخزَّن الملفات بقوائم تحكم وصول خاصة صارمة (ACLs). لا توجد روابط مباشرة عامة؛ كل وصول يتطلب التحقق من التوقيع المشفر.
  2. تسريع CDN الطرفي: تُخزَّن طلبات التنزيل مؤقتًا وتُوجَّه عبر عقد Cloudflare الطرفية التي تخدم حركة جنوب آسيا، مما يزيد إنتاجية التنزيل على النطاق العريض المحلي واتصالات بيانات الجوال في بنغلاديش.
  3. النقل المجزأ القابل للاستئناف: يدعم طلبات HTTP Range، مما يتيح للمشترين على شبكات الجوال المتغيرة إيقاف التنزيلات متعددة الغيغابايت مؤقتًا واستئنافها دون تلف.

2. استيعاب الملفات وفحص البرمجيات الخبيثة والتحقق​

للحفاظ على أمان المنصة، تخضع جميع ملفات البائعين المرفوعة لتحقق آلي صارم قبل إتاحتها للشراء أو التنزيل.

صيغ الملفات المدعومة وحدود الحجم​

نوع الأصلالامتدادات المسموحةحد الحجمطبقة التخزين
البرامج والأدوات.exe، .msi، .zip، .7z، .tar.gz5.0 GBتخزين الكائنات القياسي R2
الأدلة والكتب الرقمية.pdf، .epub500 MBتخزين الكائنات القياسي R2
حزم الجرافيك والفن.zip، .psd، .png، .svg، .rar2.0 GBتخزين الكائنات القياسي R2
تعديلات الألعاب والإضافات.zip، .rar، .pak10.0 GBطبقة التخزين عالية السعة

بروتوكول فحص البرمجيات الخبيثة ومكافحة الفيروسات​

عندما يرفع البائع حزمة رقمية:

  1. التحقق من MIME والامتداد: يتحقق الخادم من بايتات السحر للملف لحظر التهديدات التنفيذية المقنعة (مثل .exe مقنع كـ .pdf).
  2. الفحص الآلي ClamAV / VirusTotal: تُفحَص الملفات بحثًا عن البرمجيات الخبيثة وأحصنة طروادة ومعدّني العملات والسكربتات الضارة.
  3. حالة الحجر: تبقى الأصول المرفوعة في status = 'pending_scan' حتى الحصول على التخليص الأمني. الأصول التي تفشل في الفحوص الأمنية تُحذَف تلقائيًا، ويُعلَّم حساب البائع للمراجعة.

3. بنية التخزين: digital_file_assets​

تُسجَّل بيانات الأصول الرقمية وبصمات الملفات وإحصاءات التسليم في جدول digital_file_assets.

CREATE TABLE `digital_file_assets` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`uuid` CHAR(36) NOT NULL UNIQUE,
`offer_id` BIGINT UNSIGNED NOT NULL,
`seller_id` BIGINT UNSIGNED NOT NULL,
`original_name` VARCHAR(255) NOT NULL,
`storage_path` VARCHAR(255) NOT NULL,
`mime_type` VARCHAR(255) NOT NULL,
`file_size_bytes` BIGINT UNSIGNED NOT NULL,
`sha256_checksum` CHAR(64) NOT NULL,
`scan_status` ENUM('pending', 'passed', 'failed') NOT NULL DEFAULT 'pending',
`download_count` INT UNSIGNED NOT NULL DEFAULT 0,
`created_at` TIMESTAMP NULL,
`updated_at` TIMESTAMP NULL,
FOREIGN KEY (`offer_id`) REFERENCES `seller_offers` (`id`) ON DELETE CASCADE,
FOREIGN KEY (`seller_id`) REFERENCES `users` (`id`)
);

التحقق من السلامة عبر SHA-256​

يُحسَب sha256_checksum عند اكتمال الرفع ويُعرَض على لوحة تنزيل المشتري. يمكن للمشترين التحقق من الملفات المنزلة محليًا مقابل هذا التجزئة لضمان عدم التلف أو العبث أثناء النقل.


4. الروابط الموقعة وحماية الربط الساخن وإدارة النطاق الترددي​

لمنع مشاركة الروابط والكشط غير المصرح به وسرقة النطاق الترددي، يعتمد الوصول إلى الملفات على روابط موقعة بـ HMAC قصيرة العمر تُولَّد عند الطلب.

محرك توليد الروابط الموقعة​

عندما ينقر مشترٍ مخوَّل على تنزيل الملف داخل لوحة طلبه (/orders/{order_id}):

  1. يتحقق التطبيق من حالة الطلب (status IN ('paid', 'delivered', 'completed')) وتفويض المشتري.
  2. يبني الخادم رابط Amazon S3 / Cloudflare R2 موقع مؤقتًا صالحًا لمدة 15 دقيقة بالضبط.
  3. تُصدَر الاستجابة كإعادة توجيه 302 Found مباشرة إلى رابط تنزيل CDN الطرفي.
use Illuminate\Support\Facades\Storage;

public function generateDownloadUrl(DigitalFileAsset $file, User $buyer): string
{
// Verify buyer owns active order for this file asset
$hasValidOrder = BdxOrder::where('buyer_id', $buyer->id)
->where('offer_id', $file->offer_id)
->whereIn('status', ['paid', 'delivered', 'completed'])
->exists();

if (!$hasValidOrder) {
abort(403, 'Unauthorized access to digital download.');
}

// Generate temporary 15-minute signed S3/R2 URL
return Storage::disk('r2_private')->temporaryUrl(
$file->storage_path,
now()->addMinutes(15),
[
'ResponseContentDisposition' => 'attachment; filename="' . $file->original_name . '"',
'ResponseContentType' => $file->mime_type,
]
);
}

حماية الربط الساخن وربط IP​

تتضمن الروابط الموقعة عنوان IP الخاص بالمشتري وتوقيع رمز الجلسة. إذا حاول المشتري نشر رابط موقع على منتديات عامة أو وسائل التواصل:

  • يُرفَض وصول المستخدمين الخارجيين الذين يحاولون الوصول إلى الرابط (403 Forbidden).
  • انتهاء الرابط بعد 15 دقيقة يُجبر الطلبات الثانوية على العودة عبر مصادقة BDX.

5. سجل التنزيل وإعادة التنزيل وانتهاء الوصول​

يوفر BDX.market حقوق تنزيل واضحة مع الحفاظ على حوكمة التخزين.

الوصول لإعادة التنزيل مدى الحياة​

بمجرد تأكيد الطلب، يتمتع المشترون بوصول غير محدود لإعادة تنزيل أصول الملفات المشتراة مباشرة من لوحة سجل الطلبات. حتى إذا ألغى البائع نشر عرضه لاحقًا، يحتفظ المشترون السابقون بأذونات التنزيل لنسختهم المشتراة.

الإصدارات وتحديثات أصول البائع​

إذا أصدر البائع نسخة محدثة من أداة برمجية أو كتاب رقمي (مثل من v1.0 إلى v1.2):

  • يرفع البائع مراجعة حزمة جديدة في لوحته.
  • يتلقى المشترون الحاليون إشعارًا آليًا: "يتوفر إصدار محدث من الأصل الذي اشتريته."
  • تحتفظ سجلات الإصدارات بالوصول إلى الملفات الأصلية والمحدثة معًا.