الحدود والأخطاء
حدّ حجم الرفع الواحد وإرشاد الرفع المُجزّأ، وماذا يحدث عند امتلاء الـ bucket أو نفاد تجمّع السعة، والأسباب الشائعة لـ 403 AccessDenied، ورموز أخطاء S3 التي ستراها.
الحدود الحالية
| الحدّ | القيمة |
|---|---|
| جزء الرفع الواحد | 95 MB (الكائنات الأكبر تستخدم الرفع المُجزّأ) |
| حجم الكائن | غير محدود عملياً عبر الرفع المُجزّأ، ضمن سعة الـ bucket لديك |
| العنونة | أسلوب المسار (path-style) فقط |
| الوصول العام | لا يوجد: كل طلب يجب أن يُوقَّع بمفاتيحك |
الكائنات الكبيرة وحدّ 95 MB للجزء
طلب الرفع الواحد محدود بـ 95 MB عند الحافة. وهذا حدّ على طلب HTTP واحد، لا على حجم الكائن الأقصى:
- كل SDK لـ S3، إضافةً إلى
aws s3 cpوrcloneوmc، يتحوّل تلقائياً إلى الرفع المُجزّأ (multipart upload) للكائنات الكبيرة، فيقسّمها إلى أجزاء دون الحدّ ويعيد تجميعها على الخادم. ونادراً ما تفكّر في ذلك. - فقط إذا فرضت رفعاً بجزء واحد فوق 95 MB (كما تفعل بعض عمليات الرفع
اليدوية) سترفضه الحافة بـ
413. والحلّ أن تترك أداتك تُجري رفعاً مُجزّأً، أو أن تضبط حجم جزء عند 95 MB أو أقلّ.
عند امتلاء الـ bucket
السعة المحجوزة لـ bucket حصّة صارمة. عند بلوغ البيانات المخزّنة لها، تُرفَض الكتابات الإضافية حتى تحرّر مساحة (بحذف كائنات) أو تطلب سعة أكبر عبر تذكرة دعم. وتبقى القراءة والحذف متاحَين، فتستطيع دائماً استعادة مساحة.
عند نفاد تجمّع السعة
تحجز الـ buckets سعتها من تجمّع محدود على مستوى المنطقة. وإن كان التجمّع بلا مساحة مؤقتاً حين تحاول إنشاء bucket (أو طلب سعة أكبر)، يفشل الطلب برسالة سعة غير كافية (insufficient capacity). وهذا ليس خطأً في إعدادك: اختر سعة أصغر، أو أعد المحاولة لاحقاً، أو افتح تذكرة دعم إن كنت تحتاج حجزاً كبيراً.
لماذا يظهر لك 403 AccessDenied
AccessDenied هو الخطأ الأكثر شيوعاً، وهو يعني غالباً أن الطلب وُقِّع لكنه غير
مسموح. الأسباب المعتادة:
- مفتاح أو مفتاح سرّي خاطئ أو مكتوب خطأً. أعد نسخهما من لوحة التحكم.
- مفتاح أُعيد توليده. إعادة التوليد تُبطِل المفتاح السرّي السابق فوراً؛ حدّث التطبيق بالجديد. راجع مفاتيح الوصول.
- bucket حساب آخر. تصل بيانات الاعتماد إلى buckets حسابك فقط، وتوجيهها إلى bucket لا تملكه يُرفَض.
- الاسم القصير للـ bucket. استخدم الاسم الكامل المُسبَّق بالبادئة
(
t...-<name>) المعروض في لوحة التحكم، لا الاسم القصير الذي كتبته (استخدام الاسم الخاطئ يظهر عادةً كـ404 NoSuchBucket).
رموز أخطاء S3
لأن الخدمة متوافقة مع S3، فإن عميلك يفهم أصلاً هذه الرموز القياسية:
| HTTP | الرمز | المعنى وما يلزمك فعله |
|---|---|---|
400 | InvalidRequest | طلب مشوّه، مثل جزء رفع مُجزّأ خاطئ. دع الـ SDK يبني الطلب. |
403 | AccessDenied | مفتاح خاطئ أو أُعيد توليده، أو موجَّه إلى bucket لا تملكه. راجع الأسباب أعلاه. |
403 | SignatureDoesNotMatch | المفتاح السرّي خاطئ، أو ساعة العميل منحرفة كثيراً. أعد نسخ المفتاح السرّي؛ اضبط الساعة. |
403 | InvalidAccessKeyId | مفتاح الوصول غير معروف أو مُبطَل. أعد نسخه، أو أعد توليد الزوج. |
404 | NoSuchBucket | اسم الـ bucket خاطئ. استخدم الاسم الكامل المُسبَّق بالبادئة من لوحة التحكم. |
404 | NoSuchKey | مفتاح الكائن غير موجود في هذا الـ bucket. تحقّق من المسار. |
409 | BucketAlreadyOwnedByYou | لديك أصلاً bucket بهذا الاسم. أعد استخدامه. |
413 | EntityTooLarge | تجاوز جزء رفع واحد 95 MB. استخدم الرفع المُجزّأ. |
503 | SlowDown | طلبات كثيرة بسرعة كبيرة. تمهّل وأعد المحاولة؛ وتعيد SDK الرسمية المحاولة تلقائياً. |
القراءة لا تكشف حساباً آخر أبداً
العزل مفروض في طبقة التخزين، لا في لوحة التحكم فقط. فحتى المفتاح الصحيح الحيّ
لا يستطيع سرد bucket خارج حسابك أو قراءته، بل يتلقّى 403 AccessDenied.
بياناتك لا يمكن الوصول إليها إلا بمفاتيحك أنت.