الحاويات والكائنات والمناطق
أنشئوا حاويات S3، وحمّلوا الكائنات، وتعرّفوا إلى تسمية المفاتيح، واكتشفوا كيفية تكرار S3 للبيانات داخل المنطقة.
الحاويات والكائنات والمناطق درس مجاني في Cloud & IT Cert Prep على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cloud & IT Cert Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.
ما هو Amazon S3؟
تُعد Amazon Simple Storage Service (S3) خدمة تخزين الكائنات من AWS، وهي مصممة لتخزين واسترداد أي مقدار من البيانات من أي مكان على الإنترنت. يوفر S3 11 تسعات من المتانة (99.999999999%) عبر تخزين الكائنات بشكل متكرر على أجهزة متعددة في مناطق توافر متعددة ضمن المنطقة المحددة. وهو قابل للتوسع بلا حدود، ولا يفرض حداً للسعة، ويدعم كائنات تتراوح من 0 بايت إلى 5 TB. يشكل S3 العمود الفقري لعدد لا يحصى من معماريات AWS—إذ يستضيف مواقع الويب الثابتة وبحيرات البيانات ومستودعات النسخ الاحتياطي وغير ذلك.
حاويات S3: الحاوية ذات المستوى الأعلى
تُعد حاوية S3 حاوية مُسمّاة بشكل فريد عالمياً للكائنات. تُنشأ الحاويات في منطقة AWS محددة، ولكن يجب أن تكون أسماؤها فريدة عالمياً عبر جميع حسابات AWS حول العالم (لأن الاسم يصبح جزءاً من URL). يجب أن يتراوح اسم الحاوية بين 3 و63 حرفاً، وأن يكون بأحرف صغيرة، وأن يبدأ بحرف أو رقم، وألا يحتوي على شرطات سفلية أو أحرف كبيرة. أفضل ممارسة: أدرج معرّف حسابك أو لاحقة عشوائية لتجنب تعارض الأسماء مع الحسابات الأخرى.
# Create an S3 bucket in a specific region
aws s3api create-bucket \
--bucket my-company-data-20240101 \
--region us-west-2 \
--create-bucket-configuration LocationConstraint=us-west-2كائنات ومفاتيح S3
يتكون الكائن في S3 من البيانات (محتوى الملف)، ومفتاح (الاسم الفريد للكائن داخل الحاوية)، وبيانات وصفية (أزواج مفتاح-قيمة يحددها النظام أو المستخدم)، ومعرّف إصدار اختيارياً (إذا كان تعيين الإصدار مفعلاً). المفتاح هو السلسلة الكاملة المشابهة للمسار، مثل photos/2024/summer/beach.jpg. بنية S3 مسطحة—فلا توجد أدلة حقيقية، بل بادئات مفاتيح تبدو كالأدلة فقط. الحد الأقصى لحجم الكائن هو 5 TB؛ وللكائنات التي يزيد حجمها على 100 MB، استخدم Multipart Upload لتحسين الأداء والموثوقية.
# Upload an object
aws s3 cp ./report.pdf s3://my-company-data-20240101/reports/2024/report.pdf
# List objects with a specific prefix
aws s3 ls s3://my-company-data-20240101/reports/2024/تنسيقات URL في S3
يمكن الوصول إلى كائنات S3 عبر تنسيقي URL. نمط المسار: https://s3.<region>.amazonaws.com/<bucket>/<key> (يجري إيقافه تدريجياً للحاويات الجديدة). نمط الاستضافة الافتراضية: https://<bucket>.s3.<region>.amazonaws.com/<key> (المعيار الحالي). يصبح اسم الحاوية نطاقاً فرعياً، ولهذا يجب أن تتوافق أسماء الحاويات مع DNS. بالنسبة إلى عناوين URL الموقعة مسبقاً وتوزيعات CloudFront، سترى دائماً تنسيق الاستضافة الافتراضية. يساعدك فهم بنية URL على ضبط سياسات الحاويات وCORS بشكل صحيح.
# Generate a pre-signed URL valid for 1 hour (3600 seconds)
aws s3 presign s3://my-company-data-20240101/reports/2024/report.pdf \
--expires-in 3600نموذج اتساق البيانات في S3
اعتباراً من ديسمبر 2020، يوفر Amazon S3 اتساقاً قوياً للقراءة بعد الكتابة لجميع العمليات—PUT للكائنات الجديدة، والكتابة فوق الكائنات، وDELETE—عبر جميع المناطق تلقائياً ودون تكلفة إضافية. يعني ذلك أنه فور نجاح عملية كتابة، ستُرجع أي عملية قراءة لاحقة أحدث إصدار من الكائن. يمثل ذلك تحسناً مهماً مقارنة بنموذج الاتساق النهائي السابق، ويبسط تصميم التطبيقات عبر إزالة الحاجة إلى تأخيرات القراءة بعد الكتابة أو منطق إعادة المحاولة.
S3 والمناطق: إقامة البيانات
عند إنشاء حاوية S3، تحدد منطقة، وتبقى بياناتك في تلك المنطقة ما لم تضبط النسخ المتماثل صراحةً. تنسخ AWS البيانات داخل تلك المنطقة عبر عدة AZs لضمان المتانة، لكنها لا تنقل البيانات إلى مناطق أخرى تلقائياً. تُعد إقامة البيانات الإقليمية هذه مهمة للامتثال: إذا كانت اللوائح تقتضي بقاء البيانات في الاتحاد الأوروبي، فأنشئ الحاوية في eu-west-1 أو منطقة أخرى في الاتحاد الأوروبي، ولن تغادر بياناتك تلك المنطقة.
# Find the region of an existing bucket
aws s3api get-bucket-location \
--bucket my-company-data-20240101Multipart Upload للكائنات الكبيرة
تكون Multipart Upload مطلوبة للكائنات التي تتجاوز 5 GB، وموصى بها للكائنات التي تتجاوز 100 MB. تقسم الكائن إلى أجزاء (بحد أدنى 5 MB لكل جزء، وحتى 10,000 جزء)، وترفع كل جزء بشكل مستقل (بالتوازي)، ثم تجمعها في الكائن النهائي. إذا فشل أي جزء، تعيد محاولة ذلك الجزء فقط. يتعامل AWS CLI وSDKs مع الرفع متعدد الأجزاء تلقائياً عند استخدام الأمر aws s3 cp للملفات الكبيرة—ولا تحتاج إلى تنفيذه يدوياً.
# The CLI uses multipart automatically for large files
aws s3 cp large-file-50GB.tar.gz s3://my-bucket/ \
--storage-class STANDARD
# Or use s3api to control multipart manually
aws s3api create-multipart-upload \
--bucket my-bucket \
--key large-file-50GB.tar.gzالبيانات الوصفية لكائنات S3
يمتلك كل كائن في S3 بيانات وصفية للنظام تضبطها AWS (Content-Type وContent-Length وETag وLast-Modified)، وبيانات وصفية اختيارية يحددها المستخدم (أزواج مفتاح-قيمة مخصصة مسبوقة بـ x-amz-meta-). تُخزَّن البيانات الوصفية مع الكائن وتُعاد في رؤوس استجابة HTTP عند تنزيل الكائن. يُعد Content-Type مهماً بشكل خاص لخدمة الويب—فإذا رفعت ملف HTML دون ضبط Content-Type: text/html، فقد تعرضه المتصفحات للتنزيل بدلاً من عرضه.
# Upload with explicit Content-Type metadata
aws s3 cp index.html s3://my-website-bucket/ \
--content-type 'text/html' \
--metadata 'author=alice,env=production'S3 لاستضافة مواقع الويب الثابتة
يمكن أن يعمل Amazon S3 بوصفه مستضيفاً لمواقع الويب الثابتة—إذ يقدم HTML وCSS وJavaScript والصور والملفات الأخرى مباشرة من حاوية. فعّل استضافة موقع الويب الثابت في خصائص الحاوية، وحدد مستند فهرس (index.html) ومستند أخطاء اختيارياً (404.html). يتبع عنوان URL لنقطة نهاية موقع الويب الخاصة بالحاوية التنسيق التالي: http://<bucket>.s3-website.<region>.amazonaws.com. لدعم HTTPS والنطاقات المخصصة، ضع توزيع CloudFront أمام حاوية موقع الويب الثابت في S3.
# Enable static website hosting
aws s3api put-bucket-website \
--bucket my-website-bucket \
--website-configuration '{"IndexDocument":{"Suffix":"index.html"},"ErrorDocument":{"Key":"404.html"}}'S3 Transfer Acceleration
تسرّع S3 Transfer Acceleration عمليات رفع الكائنات لمسافات طويلة عبر توجيه البيانات من خلال أقرب CloudFront Edge Location، ثم عبر شبكة AWS الأساسية الخاصة إلى منطقة حاوية S3. بدلاً من الرفع مباشرة إلى نقطة نهاية S3، يرفع العميل إلى نقطة نهاية مسرّعة مثل my-bucket.s3-accelerate.amazonaws.com. تضيف Transfer Acceleration رسوماً بسيطة لكل GB، لكنها قد تحسن سرعات الرفع بشكل ملحوظ للمستخدمين البعيدين جغرافياً عن منطقة الحاوية.
# Enable Transfer Acceleration on a bucket
aws s3api put-bucket-accelerate-configuration \
--bucket my-company-data-20240101 \
--accelerate-configuration Status=Enabledوضع علامات على كائنات S3
تُعد علامات الكائنات أزواج مفتاح-قيمة تُرفقها بكائنات S3 لتصنيفها وإدارتها. تُستخدم العلامات من أجل: قواعد دورة الحياة (نقل الكائنات أو انتهاء صلاحيتها وفق علامات محددة)، والتحكم بالوصول (شروط IAM وسياسة الحاوية بناءً على قيم العلامات)، وتوزيع التكلفة (يتتبع Cost Explorer إنفاق S3 حسب العلامة)، والجرد والتحليلات. يمكن أن يحتوي كل كائن على ما يصل إلى 10 علامات. يمكن إضافة العلامات عند الرفع أو تحديثها بعد وجود الكائن دون تعديل بيانات الكائن نفسها.
# Add tags to an existing object
aws s3api put-object-tagging \
--bucket my-company-data-20240101 \
--key reports/2024/report.pdf \
--tagging '{"TagSet":[{"Key":"env","Value":"production"},{"Key":"owner","Value":"finance"}]}'تحقق سريع
اختبر فهمك لمفاهيم AWS Solutions Architect (SAA-C03) الواردة في هذا الدرس.
ملخص الدرس
تعلمت في هذا الدرس: حاويات S3 هي حاويات ذات أسماء فريدة عالمياً ومرتبطة بمنطقة محددة، وتُخزَّن الكائنات ببنية مفاتيح مسطحة وتدعم البيانات الوصفية والعلامات، ويوفر S3 اتساقاً قوياً للقراءة بعد الكتابة و11 تسعات من المتانة من خلال التكرار عبر عدة AZs. بعد ذلك، سنستكشف التحكم بالوصول في S3 باستخدام سياسات الحاويات وACLs.
الأسئلة الشائعة
هل درس «الحاويات والكائنات والمناطق» مجاني؟
نعم — نص درس «الحاويات والكائنات والمناطق» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cloud & IT Cert Prep، انتقل إلى CoddyKit PRO. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.
ماذا ستتعلم في «الحاويات والكائنات والمناطق»؟
أنشئوا حاويات S3، وحمّلوا الكائنات، وتعرّفوا إلى تسمية المفاتيح، واكتشفوا كيفية تكرار S3 للبيانات داخل المنطقة. تتمرن على Cloud & IT Cert Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cloud & IT Cert Prep؟
لا تُشترط خبرة سابقة. Cloud & IT Cert Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «الحاويات والكائنات والمناطق»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cloud & IT Cert Prep هذا؟
نعم. كل درس في Cloud & IT Cert Prep يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الحاويات والكائنات والمناطق
- التحكم في الوصول إلى S3: سياسات الحاويات وقوائم ACL
- إصدارات S3 وحذف MFA والنسخ المتماثل
- فئات التخزين وسياسات دورة الحياة