التكامل

تخزينك الخاص · WordPress + WooCommerce

AWS S3 لـ WooCommerce

تتضمن إضافة Alter Product وحدة جاهزة للتخزين على AWS S3. احفظ مجموعات الملفات التي تدعمها الإضافة في حاويتك الخاصة، واربطها في WordPress، ثم انقل الملفات الموجودة باستخدام أدوات الإضافة.

لا تفرض Alter Product رسومًا إضافية على سعة التخزين عند توسيع هذا التخزين المتصل. تحاسب AWS حسابك على التخزين والطلبات ونقل البيانات. وتظل تكاليف استضافة WordPress وقواعد الخطة وجلسات التضمين المعتادة سارية.

تتبع هذه الإرشادات دليل الإعداد داخل الإضافة. وتظل تسميات وحدة تحكم AWS باللغة الإنجليزية.

ثبّت إضافة WordPress + WooCommerce أولًااربط Alter Product بالمتجر قبل إعداد واجهة التخزين الخلفية الاختيارية هذه.

التخزين وتقديم الملفات والتكاليف

يخزّن S3 كائنات ملفات الإضافة. وتبقى مسؤولية التحقق من صلاحية الوصول وتقديم الملفات إلى المتصفح على WordPress.

تخزين خلفي خاص للإضافة

لا ينزّل المتصفح الملفات مباشرة من S3. يجلب WordPress الملفات من الحاوية الخاصة ويتحقق منها، ثم يقدّمها عبر نقاط النهاية الخاصة به. اترك CORS في S3 فارغًا وفعّل Block Public Access؛ فهذه ليست حاوية عامة ولا اتصالًا مباشرًا بشبكة CDN.

تشمل الوحدة مجموعات ملفات Alter Product المدعومة. لا يؤدي ربط الحاوية إلى نقل جميع ملفات WordPress أو تغيير حدود الأدوات المضمّنة.

يطلب المتصفح الملفات عبر WordPress؛ ويتصل WordPress بحاوية AWS S3 خاصة.
تُقدَّم الملفات عبر WordPress. ولا تُتاح حاوية S3 الخاصة مباشرة للمتصفح.

ادفع لـ AWS مقابل الموارد التي تستخدمها

لا توجد رسوم إضافية من Alter Product لزيادة سعة التخزين في الحاوية المتصلة. تعتمد رسوم AWS على الاستخدام والمنطقة وفئة التخزين؛ راجع قائمة أسعار S3 الحالية بدلًا من افتراض سعر ثابت.

نظرًا إلى أن WordPress يقدّم الملفات، فقد تُحتسب هذه الحركة أيضًا ضمن استهلاك نقل البيانات لدى الاستضافة. لا يعني استخدام S3 انعدام نقل البيانات عبر الاستضافة أو قدرة غير محدودة للخادم.

أنشئ حاوية بالإعدادات المدعومة

تطابق أسماء الحقول أدناه وحدة تحكم AWS باللغة الإنجليزية ودليل الإعداد المدمج في الإضافة.

أنشئ حاوية للأغراض العامة

سجّل الدخول إلى AWS، وافتح Amazon S3، ثم اختر General purpose buckets → Create bucket. اختر المنطقة واسمًا يتكون من أحرف لاتينية صغيرة وأرقام وشرطات، دون نقاط. انسخ اسم الحاوية الكامل، بما في ذلك أي لاحقة تضيفها AWS.

  1. طبّق الإعدادات في الجدول واختر Create bucket.
  2. احتفظ باسم الحاوية الكامل والمنطقة ومعرّف حساب AWS لمالك الحاوية المكوّن من 12 رقمًا.
  3. اترك Cross-origin resource sharing (CORS) فارغًا. تأتي الطلبات إلى S3 من خادم WordPress.
الإعدادات المستخدمة في دليل إعداد S3 داخل الإضافة
حقل AWSالإعداد
Bucket typeGeneral purpose
Bucket namespaceAccount Regional namespace (موصى به)
Object OwnershipACLs disabled / Bucket owner enforced
Block Public AccessBlock all public access (الإعدادات الأربعة جميعها)
Bucket VersioningEnable
Default encryptionServer-side encryption with Amazon S3 managed keys (SSE-S3 / AES256)
Bucket KeyDisable
Advanced settings → Object LockDisable

اجعل HTTPS إلزاميًا

أضف قاعدة للنقل دون جعل الحاوية عامة أو منح صلاحية الوصول إلى الكائنات.

أضف سياسة الحاوية

افتح Permissions → Bucket policy → Edit. استبدل قيمتَي EXAMPLE-BUCKET باسم حاويتك الكامل. إذا كانت هناك سياسة موجودة، فاحتفظ بقواعدها وأضف هذه القاعدة بعد مراجعة المستند كاملًا.

  1. راجع رسائل المحرر واختر Save changes.
  2. تأكد من حفظ القاعدة. أبقِ Block all public access مفعّلًا.
JSON لسياسة الحاوية
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyInsecureTransport",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::EXAMPLE-BUCKET",
        "arn:aws:s3:::EXAMPLE-BUCKET/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false",
          "aws:PrincipalIsAWSService": "false"
        }
      }
    }
  ]
}

أنشئ صلاحيات IAM محدودة

استخدم سياسة مخصصة لهذه الحاوية والبادئة، بدلًا من AdministratorAccess أو AmazonS3FullAccess.

أنشئ سياسة الإضافة

في IAM → Policies → Create policy → JSON، الصق المستند التالي. استبدل كل EXAMPLE-BUCKET باسم الحاوية الكامل. يجب أن تطابق البادئة alter-product حقل Folder prefix في WordPress؛ وإذا اخترت بادئة أخرى، فغيّرها في كل Resource خاص بالكائنات.

  1. تحقق من صحة السياسة، واختر Next، وسمّها مثلًا AlterProductS3Storage.
  2. اختر Create policy واحتفظ باسمها لاستخدامه عند إعداد المستخدم.
JSON لسياسة IAM
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ReadRequiredBucketControls",
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketVersioning",
        "s3:GetBucketOwnershipControls",
        "s3:GetBucketPublicAccessBlock",
        "s3:GetEncryptionConfiguration"
      ],
      "Resource": "arn:aws:s3:::EXAMPLE-BUCKET"
    },
    {
      "Sid": "WriteAndReadVersionedPluginObjects",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObjectVersion"
      ],
      "Resource": [
        "arn:aws:s3:::EXAMPLE-BUCKET/alter-product/objects/*",
        "arn:aws:s3:::EXAMPLE-BUCKET/alter-product/.storage-tests/*"
      ]
    },
    {
      "Sid": "RecoverJournalOwnedObjects",
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::EXAMPLE-BUCKET/alter-product/objects/*"
    },
    {
      "Sid": "DeleteOnlyConnectionTestVersions",
      "Effect": "Allow",
      "Action": "s3:DeleteObjectVersion",
      "Resource": "arn:aws:s3:::EXAMPLE-BUCKET/alter-product/.storage-tests/*"
    }
  ]
}

أنشئ مستخدمًا مخصصًا ومفتاح وصول

اختر IAM → Users → Create user. اترك Provide user access to the AWS Management Console غير محدد.

  1. اختر Next → Attach policies directly وأرفق السياسة أعلاه فقط. أكمل Create user.
  2. افتح Security credentials → Access keys → Create access key لذلك المستخدم. لهذا الإعداد اليدوي للإضافة، اختر Other → Next ثم Create access key.
  3. احفظ Access key ID وSecret access key في مدير كلمات مرور. يظهر المفتاح السري مرة واحدة فقط. أدخلهما مباشرة في WordPress عبر HTTPS، ولا تشاركهما في الرسائل أو لقطات الشاشة.

احفظ اتصال WordPress واختبره

افتح Alter Product → Settings → Storage في لوحة تحكم المتجر عبر HTTPS. اختر AWS S3 ثم + / Add connection.

أدخل تفاصيل الاتصال

اختر New connection. تتوفر الإرشادات المدمجة نفسها ضمن AWS S3 setup guide.

  1. اختر Save connection وانتظر التأكيد.
  2. اختر Test connection. احفظ أي تعديلات قبل إعادة الاختبار.
  3. تحقق من النتيجة في النافذة وعمود Last connection test. إفراغ حقول المفاتيح بعد الحفظ مقصود.
حقول الاتصال في WordPress
الحقلالقيمة
Bucket nameاسم الحاوية الكامل، وليس ARN أو رابط s3:// أو عنوان HTTPS؛ دون نقاط.
Folder prefixalter-product، بما يطابق سياسة IAM. استخدم الأحرف والأرقام والشرطات والشرطات السفلية والمجلدات المفصولة؛ دون شرطة مائلة في البداية أو النهاية.
Bucket owner AWS account IDمعرّف حساب المالك المكوّن من 12 رقمًا، دون مسافات.
AWS regionالمنطقة الفعلية للحاوية. القيمة الافتراضية في النموذج هي eu-central-1.
AWS access key ID / AWS secret access keyزوج المفاتيح المحفوظ للمستخدم المخصص في IAM.
Use temporary AWS credentialsاتركه غير محدد عند استخدام المفتاح طويل الأجل لهذا المستخدم في IAM. فعّله فقط لبيانات الاعتماد المؤقتة وأدخل AWS session token.

إذا فشل اختبار الاتصال

تحقق من اسم الحاوية والمالك والمنطقة والإعدادات المطلوبة وتطابق البادئة تمامًا في WordPress وIAM. اترك CORS فارغًا؛ ولا تعطّل حماية الوصول العام.

تحدد الحاوية والبادئة والمالك والمنطقة المحفوظة هوية الاتصال. لوجهة مختلفة، اختر New connection. يُستخدم Edit → Reconnect لاستبدال بيانات الاعتماد مع الحفاظ على مراجع الملفات الموجودة.

أرسل نتيجة الاختبار إلى الدعم دون مفاتيح الوصول. يجب أن ينجح اختبار الاتصال قبل اختيار S3 هذا بوصفه التخزين الافتراضي.

اختر التخزين الافتراضي وانقل الملفات الموجودة

تحديد الوجهة الافتراضية والترحيل عمليتان منفصلتان.

استخدم S3 للمجموعات الجديدة

اختر Make default في صف الاتصال المحفوظ. تختبر الإضافة الاتصال ولا تغيّر التخزين الافتراضي إلا بعد النجاح. ينطبق ذلك على مجموعات الملفات الجديدة؛ أما المجموعات الموجودة ومراجعاتها اللاحقة فتحتفظ بوجهتها المسجلة حتى تُرحّل.

انقل المجموعات الموجودة المدعومة

قبل أول ترحيل، انسخ قاعدة البيانات وقيم salts في WordPress والملفات احتياطيًا معًا. ابدأ ببيئة اختبار أو مجموعة صغيرة. افتح Migrate في صف S3 الهدف؛ فتح اللوحة وحده لا ينسخ الملفات.

يشمل Auto migration المجموعات المدعومة الموجودة خارج الوجهة المختارة. ولا يعني نقل ملفات WordPress الأخرى غير التابعة لهذا النطاق.

  1. اختر Start migration. تختبر الإضافة S3 وتُعدّ كل مجموعة وتنسخها وتتحقق منها ثم تبدّل مراجعها.
  2. اترك الصفحة مفتوحة. يوقف Pause العمل بعد المجموعة الحالية، ويكمل Resume migration من التقدم المحفوظ. إذا أغلقت الصفحة، فأعد فتحها لاستئناف تنفيذ الخطوات التالية.
  3. إذا فشلت مجموعة، فراجع الرسالة وAdvanced، وصحح السبب، ثم استأنف. لا تكرر دون تحقق عمليةً لا تعرف نتيجة رفع ملفاتها.
  4. بعد Migration completed، اختبر القراءة المعتادة للموارد وتحريرها ومعاينتها والوصول إلى ملفات الطلبات. قد تحتاج المجموعات التي أُنشئت أثناء المسح إلى تشغيل آخر.

إزالة الصف لا تحذف الملفات المحفوظة

بدّل التخزين الافتراضي أولًا عند الحاجة. يزيل Remove الاتصال من القائمة، مع بقاء الملفات الموجودة وبيانات اعتمادها المحفوظة متاحة. وليس أمرًا لتنظيف كائنات AWS.

شارك التخزين بين عُقد WordPress

قد تقلل وجهة S3 المشتركة الاعتماد على قرص ملفات عقدة واحدة. لكن موزّع الحمل ما يزال يحتاج إلى تثبيت WordPress ذي حالة مشتركة مُعدّ بصورة صحيحة.

متطلبات تشغيل عدة عُقد

لتشغيل تثبيت WordPress واحد خلف موزّع حمل، وفّر جميع المتطلبات التالية معًا:

  • جهة كتابة SQL واحدة متسقة وحالة مشتركة لقاعدة بيانات الإضافة.
  • مجلد uploads مشترك للملفات التي لا تزال محلية ولمصادر الترحيل المحتفظ بها.
  • قيم salts الأصلية نفسها في WordPress على كل عقدة، لقراءة بيانات الاعتماد المحفوظة والملفات المشفرة.
  • مجلد مؤقت خاص على كل عقدة لأعمال نقل الملفات.
  • إعدادات متسقة للإضافة وإمكانية الوصول إلى الحاوية الخاصة نفسها في S3 وإصدارات الكائنات.
  • استخدم wpdb القياسي مع mysqli الأصلي وجداول InnoDB. لا تدعم الإضافة بدائل توجيه قاعدة البيانات مثل HyperDB؛ موازنة الحمل هنا على مستوى HTTP.

حافظ على إمكانية الاستعادة وتدوير المفاتيح

احتفظ بقاعدة البيانات وقيم salts وإصدارات الملفات المشار إليها معًا.

انسخ احتياطيًا وأعد الاتصال وتحقق

استخدم Edit → Reconnect لاستبدال بيانات اعتماد الاتصال المحفوظ نفسه. قبل إلغاء المفتاح القديم، اختبر قراءة الملفات الحالية والسابقة، بما في ذلك الاتصالات المحفوظة الأخرى التي قد لا تزال تستخدمه.

أبقِ ميزة الإصدارات في S3 مفعّلة واحتفظ بالإصدارات التي تشير إليها الإضافة. لا تطبّق تنظيف lifecycle يحذف الإصدارات السابقة اللازمة. اختبر استعادة قاعدة البيانات وقيم salts والملفات المحفوظة معًا.

تنتهي صلاحية بيانات الاعتماد المؤقتة، وتحتاج إلى رمز ومفاتيح جديدة صالحة؛ لا تجدّدها الإضافة تلقائيًا. راقب استخدام AWS ونقل بيانات الاستضافة مع نمو المتجر.