إضافة قناة S3
متى تكون مناسبة؟
استخدم قناة S3 عندما:
- تريد ربط أي خدمة تخزين كائنات متوافقة مع S3، مثل Cloudflare R2 أو Backblaze B2 أو MinIO أو AWS S3 أو مزود متوافق آخر.
- تفضل نموذج إعداد S3 المعتاد:
Endpointو Access Key و Secret Key. - لا تريد استخدام قناة Cloudflare R2 binding الأصلية، أو كان مزود التخزين ليس Cloudflare R2.
ما الذي تحتاجه قبل البدء؟
| المتطلب | الغرض |
|---|---|
| S3 Endpoint | عنوان S3 API لخدمة تخزين الكائنات. |
| اسم Bucket | الـ bucket الذي ستُحفظ فيه الملفات. |
| Region | منطقة التخزين. في Cloudflare R2 تكون غالبًا auto. |
| Access Key ID | معرّف مفتاح وصول S3. |
| Secret Access Key | مفتاح وصول S3 السري. |
| CDN domain | نطاق مخصص اختياري للوصول إلى الملفات. |
مثال لاستخدام Cloudflare R2 عبر S3 API:
text
Endpoint: https://your-account-id.r2.cloudflarestorage.com
Bucket: your-r2-bucket-name
Region: auto
Access Key ID: copied from the Cloudflare R2 API token
Secret Access Key: copied from the Cloudflare R2 API tokenأين تضيفها؟
- افتح إعدادات النظام.
- انتقل إلى إعدادات الرفع.
- اضغط Add Channel في الزاوية العلوية اليمنى.
- اختر
S3.
شرح الحقول
| الحقل | وظيفته | مطلوب |
|---|---|---|
| اسم القناة | اسم واضح لقناة S3، مثل s3test أو R2-S3. | نعم |
| Enable channel | يحدد هل تشارك القناة في اختيار قناة الرفع. | موصى به |
| Endpoint | عنوان S3 service endpoint كاملًا، مع https://. | نعم |
| Custom CDN domain | اختياري. عند ضبطه، تفضل روابط الملفات هذا النطاق. | لا |
| Bucket name | اسم الـ bucket، مثل s3test أو img-r2. | نعم |
| Bucket region | المنطقة. في Cloudflare R2 غالبًا auto. | نعم |
| Access Key ID | معرّف مفتاح وصول S3. | نعم |
| Secret Access Key | مفتاح وصول S3 السري. | نعم |
| Path-style access | مفتاح توافق. مغلق افتراضيًا. قد تحتاجه بعض خدمات MinIO أو OpenList أو S3 ذاتية الاستضافة. | لا |
| Quota limit | يحدد هل تُؤخذ سعة القناة في الاعتبار عند اختيار التخزين. | لا |
| Capacity limit | مطلوب بعد تفعيل quota limit، مثل 10 GB. | مطلوب عند تفعيل quota limit |
| Threshold | يوقف الكتابة بعد بلوغ هذه النسبة، مثل 90%. | مطلوب عند تفعيل quota limit |
| Remark | ملاحظاتك الخاصة للصيانة. | لا |
إنشاء مفاتيح Cloudflare R2 S3 API
- افتح Cloudflare Dashboard.
- انتقل إلى
R2 Object Storage. - ابحث عن
Manage R2 API Tokensأو مدخل إدارة API token.

- أنشئ R2 API token يستطيع الوصول إلى الـ bucket الهدف.

- انسخ قيم
Access Key IDوSecret Access Key.

- ارجع إلى صفحة R2 bucket وتأكد من اسم الـ bucket.
- سجّل S3 API endpoint الخاص بالحساب. غالبًا يكون بالشكل:
text
https://your-account-id.r2.cloudflarestorage.comخطوات الإعداد
- افتح إعدادات الرفع.
- اضغط Add Channel.
- اختر
S3. - أدخل اسم قناة واضحًا، مثل
s3test. - أدخل S3 API endpoint في
Endpoint. - إذا كنت تستخدم CDN مخصصًا فأدخله في
Custom CDN domain، وإلا اتركه فارغًا. - أدخل اسم الـ bucket.
- أدخل المنطقة. في مثال Cloudflare R2 استخدم
auto. - أدخل Access Key ID و Secret Access Key.
- اترك path-style access مغلقًا ما لم يطلبه المزود صراحة.
- إذا أردت التحكم في السعة، فعّل quota limit وأدخل capacity limit و threshold.
- اضغط Save.

كيف تتحقق؟
| الفحص | طريقة التحقق |
|---|---|
| ظهور بطاقة القناة | بعد الحفظ يجب أن تظهر بطاقة قناة S3 في إعدادات الرفع. |
| القناة مفعلة | يجب أن يبقى المفتاح في أعلى يمين البطاقة مفعّلًا. |
| الحقول الأساسية محفوظة | يجب أن تظهر في التفاصيل قيم Endpoint و Bucket و Region و path-style access والحقول المرتبطة. |
| نجاح الرفع | ارفع صورة تجريبية وتأكد من ظهور الكائن في الـ bucket الهدف. |
| فتح الرابط | يجب أن يفتح رابط الصورة الناتج بعد الرفع بشكل طبيعي. |
| عرض السعة يعمل | إذا كان quota limit مفعّلًا، يجب أن تعرض البطاقة السعة المستخدمة والحد المضبوط. |
إحصاءات سعة S3 تُحسب من سجلات الملفات المحلية في ImgBed، وليس من استعلام مباشر للـ bucket لدى المزود في الوقت الحقيقي. بعد حفظ إعداد S3، يعيد النظام حساب دفتر الحصة من سجلات D1 الحالية.

FAQ
هل أفعّل path-style access؟
غالبًا لا.
فعّله فقط إذا كان مزود S3 المتوافق لا يدعم virtual-hosted-style URLs، أو إذا طلبت وثائق المزود path-style access صراحة. قد تحتاجه بعض نقاط MinIO أو S3 ذاتية الاستضافة أو OpenList.
ما فائدة CDN domain؟
إذا وضعت CDN أو نطاق وصول مخصصًا أمام الـ bucket، أدخله هنا.
بعد ضبطه ستفضل روابط الملفات الناتجة هذا النطاق. إذا لم تستخدم CDN، اتركه فارغًا.
لماذا يفشل الرفع؟
تحقق أولًا من التالي:
- يحتوي Endpoint على عنوان
https://كامل. - اسم الـ bucket صحيح.
- Region يطابق متطلبات المزود.
- تم نسخ Access Key ID و Secret Access Key بالكامل.
- المفتاح يملك صلاحية الكتابة على الـ bucket الهدف.
- المزود لا يتطلب path-style access، أو تم تفعيله إذا كان مطلوبًا.
قائمة تحقق سريعة
text
جهّز S3 Endpoint و Bucket و Region و Access Key و Secret Key
-> افتح إعدادات الرفع
-> أضف قناة
-> اختر S3
-> أدخل Endpoint / Bucket / Region / Access Key / Secret Key
-> أدخل CDN domain عند الحاجة
-> اترك path-style access مغلقًا افتراضيًا
-> فعّل quota limit عند الحاجة
-> احفظ
-> ارفع صورة تجريبية وتحقق من النتيجة