ما هو التخزين الكائني المتوافق مع S3؟
يحفظ التخزين الكائني ملفاتك ككائنات (objects) منفصلة داخل حاويات مسطّحة تُسمى سِلال (buckets)، بدلاً من نموذج المجلدات والكتل المستخدم في الأقراص التقليدية. يحمل كل كائن بياناته، ومفتاحاً فريداً (اسمه)، وبيانات وصفية (metadata). وتصل إليه عبر HTTP باستخدام واجهة برمجة Amazon S3 — وهي المعيار الفعلي الذي تتحدثه آلاف الأدوات وحزم التطوير وبرامج النسخ الاحتياطي.
ولأن التخزين الكائني في Skyline Cloud متوافق مع S3، فإن كل ما يعمل مع Amazon S3 — مثل AWS CLI وs3cmd وrclone وعميل MinIO وحزم تطوير Laravel/Django/Node و Veeam أو إضافة الوسائط في نظام إدارة المحتوى لديك — يعمل هنا أيضاً. الفرق هو في المكان الفعلي الذي تعيش فيه بياناتك: داخل المملكة، ما يبقيك متوافقاً مع متطلبات إقامة البيانات وفق نظام حماية البيانات الشخصية (PDPL) ويمنحك دعماً ناطقاً بالعربية في منطقتك الزمنية.
متى تستخدم التخزين الكائني (ومتى لا تستخدمه)
| استخدم التخزين الكائني لـ | استخدم تخزين الكتل/القرص لـ |
|---|---|
| النسخ الاحتياطية والأرشيف واللقطات | قواعد البيانات التي تحتاج قراءة/كتابة عشوائية منخفضة الكمون |
| الأصول الثابتة: الصور والفيديو وملفات PDF | أنظمة التشغيل / أقراص الإقلاع |
| ملفات المستخدمين المرفوعة في تطبيقات الويب والجوال | التطبيقات التي تحتاج نظام ملفات POSIX أو mmap |
| بحيرات البيانات والسجلات والبيانات غير المهيكلة الضخمة | البرامج التي تتوقع قرصاً مركّباً (mounted) |
يتوسّع التخزين الكائني إلى مليارات الكائنات، وهو متين ومنخفض التكلفة لكل جيجابايت، ويُوصَل إليه عبر رابط URL — لكنه ليس نظام ملفات. لا يمكنك الدخول إليه بأمر cd ولا تشغيل قاعدة بيانات عليه.
الخطوة 1: إنشاء سلة (Bucket)
بعد التسجيل في Skyline Cloud، افتح قسم التخزين الكائني (Object Storage) في لوحة التحكم وأنشئ سلة.
بعض القواعد المهمة منذ البداية:
- أسماء السلال فريدة عالمياً ضمن نقطة النهاية ويجب أن تكون صالحة لـ DNS: أحرف صغيرة وأرقام وشرطات؛ من 3 إلى 63 حرفاً؛ بدون شرطات سفلية أو أحرف كبيرة. مثال:
acme-app-uploads. - اختر الوصول خاص (Private) افتراضياً. اجعل الكائنات عامة فقط عندما تنوي تقديمها مباشرة على الويب (مثل سلة صور عامة خلف شبكة توصيل محتوى CDN).
- دوّن رابط نقطة النهاية (endpoint) والمنطقة (region) من تفاصيل السلة — ستحتاج كليهما لسطر الأوامر.
الخطوة 2: توليد مفاتيح الوصول
تتم مصادقة S3 عبر زوج مفاتيح، وليس اسم مستخدم وكلمة مرور:
- معرّف مفتاح الوصول (Access Key ID) — معرّف شبه عام.
- مفتاح الوصول السري (Secret Access Key) — يُعرض مرة واحدة. انسخه فوراً واحفظه في مدير كلمات مرور أو خزنة أسرار.
ولّد الزوج من قسم مفاتيح الوصول (Access Keys) في لوحة التحكم. اتبع مبدأ أقل صلاحية: أنشئ مفاتيح منفصلة لكل تطبيق أو بيئة (تجريبية مقابل إنتاج) كي تتمكن من إبطال أحدها دون تعطيل الباقي. لا تضع المفاتيح أبداً في Git ولا تلصقها في شيفرة تعمل على جهة العميل.
الخطوة 3: إعداد AWS CLI
تُعد أداة AWS CLI أسرع طريقة للتحقق من أن كل شيء يعمل. ثبّتها، ثم أنشئ ملف تعريف (profile) مُسمّى كي لا يتعارض مع أي إعداد فعلي لـ AWS:
# التثبيت (Linux/macOS)
pip install awscli # أو: brew install awscli
aws configure --profile skyline
# AWS Access Key ID [None]: <YOUR_ACCESS_KEY_ID>
# AWS Secret Access Key [None]: <YOUR_SECRET_ACCESS_KEY>
# Default region name [None]: <YOUR_REGION>
# Default output format [None]: json
عندها يستهدف كل أمر نقطة نهاية Skyline عبر --endpoint-url وملف التعريف:
# عرض سِلالك
aws s3 ls --profile skyline \
--endpoint-url https://<YOUR_ENDPOINT>
# عرض الكائنات داخل سلة واحدة
aws s3 ls s3://acme-app-uploads --profile skyline \
--endpoint-url https://<YOUR_ENDPOINT>
نصيحة: صدّر
AWS_PROFILE=skylineواضبط نقطة النهاية في الصدفة (shell) لتتمكن من حذف الرايات. استبدل<YOUR_ENDPOINT>و<YOUR_REGION>بالقيم الموجودة في تفاصيل سلتك.
الخطوة 4: الرفع والتنزيل والمزامنة
EP="--endpoint-url https://<YOUR_ENDPOINT> --profile skyline"
# رفع ملف واحد
aws s3 cp ./logo.png s3://acme-app-uploads/logo.png $EP
# تنزيله مجدداً
aws s3 cp s3://acme-app-uploads/logo.png ./logo-copy.png $EP
# مزامنة مجلد محلي كامل إلى بادئة (prefix) داخل السلة
aws s3 sync ./public/assets s3://acme-app-uploads/assets $EP
# حذف كائن
aws s3 rm s3://acme-app-uploads/old.zip $EP
ينقل الأمر aws s3 sync الملفات المتغيّرة فقط، ما يجعله مثالياً للنسخ الاحتياطي التزايدي وخطوط النشر (deploy).
تفضّل s3cmd؟
s3cmd --configure # اضبط host_base / host_bucket على <YOUR_ENDPOINT>
s3cmd put ./report.pdf s3://acme-app-uploads/report.pdf
s3cmd ls s3://acme-app-uploads
الخطوة 5: مشاركة ملف عبر رابط موقّع مسبقاً (Presigned URL)
لمنح وصول مؤقت ومحدود بزمن إلى كائن خاص — دون جعل السلة بأكملها عامة — ولّد رابطاً موقّعاً مسبقاً:
aws s3 presign s3://acme-app-uploads/report.pdf \
--expires-in 3600 \
--endpoint-url https://<YOUR_ENDPOINT> --profile skyline
يعمل الرابط لمدة ساعة واحدة ثم ينتهي. هذا هو النمط الصحيح لروابط تنزيل الفواتير، وروابط التسليم لمرة واحدة، والوسائط الخاصة بمستخدم محدد — وهو أكثر أماناً بكثير من تحويل السلة إلى عامة.
الخطوة 6: ربطه بتطبيقك
وجّه حزمة تطوير S3 في تطبيقك إلى نقطة نهاية Skyline بدلاً من AWS. في Laravel مثلاً، اضبط قرص s3 في config/filesystems.php:
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'endpoint' => env('AWS_ENDPOINT'), // https://<YOUR_ENDPOINT>
'use_path_style_endpoint' => true,
],
اضبط use_path_style_endpoint (أو ما يعادله forcePathStyle في حزمة AWS SDK للـ JavaScript) على true كي تستخدم الطلبات الصيغة endpoint/bucket/key بدلاً من النطاقات الفرعية الافتراضية (virtual-hosted). بعد ذلك، يكتب Storage::disk('s3')->put(...) مباشرة إلى سلتك داخل المملكة.
ممارسات جيدة
- قواعد دورة الحياة (Lifecycle) — انتهاء صلاحية تلقائي أو تخفيض فئة الكائنات القديمة (السجلات، الملفات المؤقتة) للتحكم بالتكلفة.
- الإصدارات (Versioning) — أبقها مفعّلة للسلال التي تحتوي بيانات لا يمكن تعويضها كي تكون الكتابة فوقها بالخطأ قابلة للاسترجاع.
- التشفير من جهة الخادم — شفّر البيانات المُخزّنة لأي محتوى حساس بموجب PDPL.
- مفاتيح محدودة النطاق — مفتاح واحد لكل خدمة؛ مع تدويرها وإبطالها بانتظام.
يتكامل التخزين الكائني طبيعياً مع بقية بنيتك التقنية: قدّم الأصول من سلة بينما يعمل موقعك على استضافة Skyline السحابية، واحتفظ بنسخ احتياطية من بريدك الأعمالي وقواعد بياناتك في سلة منفصلة مفعّلة الإصدارات. ولأدلة أعمق حول التخزين الكائني داخل المملكة، راجع مركز موارد التخزين الكائني.
ابدأ خلال دقائق
أنشئ سلة متوافقة مع S3 مع بقاء بياناتك داخل المملكة العربية السعودية، وتسعير شفاف، ودعم محلي بالعربية. أنشئ حسابك المجاني في Skyline Cloud وابدأ سلتك الأولى اليوم.
Comments
0 total · 0 threads