تخطي إلى المحتوى
CivoCloudManager

تصفّح Civo Object Storage عبر S3 على macOS.

نقطة النهاية الإقليمية، وإعدادات عاملة لـ s3cmd وrclone وAWS CLI، وما يفعله العميل الأصلي بشكل مختلف.

يتحدث Civo Object Storage بلغة S3، فأي عميل S3 تقريبًا يستطيع التخاطب معه متى صحّ أمران: نقطة نهاية المنطقة التي يقع فيها المتجر، وبيانات اعتماد أُنشئت في المنطقة نفسها. تشرح وثائق Civo نفسها s3cmd وتترك بقية الأدوات لك. هذه الصفحة تعطيك الإعداد الخام لـ s3cmd وrclone وAWS CLI، ثم تعرض المسار الذي يسلكه CivoCloudManager، وهو قراءة نقطة النهاية ومفاتيح الوصول مباشرة من Civo API فلا يبقى شيء تضبطه بيدك.

ضبط عميل S3 لـ Civo

  1. 01

    اعرف نقطة النهاية الخاصة بمنطقتك.

    تبني Civo نقاط نهاية المتاجر على الشكل https://objectstore.<region>.civo.com مع رمز المنطقة بحروف صغيرة، فمتجر في لندن يُوصل عبر https://objectstore.lon1.civo.com وآخر في فرانكفورت عبر https://objectstore.fra1.civo.com. وكل متجر يطبع نقطة نهايته في لوحة Civo ويعيدها في حقل objectstore_endpoint في REST API. وبحسب نظرة Civo العامة على ميزات المناطق، تتوفر المتاجر في LON1 وFRA1 وNYC1 وMUM1، ولا تتوفر في PHX1.

  2. 02

    أنشئ بيانات اعتماد في المنطقة نفسها.

    كل Object Store في Civo خاص ويحتاج معرّف مفتاح وصول ومفتاحًا سريًا. أنشئ بيانات الاعتماد في لوحة Civo تحت Object Stores ومنتقي المنطقة مضبوط على منطقة المتجر، أو عبر Civo CLI. والأمر civo objectstore credential export -a <access_key> يطبع الزوج بصيغة AWS_ACCESS_KEY_ID وAWS_SECRET_ACCESS_KEY وAWS_DEFAULT_REGION وAWS_HOST، جاهزة للصق في الصدفة.

  3. 03

    s3cmd: الحقلان host_base وhost_bucket.

    في ~/.s3cfg، تحت [default]، اضبط host_base = objectstore.fra1.civo.com وhost_bucket = objectstore.fra1.civo.com وbucket_location = fra1 وuse_https = True وsignature_v2 = False، إضافة إلى access_key وsecret_key. وإعطاء host_bucket الاسم المضيف نفسه الذي في host_base يبقي s3cmd على العنونة بنمط المسار، وهو ما تجيب عليه Civo. بعدها يسرد s3cmd ls متاجرك، وs3cmd ls s3://STORENAME يسرد واحدًا، وs3cmd put file.tar s3://STORENAME/backups/ يرفع، وs3cmd get -r s3://STORENAME/backups/ ينزّل بادئة كاملة. ومن دون ملف إعدادات تذهب القيمتان نفساهما إلى سطر الأوامر كـ --host= و--host-bucket=.

  4. 04

    rclone: بعيد من نوع s3 ومزود Other.

    شغّل rclone config واختر s3، أو اكتب الكتلة في ~/.config/rclone/rclone.conf مباشرة: تحت [civo] اضبط type = s3 وprovider = Other وenv_auth = false وaccess_key_id وsecret_access_key من بيانات الاعتماد، وregion = fra1، وendpoint = https://objectstore.fra1.civo.com، وacl = private. بعدها يسرد rclone lsd civo: المتاجر، وrclone ls civo:STORENAME يسرد الملفات، وrclone copy ./dir civo:STORENAME/dir -P يزامن مجلدًا صعودًا مع تقدم مرئي، وrclone ncdu civo:STORENAME يعطيك متصفحًا نصيًا. والإعدادات نفسها تعمل كرايات لمرة واحدة: --s3-provider Other --s3-endpoint https://objectstore.fra1.civo.com --s3-region fra1.

  5. 05

    AWS CLI: الراية --endpoint-url مع كل استدعاء.

    لا تحتاج AWS CLI أي إضافة خاصة بـ Civo، بل نقطة النهاية في كل أمر: aws s3 ls --endpoint-url https://objectstore.fra1.civo.com، ثم aws s3 ls s3://STORENAME --endpoint-url ... وaws s3 cp file.tar s3://STORENAME/ --endpoint-url ... . وتأتي بيانات الاعتماد من AWS_ACCESS_KEY_ID وAWS_SECRET_ACCESS_KEY أو من ملف تعريف مسمى، مع ضبط AWS_DEFAULT_REGION على رمز منطقة Civo كي يطابق نطاق Signature V4. وهامش للإصدارات الحديثة: تضيف AWS CLI 2.23 وما بعدها مجموع تحقق CRC64NVME إلى عمليات الرفع افتراضيًا، وليست كل نقطة نهاية متوافقة مع S3 تقبله، فإن فشل رفع بخطأ مجموع تحقق اضبط AWS_REQUEST_CHECKSUM_CALCULATION=when_required وAWS_RESPONSE_CHECKSUM_VALIDATION=when_required.

المصيدة التي تكلفك ساعة: المفاتيح مقيدة بمنطقة واحدة

وثائق Civo صريحة في جملتين يسهل تجاوزهما بالنظر: المتاجر خاصة بالمناطق، وبيانات الاعتماد لإدارة المتاجر والوصول إليها مرتبطة بالمنطقة التي أُنشئت فيها. مفتاح صُنع واللوحة على FRA1 لن يُصادق عليه مقابل نقطة نهاية LON1، رغم أنه الحساب نفسه والفوترة نفسها. والعرض خطأ مصادقة أو توقيع يشبه خطأ مطبعيًا في المفتاح السري، فيكون رد الفعل الطبيعي إعادة توليد المفتاح، وهو ما ينتج مفتاحًا آخر في المنطقة الخاطئة نفسها. راجع منتقي المنطقة أولًا، وأنشئ بيانات الاعتماد بجوار المتجر، ثم بعد ذلك فقط اشتبه بالإعدادات.

ما لا يغطيه سطر الأوامر

للسكربتات والنسخ الاحتياطي وCI، تبقى s3cmd وrclone وAWS CLI الجواب الصحيح ولا شيء هنا يحل محلها. أما ما لا تعطيك إياه فهو نظرة إلى المتجر: شجرة مجلدات، وأحجام تراها بلمحة، وتحديد تسحبه خارجًا. عملاء S3 العامون على Mac مثل Cyberduck أو Transmit يسدّون تلك الفجوة، لكنهم لا يعرفون شيئًا عن Civo، فتدخل نقطة النهاية وتلصق المفتاحين لكل متجر وتبقيهما متزامنين بيدك كلما دُوِّرت بيانات اعتماد.

مسار التطبيق: لا نقطة نهاية تدخلها أصلًا

يصادق CivoCloudManager مرة واحدة بمفتاح Civo API ويقرأ قائمة Object Stores من Civo REST API v2، وهي تحمل أصلًا نقطة النهاية وبيانات الاعتماد المرتبطة بكل متجر. ومن ذلك يبني عميل S3، فلا حقل نقطة نهاية ولا لصق مفاتيح ولا ملف إعدادات. وطبقة S3 هي Swift خالصة: AWS Signature V4 محسوبة بـ HMAC-SHA256 من CryptoKit، بلا AWS SDK وبلا Electron. تقوم بـ ListObjects v2 مع رموز المتابعة، وتنقّل بمسار تنقل فوق البادئات المشتركة، وتحديد متعدد، وتنزيل مجلدات بشكل متكرر مع سطر تقدم متحرك. وبصراحة عن شكلها: المتصفح يقرأ وينزّل. أما الرفع والحذف فيبقيان لـ s3cmd أو rclone. ويتطلب التطبيق macOS 15 أو أحدث.

مفاتيح الوصول خلف Touch ID بدل ملف مخفي

هذا الجزء يستحق التثبيت وحده حتى لو أبقيت الـ CLI. إعداد s3cmd عامل يعني أن المفتاح السري يجلس في ~/.s3cfg كنص صريح، والأمر نفسه ينطبق على rclone.conf و~/.aws/credentials. وأي عملية تعمل باسم مستخدمك تستطيع قراءة الثلاثة، وكذلك أي شيء يمشي في مجلدك الشخصي. يحفظ CivoCloudManager مفتاح Civo API في macOS Keychain، وكشف مفتاح الوصول السري لأي Object Store في الواجهة يتطلب Touch ID أو كلمة سر النظام أولًا. والحد واضح ويستحق القول: لحظة نسخك مفتاحًا إلى الطرفية، يعود ملفًا بنص صريح.

الإيقاف والاستئناف للمتاجر التي لا تستخدمها

المتجر الخامل يظل يُحتسب عليك بحجمه المخصص. ينسخ الإيقاف كل ملف إلى Object Store مركزي اسمه civo-cloud-manager، ويوسّع تلك الخزنة أولًا إن لم تتسع البيانات، ويقارن المفاتيح والأحجام المنسوخة بالمصدر، ولا يحذف المتجر الأصلي إلا حين تتطابق. فيختفي البند من فاتورة Civo. ويعيد الاستئناف إنشاء المتجر بالاسم نفسه وبيانات الاعتماد نفسها، وينسخ الملفات عائدة، ويتحقق من المفاتيح والأحجام من جديد، ثم يفرّغ الخزنة. وتتحرك أربعة ملفات في وقت واحد على الأكثر. والحدود الصريحة: التحقق يقارن الأسماء والأحجام لا تجزئة المحتوى، والنقل يخزّن الملفات كاملة في الذاكرة، وملف manifest البعيد يُكتب بعد حذف المصدر، مع manifest محلي كبديل احتياطي.

أي عميل لأي مهمة

الأربعة يتحدثون إلى S3 API نفسها على نقطة النهاية نفسها. والفرق في مكان الإعدادات، وأين ينتهي المفتاح السري، وما الذي تستطيع رؤيته.

المهمة s3cmdrcloneAWS CLICivoCloudManager
إعداد نقطة النهاية host_base وhost_bucket في ~/.s3cfgendpoint داخل البعيد--endpoint-url مع كل استدعاءتُقرأ من Civo API
أين ينتهي المفتاح السري ~/.s3cfg، نص صريحrclone.conf، نص صريح~/.aws/credentials، نص صريحmacOS Keychain، وTouch ID للكشف
تصفح متجر بصريًا لاrclone ncdu، بوضع نصيلانعم، متصفح ملفات بمسار تنقل
رفع الملفات وحذفها نعمنعمنعمليس في المتصفح
تنزيل مجلد بشكل متكرر s3cmd get -rrclone copyaws s3 cp --recursiveنعم، مع تقدم مرئي
إيقاف متجر خامل للتوقف عن الدفع لالالانعم، خزنة مع تحقق قبل الحذف
يعمل في CI نعمنعمنعملا، هو تطبيق Mac

Civo Object Storage عبر S3، بإجابات

ما عنوان نقطة نهاية Civo Object Storage؟
تتبع نقاط نهاية متاجر Civo النمط https://objectstore.<region>.civo.com مع رمز المنطقة بحروف صغيرة، مثل https://objectstore.lon1.civo.com في لندن أو https://objectstore.fra1.civo.com في فرانكفورت. وتعتمد نقطة النهاية على المنطقة التي أُنشئ فيها المتجر. وكل متجر يعرض نقطة نهايته في لوحة Civo ويعيدها في حقل objectstore_endpoint في Civo REST API.
هل أستطيع استخدام s3cmd أو rclone مع Civo Object Storage؟
نعم، الاثنان يعملان، وكذلك AWS CLI وأي عميل آخر متوافق مع S3. لـ s3cmd، اضبط host_base وhost_bucket في ~/.s3cfg على الاسم المضيف الإقليمي مثل objectstore.fra1.civo.com واملأ access_key وsecret_key. ولـ rclone، أنشئ بعيدًا بـ type = s3 وprovider = Other وendpoint = https://objectstore.fra1.civo.com وزوج المفاتيح نفسه. ولـ AWS CLI، مرّر --endpoint-url https://objectstore.fra1.civo.com مع كل أمر.
لماذا لا يعمل مفتاح الوصول إلى Civo Object Storage عندي؟
السبب المعتاد هو المنطقة. تقول Civo إن المتاجر خاصة بالمناطق وإن بيانات الاعتماد مرتبطة بالمنطقة التي أُنشئت فيها، فمفتاح أُنشئ في FRA1 لن يُصادق عليه مقابل نقطة نهاية LON1 رغم انتمائه إلى الحساب نفسه. أنشئ بيانات الاعتماد واللوحة مضبوطة على منطقة المتجر. والسبب الشائع الثاني عميل لم يتلقَّ نقطة النهاية أصلًا، أو host_bucket في s3cmd تُرك على قيمته الافتراضية، فيذهب الطلب إلى Amazon بدل Civo.
هل توجد واجهة رسومية لـ Civo Object Storage على Mac؟
CivoCloudManager تطبيق macOS أصلي، لـ macOS 15 أو أحدث، على Mac App Store، وهو يعرف Civo: يقرأ نقطة النهاية ومفاتيح الوصول لكل متجر من Civo API فلا يبقى شيء تضبطه. يتصفح بمسار تنقل وينزّل ملفات مفردة أو تحديدًا متعددًا أو مجلدًا كاملًا بشكل متكرر، بينما يبقى الرفع والحذف للـ CLI. وعملاء S3 العامون مثل Cyberduck أو Transmit يتصلون بـ Civo أيضًا متى كتبت نقطة النهاية ولصقت المفتاحين لكل متجر.
ماذا يفعل الإيقاف ببياناتي في Civo Object Store؟
ينسخ الإيقاف كل ملف إلى Object Store مركزي اسمه civo-cloud-manager داخل حساب Civo الخاص بك، ويقارن المفاتيح والأحجام المنسوخة بالمصدر، ثم يحذف المتجر الأصلي فيتوقف عن التكلفة. ويعيد الاستئناف إنشاء المتجر بالاسم نفسه وبيانات الاعتماد نفسها، وينسخ الملفات عائدة، ويتحقق من المفاتيح والأحجام قبل تفريغ الخزنة. والبيانات لا تغادر حساب Civo الخاص بك، والتحقق بالاسم والحجم لا بتجزئة المحتوى.

تخطَّ ضبط نقطة النهاية.

يقرأ CivoCloudManager نقطة النهاية ومفاتيح الوصول من حساب Civo الخاص بك، فيفتح المتجر بدل أن يطلب ملف إعدادات. طبقة شريط قوائم مجانية، وشراء لمرة واحدة للوحة الكاملة على Mac App Store.