# تكوين مزود تخزين كائنات متوافق مع S3 للرفع

**URL:** https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916
**Category:** Self-Hosting
**Tags:** cdn, configuring, how-to, reference
**Created:** [22 أبريل 2020، 10:37م UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916 "2020-04-22T22:37:37Z")
**Posts on this page:** 20
**Page:** 6

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [1 يوليو 2022، 5:40م UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/329 "2022-07-01T17:40:16Z")

</div>

إذًا، هل يعمل الآن؟

---

<div class="post-metadata">

### Author: ![Victor\_Ashiedu](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/victor_ashiedu/32/264361_2.png) [@Victor\_Ashiedu](https://meta.discourse.org/u/Victor_Ashiedu)
#### Post date: [1 يوليو 2022، 5:41م UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/330 "2022-07-01T17:41:08Z")

</div>

ممتاز. لقد استغرق الأمر مني وقتًا طويلاً ولكن بصرف النظر عن حقيقة أنه يعمل، فقد تعلمت أيضًا الكثير عن تكوين Discourse!

شكرا لك!

---

<div class="post-metadata">

### Author: ![Victor\_Ashiedu](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/victor_ashiedu/32/264361_2.png) [@Victor\_Ashiedu](https://meta.discourse.org/u/Victor_Ashiedu)
#### Post date: [2 يوليو 2022، 6:57م UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/331 "2022-07-02T18:57:30Z")

</div>

حسنًا. قررت نشر الدليل خطوة بخطوة الذي أنشأته عند قيامي بهذا الإعداد.

[كيفية تكوين النسخ الاحتياطي لـ Discourse Forum S3 و S3 CDN (Itechguides.com)](https://www.itechguides.com/how-to-configure-discourse-forum-s3-backup-and-s3-cdn/)

الخطوات في هذا الدليل مخصصة لاستخدام مساحات DigitalOcean و StackPack CDN.

---

<div class="post-metadata">

### Author: ![Victor\_Ashiedu](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/victor_ashiedu/32/264361_2.png) [@Victor\_Ashiedu](https://meta.discourse.org/u/Victor_Ashiedu)
#### Post date: [3 يوليو 2022، 8:25ص UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/332 "2022-07-03T08:25:55Z")

</div>

@pfaffman كنت أتساءل عما إذا كان بإمكانك مساعدتي في مشكلة النسخ الاحتياطي الإضافية هذه:

بعد إكمال النسخ الاحتياطي لـ S3 وتكوين الاستنساخ، لا يعمل النسخ الاحتياطي التلقائي الخاص بي. تُظهر لقطة الشاشة أدناه التكوين الخاص بي.

 ![image](https://global.discourse-cdn.com/meta/original/4X/4/e/7/4e787ed6c7d4b59714d6b81d0d466837fb40fc3c.png)

يمكنني تشغيل النسخ الاحتياطي يدويًا. المشكلة هي النسخ الاحتياطي التلقائي المجدول - فهي لا تعمل

 ![image](https://global.discourse-cdn.com/meta/original/4X/2/5/3/253854d09cde895c5be4028e71f6d7891a840569.png)

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [3 يوليو 2022، 11:09ص UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/333 "2022-07-03T11:09:15Z")

</div>

لا أعرف. يمكنك إلقاء نظرة على مهام sidekiq والتأكد من أنها قيد التشغيل. يجب أن يعمل.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2 ديسمبر 2022، 10:30م UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/334 "2022-12-02T22:30:03Z")

</div>

تم تقسيم 4 مشاركات إلى موضوع جديد: [نصائح حول Google Cloud S3](https://meta.discourse.org/t/tips-on-google-cloud-s3/247555)

---

<div class="post-metadata">

### Author: ![tuanpembual](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tuanpembual/32/223553_2.png) [@tuanpembual](https://meta.discourse.org/u/tuanpembual)
#### Post date: [21 يوليو 2022، 3:13ص UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/338 "2022-07-21T03:13:48Z")

</div>

مرحباً،

شكراً لتصحيح مشاركتي. لكنني لا أستطيع تعديل مشاركتي لتجنب المعلومات المضللة.

---

<div class="post-metadata">

### Author: ![Jerome\_Hordies](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jerome_hordies/32/267141_2.png) [@Jerome\_Hordies](https://meta.discourse.org/u/Jerome_Hordies)
#### Post date: [25 أغسطس 2022، 11:37ص UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/339 "2022-08-25T11:37:21Z")

</div>

مرحباً،

أنا عالق بعض الشيء ومحتار وآمل أن يتمكن شخص ما من مساعدتي.  
كان لدي في البداية تثبيت Bitnami وأدركت كم ستكون هذه المشكلة على طول الطريق، فأعدت التثبيت باستخدام التثبيت القياسي.  
تمكنت من استعادة النسخة الاحتياطية الخاصة بي وكان كل شيء على ما يرام، على الرغم من أنني انتقلت من الإصدار 2.8 إلى الإصدار التجريبي 2.9.

اختبرت نسختي الاحتياطية مرة أخرى على Google Bucket الخاص بي ولا تزال تعمل بشكل رائع.

لاحظ أن جميع إعدادات S3 تم إجراؤها من خلال واجهة الويب وليس عبر متغيرات البيئة.

لأسباب تتعلق بالخصوصية (GDPR)، قمت بإنشاء حاوية نسخ احتياطي جديدة في أوروبا (لنسميها discourse-backup-eu)، والآن بعد أن تمكنت من تغيير متغير البيئة، قمت بتعيين DISCOURSE\_S3\_ENDPOINT: [https://storage.googleapis.com](https://storage.googleapis.com)، وأعدت بناء التطبيق، وغيرت اسم حاوية النسخ الاحتياطي في واجهة الويب، وأعدت تشغيل النسخ الاحتياطي وكنت سعيدًا جدًا برؤية ملفات النسخ الاحتياطي تظهر في حاوية النسخ الاحتياطي الجديدة الخاصة بي في أوروبا.

الآن أردت أن تذهب التحميلات إلى حاوية أخرى وتجنب ملء مساحة قرص VM الخاصة بي.

لذلك قمت بتكوين حاوية جديدة (لنسميها discourse-uploads)، وجعلتها عامة، وأضفت دور **Storage Legacy Bucket Owner** إلى حساب الخدمة الخاص بي على تلك الحاوية الجديدة.  
ثم أضفت قاعدة إلى موازن التحميل الحالي الخاص بي (لنسميه [https://www.example.com](https://www.example.com)) لاستخدام حاوية خلفية مع تمكين Cloud CDN كما هو موضح [هنا](https://cloud.google.com/load-balancing/docs/https/ext-load-balancer-backend-buckets). القاعدة هي /discourse-uploads/\* تشير إلى الحاوية discourse-uploads.

اختبرت CDN الخاص بي باستخدام ملف test.jpg في جذر الحاوية ولكن لم أتمكن من الوصول إليه عبر [https://www.example.com/discourse-uploads/test.jpg](https://www.example.com/discourse-uploads/test.jpg) واضطررت إلى إنشاء مجلد فرعي يسمى discourse-uploads داخل الحاوية، ونقلت test.jpg إلى الداخل والآن يمكنني رؤية صورتي التجريبية عبر [https://www.example.com/discourse-uploads/test.jpg](https://www.example.com/discourse-uploads/test.jpg).

في واجهة المستخدم الرسومية، قمت بتغيير اسم الحاوية الوهمي تحت “s3 upload bucket” (أجبرت على تعيينه سابقًا أثناء إعداد النسخ الاحتياطي) إلى discourse-uploads، وملأت عنوان URL الخاص بـ CDN بـ [https://www.example.com/discourse-uploads](https://www.example.com/discourse-uploads) وحددت “enable s3 uploads”.

منذ ذلك الحين، إذا حاولت تحميل صورة، سأحصل على نافذة منبثقة تقول “Invalid Argument” في نافذة المتصفح (قادمة من خطأ 422 مع محتوى JSON يقول نفس الشيء بشكل أساسي).

حاولت إعادة بناء جميع المشاركات، ولكن لم يكن هناك تأثير، وما زلت أحصل على الخطأ.

لذلك، فكرت، يجب أن أحاول استخدام متغيرات البيئة بدلاً من واجهة الويب.

واستخدام التكوين التالي:

DISCOURSE\_USE\_S3: true  
DISCOURSE\_S3\_REGION: whatever  
DISCOURSE\_S3\_INSTALL\_CORS\_RULE: false  
FORCE\_S3\_UPLOADS: 1  
DISCOURSE\_S3\_ENDPOINT: [https://storage.googleapis.com](https://storage.googleapis.com)  
DISCOURSE\_S3\_ACCESS\_KEY\_ID: MY\_KEY\_ID  
DISCOURSE\_S3\_SECRET\_ACCESS\_KEY: MY\_ACCESS\_KEY  
DISCOURSE\_S3\_CDN\_URL: [https://www.example.com/discourse-uploads](https://www.example.com/discourse-uploads)  
DISCOURSE\_S3\_BUCKET: discourse-uploads/discourse-uploads  
DISCOURSE\_S3\_BACKUP\_BUCKET: discourse-backup-eu  
DISCOURSE\_BACKUP\_LOCATION: s3

أعدت بناء التطبيق.  
بعد ذلك، لا يمكنني فتح discourse لأن الأصول لم يتم تحميلها إلى الحاوية وأحصل على 404.  
[https://www.example.com/discourse-uploads/assets/admin-31467dc73634cbfb81799737c43df0e2939307d893ef32713f1d0770bcb3532c.br.js](https://www.example.com/discourse-uploads/assets/admin-31467dc73634cbfb81799737c43df0e2939307d893ef32713f1d0770bcb3532c.br.js)

اعتقدت أن محاولة التحميل مباشرة إلى مجلد فرعي في الحاوية مباشرة كان أمرًا مبالغًا فيه على الرغم من أن المنشور الأصلي يشير إلى أنه يعمل (على الأقل بالنسبة لحاوية النسخ الاحتياطي).

> [@Falco](#):
>
> ` DISCOURSE_S3_BACKUP_BUCKET: falcoland-files/backups`

غيرت متغير البيئة إلى  
DISCOURSE\_S3\_BUCKET: discourse-uploads  
(بالتفكير في أنه لاحقًا يمكنني اللعب بقاعدة المضيف بدلاً من ذلك لتجنب الاضطرار إلى التحميل إلى مجلد فرعي).

وأعدت البناء لمعرفة ما إذا كان أي شيء سيتم تحميله، ولكن لم يتم تحميل أي شيء إلى الحاوية ولا يزال discourse يفشل في الفتح بسبب أخطاء 404.

إذًا أسئلتي هي:

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

شكرا لك!

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [25 أغسطس 2022، 11:55ص UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/340 "2022-08-25T11:55:00Z")

</div>

> [@Jerome\_Hordies](#):
>
> لم يتم تحميل أي من الأصول إلى الحاوية

هل قمت بتضمين هذا الجزء؟

لقد قدمت طلب سحب (PR) مع قالب للقيام بذلك منذ فترة، لكنني لا أعتقد أنه حظي بأي اهتمام.

> [@Falco](#):
>
> ```plaintext
> after_assets_precompile:
> - exec:
> cd: $home
> cmd:
> - sudo -E -u discourse bundle exec rake s3:upload_assets
> 
> ```

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

إذا كنت تستخدم متغيرات البيئة (وهو ما يجب عليك فعله)، فلن تكون هذه الإعدادات مرئية بعد الآن في واجهة المستخدم الرسومية.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2 ديسمبر 2022، 10:34م UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/341 "2022-12-02T22:34:18Z")

</div>

تم دمج منشور في موضوع موجود: [نصائح حول Google Cloud S3](https://meta.discourse.org/t/tips-on-google-cloud-s3/247555/5)

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [25 أغسطس 2022، 2:36م UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/342 "2022-08-25T14:36:59Z")

</div>

> [@Jerome\_Hordies](#):
>
> هل يمكن أن يكون هذا معطلاً لتخزين Google؟

نعم. إذا كانت ذاكرتي لا تخونني، فهناك مناقشة أعلاه حول عدم سماح Google بشيء ما (الوصول إلى القائمة، ربما؟)، ولكن كان هناك حل بديل حول استخدام شيء “قديم”. هذا ما أتذكره. سيتعين عليك التمرير عبر الرسائل الـ 100 أعلاه للعثور عليه. إذا نجح الأمر، فسيكون من الرائع إذا كان بإمكانك تحديث المنشور الأصلي لتقول كيف نجحت في جعله يعمل حتى يتمكن الشخص التالي الذي يحتاج إلى معرفة ذلك من العثور عليه بسهولة أكبر.

---

<div class="post-metadata">

### Author: ![Jerome\_Hordies](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jerome_hordies/32/267141_2.png) [@Jerome\_Hordies](https://meta.discourse.org/u/Jerome_Hordies)
#### Post date: [25 أغسطس 2022، 3:19م UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/343 "2022-08-25T15:19:56Z")

</div>

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

> [@Jerome\_Hordies](#):
>
> **مالك حاوية التخزين القديمة**
> 
> الوصول للقراءة والكتابة إلى الحاويات الموجودة مع **سرد** الكائنات / إنشائها / حذفها.
> 
> الآن يعمل بما في ذلك السرد الذي يتيح النسخ الاحتياطي التلقائي! يا للروعة!!

هل تقترح علي تحديث المنشور الأصلي بهذه المعلومات؟ لا أعتقد أنني أستطيع.

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

أعتقد أنه قد يكون هناك تراجع هنا، ما رأيك @Falco؟

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [25 أغسطس 2022، 3:21م UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/344 "2022-08-25T15:21:28Z")

</div>

قد يكون هناك تراجع. هل أنت متأكد من أنك أضفت المخصص

> [@Falco](#):
>
> `FORCE_S3_UPLOADS: 1`

الذي تحتاجه Google فقط؟

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [25 أغسطس 2022، 3:27م UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/345 "2022-08-25T15:27:42Z")

</div>

> [@Jerome\_Hordies](#):
>
> لقد قمت بالفعل بالنشر حول كيفية إصلاح هذا

أوه. حسنًا، اعتقدت أن **شخصًا ما** قد فعل ذلك. 🤷

> [@Jerome\_Hordies](#):
>
> هل تقترح تحديث المنشور الأصلي بهذه المعلومات؟ لا أعتقد أنني أستطيع.

هذا ما كنت أقترحه. إنها ويكي، لذلك أنا متأكد تمامًا من أنه يمكنك ذلك، على الرغم من أنني لست متأكدًا بنسبة 100% من مستويات الثقة المعنية.

---

<div class="post-metadata">

### Author: ![Jerome\_Hordies](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jerome_hordies/32/267141_2.png) [@Jerome\_Hordies](https://meta.discourse.org/u/Jerome_Hordies)
#### Post date: [25 أغسطس 2022، 3:47م UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/346 "2022-08-25T15:47:48Z")

</div>

شكراً على إجابتك، نعم لقد قمت بتضمينها:

> [@Jerome\_Hordies](#):
>
> DISCOURSE\_USE\_S3: true  
> DISCOURSE\_S3\_REGION: whatever  
> DISCOURSE\_S3\_INSTALL\_CORS\_RULE: false  
> FORCE\_S3\_UPLOADS: 1  
> DISCOURSE\_S3\_ENDPOINT: [https://storage.googleapis.com](https://storage.googleapis.com)  
> DISCOURSE\_S3\_ACCESS\_KEY\_ID: MY\_KEY\_ID  
> DISCOURSE\_S3\_SECRET\_ACCESS\_KEY: MY\_ACCESS\_KEY  
> DISCOURSE\_S3\_CDN\_URL: [https://www.example.com/discourse-uploads](https://www.example.com/discourse-uploads)  
> DISCOURSE\_S3\_BUCKET: discourse-uploads/discourse-uploads  
> DISCOURSE\_S3\_BACKUP\_BUCKET: discourse-backup-eu  
> DISCOURSE\_BACKUP\_LOCATION: s3

لاحظ أنني جربت مع وبدون المجلد الفرعي  
DISCOURSE\_S3\_BUCKET: discourse-uploads/discourse-uploads  
و  
DISCOURSE\_S3\_BUCKET: discourse-uploads

شكراً مرة أخرى

---

<div class="post-metadata">

### Author: ![Jerome\_Hordies](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jerome_hordies/32/267141_2.png) [@Jerome\_Hordies](https://meta.discourse.org/u/Jerome_Hordies)
#### Post date: [25 أغسطس 2022، 3:55م UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/347 "2022-08-25T15:55:59Z")

</div>

> [@pfaffman](#):
>
> أوه. حسنًا، اعتقدت أن **شخصًا ما** قد فعل ذلك. 🤷

@tuanpembual فعل ذلك في البداية ولكنه أشار إلى مالك كائن الإرث للتخزين بدلاً من مالك حاوية الإرث للتخزين \*\*\*\*

> [@pfaffman](#):
>
> هذا ما كنت أقترحه. إنها ويكي، لذا أنا متأكد من أنه يمكنك ذلك، على الرغم من أنني لست متأكدًا بنسبة 100% من مستويات الثقة المعنية.

أنا مجرد “مستخدم أساسي” وهذا هو السبب على الأرجح لعدم قدرتي على تعديله.

---

<div class="post-metadata">

### Author: ![Jerome\_Hordies](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jerome_hordies/32/267141_2.png) [@Jerome\_Hordies](https://meta.discourse.org/u/Jerome_Hordies)
#### Post date: [25 أغسطس 2022، 9:45م UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/348 "2022-08-25T21:45:23Z")

</div>

سأحاول تلخيص إجابات أسئلتي:

- هل تتعارض واجهة المستخدم الرسومية للويب ومتغيرات البيئة؟

> إذا استخدمت متغيرات البيئة (وهو ما يجب عليك فعله)، فلن تكون تلك الإعدادات مرئية بعد الآن في واجهة المستخدم الرسومية للويب.

- متى يفترض تحميل الأصول إلى الحاوية؟  
بإضافة هذا المقطع إلى app.yml في قسم الخطاف (hook)، سيتم تحميله بعد `after_assets_precompile` (أثناء إعادة بناء التطبيق).

> ```plaintext
> after_assets_precompile:
> - exec:
> cd: $home
> cmd:
> - sudo -E -u discourse bundle exec rake s3:upload_assets
> 
> ```

- كيف يمكنني تصحيح هذا؟ لا أرى أي خطأ في السجلات  
عن طريق تشغيل:

```plaintext
cd /var/discourse
sudo ./launcher enter app
sudo -E -u discourse bundle exec rake s3:upload_assets --trace

```

- هل من الممكن تعيين مجلد فرعي للحاوية في الإعداد؟

> ### هل أحتاج حقًا إلى استخدام حاويات منفصلة للتحميلات والنسخ الاحتياطي؟
> 
> لا، لست بحاجة لذلك، ولكنها عادةً أسهل طريقة للإعداد. في الأساس، تحتاج إما إلى استخدام حاويتين مختلفتين أو بادئة لحاوية النسخ الاحتياطي. على سبيل المثال، ستعمل التركيبات التالية:
> 
> 1. حاويات مختلفة
> 
> - **s3\_upload\_bucket** : `your-uploads-bucket`
> - **s3\_backup\_bucket** : `your-backups-bucket`
> 
> 1. بادئات مختلفة
> 
> - **s3\_upload\_bucket** : `your-uploads-bucket/uploads`
> - **s3\_backup\_bucket** : `your-uploads-bucket/backups`

> > [يمكنك استخدام البادئات لتنظيم البيانات التي تخزنها في حاويات Amazon S3. البادئة هي سلسلة من الأحرف في بداية اسم مفتاح الكائن. يمكن أن تكون البادئة بأي طول، تخضع للحد الأقصى لطول اسم مفتاح الكائن (1,024 بايت). يمكنك التفكير في البادئات كطريقة لتنظيم بياناتك بطريقة مشابهة للمجلدات. ومع ذلك، فإن البادئات ليست مجلدات.](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html)

- بمجرد نجاح هذا، هل يتم نقل الصور التي تم تحميلها سابقًا إلى الحاوية؟ إذا قمت بإعادة التحميل، كيف ستبدو عناوين URL للصور التي تم تحميلها سابقًا؟

> ### لقد قمت بتمكين تحميلات S3 في مثيل Discourse الخاص بي (والذي يعمل منذ فترة)؛ ماذا أفعل مع التحميلات المحلية الحالية؟
> 
> لترحيل التحميلات الحالية إلى S3، يمكنك إجراء عدد قليل من **مهام rake**. للقيام بذلك، تحتاج إلى وصول SSH، وأذونات الجذر، وأن تكون قد دخلت إلى تطبيق discourse (وفقًا لـ [عمليات الإدارة المجمعة](https://meta.discourse.org/t/administrative-bulk-operations/118349)). أوه، و [عليك تعيين بعض متغيرات البيئة في app.yml](https://meta.discourse.org/t/setting-up-file-and-image-uploads-to-s3/7229/175). ليس للمبتدئين.
> 
> بمجرد الانتهاء من كل ذلك، تكون جاهزًا لمهام rake:
> 
> ```plaintext
> rake uploads:migrate_to_s3
> rake posts:rebake
> 
> ```
> 
> بمجرد الانتهاء من هذه (وتعمل التحميلات بشكل جيد)، لن تحتاج بعد الآن إلى تضمين التحميلات في النسخ الاحتياطي الخاص بك. وكمكافأة، ستتمكن من [استعادة نسخة احتياطية من سطر الأوامر](https://meta.discourse.org/t/restore-a-backup-from-command-line/108034) في حالة وقوع كارثة (فقط احتفظ بنسخة من app.yml في مكان ما).

---

<div class="post-metadata">

### Author: ![Fabrice](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/fabrice/32/265087_2.png) [@Fabrice](https://meta.discourse.org/u/Fabrice)
#### Post date: [27 أغسطس 2022، 10:29م UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/349 "2022-08-27T22:29:47Z")

</div>

مرحباً، لقد كنت أبحث عن مزودي تخزين الكائنات، ورأيت في المنشور الأصلي أنه بالنسبة لبعضهم، ستحتاج إلى “تجاوز CORS وتكوينه يدويًا”. أنا لست على دراية بـ CORS أو أي شيء يتعلق بتكوينه، لذلك هل يجب أن أتجنب تلك التي تحتاج إلى هذا الإعداد، أم أنه من السهل إعداده؟

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [27 أغسطس 2022، 11:08م UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/350 "2022-08-27T23:08:01Z")

</div>

إذا احتجت إلى السؤال (كما سأفعل) فسأختار واحدًا آخر.

---

<div class="post-metadata">

### Author: ![knewt](https://avatars.discourse-cdn.com/v4/letter/k/76d3ee/32.png) [@knewt](https://meta.discourse.org/u/knewt)
#### Post date: [13 سبتمبر 2022، 5:58م UTC](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916/351 "2022-09-13T17:58:43Z")

</div>

فقط قم بالتأكيد، بمجرد الانتهاء من خطوات

> rake uploads:migrate\_to\_s3  
> rake posts:rebake

يمكنني إزالة مجلد التحميلات المحلي بالكامل، نعم؟

[Previous page](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916.md?page=5)

[Next page](https://meta.discourse.org/t/configure-an-s3-compatible-object-storage-provider-for-uploads/148916.md?page=7)
