بدء استخدام Cloud Storage لـ C++

Cloud Storage for Firebase تتيح لك تحميل المحتوى الذي ينشئه المستخدمون ومشاركته، مثل الصور والفيديوهات، ما يسمح لك بإنشاء محتوى وسائط تفاعلية متقدّمة في تطبيقاتك. يتم تخزين بياناتك في حاوية Google Cloud Storage، وهي حل لتخزين الكائنات على نطاق إكسا بايت يتميّز بتوفّر عالٍ وتكرار على مستوى العالم. Cloud Storage for Firebase تتيح لك تحميل هذه الملفات بأمان مباشرةً من الأجهزة الجوّالة ومتصفّحات الويب، والتعامل بسهولة مع الشبكات غير المستقرة.

قبل البدء

قبل أن تتمكّن من استخدام Cloud Storage, عليك تنفيذ ما يلي:

  • تسجيل مشروعك بلغة C++ وإعداده لاستخدام Firebase

    إذا كان مشروعك بلغة C++ يستخدم Firebase، يكون قد تم تسجيله وإعداده لاستخدام Firebase.

  • إضافة حزمة Firebase C++ SDK إلى مشروعك بلغة C++

يُرجى العِلم أنّ إضافة Firebase إلى مشروعك بلغة C++ تتضمّن مهامًا في كلّ من الـ Firebase Console ومشروعك المفتوح بلغة C++ (على سبيل المثال، يمكنك تنزيل ملفات إعداد Firebase من وحدة التحكّم، ثم نقلها إلى مشروعك بلغة C++).

يُرجى أيضًا التأكّد من أنّ مشروع Firebase الخاص بك يستخدم خطة Blaze المَرِنة للدفع حسب الاستخدام ، وهي شرط لاستخدام Cloud Storage for Firebase. إذا كنت تستخدم Firebase و Google Cloudللمرة الأولى، تحقَّق مما إذا كنت مؤهلاً للحصول على رصيد تجريبي مجاني بقيمة 300 دولار أمريكي.

إنشاء حاوية Cloud Storage تلقائية

  1. في Firebase Console، انتقِل إلى قواعد البيانات ومساحة التخزين > مساحة التخزين.

    إذا لم يكن مشروعك بعد على خطة Blaze المَرِنة للدفع حسب الاستخدام، سيُطلب منك ترقية مشروعك.

  2. انقر على البدء.

  3. اختَر موقعًا لحاويتك التلقائية.

  4. اضبط Firebase Security Rules لحاويتك التلقائية. أثناء التطوير، ننصحك بـ إعداد قواعدك للوصول العلني.

  5. انقر على تم.

يمكنك الآن عرض الحاوية في Firebase console (انتقِل إلى قواعد البيانات ومساحة التخزين > مساحة التخزين > الملفات tab). يكون تنسيق اسم الحاوية التلقائية PROJECT_ID.firebasestorage.app.

إعداد الوصول العلني

Cloud Storage for Firebase توفّر لغة قواعد إعلانية تتيح لك تحديد كيفية تنظيم بياناتك وفهرستها، ومتى يمكن قراءتها وكتابتها. يكون الوصول للقراءة والكتابة إلى Cloud Storage محدودًا تلقائيًا، لذا لا يمكن للمستخدمين غير المصادَق عليهم قراءة البيانات أو كتابتها. للبدء بدون إعداد Authentication، يمكنك ضبط قواعدك للوصول العلني.

يؤدي ذلك إلى إتاحة Cloud Storage لأي مستخدم، حتى لو لم يكن يستخدم تطبيقك، لذا احرص على تقييد الوصول إلى Cloud Storage مرة أخرى عند إعداد المصادقة.

إنشاء firebase::App وتهيئته

قبل أن تتمكّن من الوصول إلى Cloud Storage، عليك إنشاء firebase::App وتهيئته.

أدرِج ملف العنوان لـ firebase::App:

#include "firebase/app.h"

Android

أنشِئ firebase::App، مع تمرير بيئة JNI ومرجع jobject إلى نشاط Java كمعلَمات:

app = App::Create(AppOptions(), jni_env, activity);

iOS+

أنشِئ firebase::App:

app = App::Create(AppOptions());

الوصول إلى الفئة firebase::storage::Storage

الفئة firebase::storage::Storage هي نقطة الدخول إلى حزمة Cloud Storage C++ SDK.

Storage* storage = Storage::GetInstance(app);

أنت الآن جاهز لبدء استخدام Cloud Storage.

ما هي الخطوة التالية؟ تعرَّف على كيفية إنشاء مرجع Cloud Storage.

عملية الإعداد المتقدّمة

هناك بعض حالات الاستخدام التي تتطلّب إعدادًا إضافيًا:

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

تكون حالة الاستخدام الثانية مفيدة إذا كانت لديك بيانات بأنماط وصول مختلفة. على سبيل المثال، يمكنك إعداد حاوية متعددة المناطق أو إقليمية تخزّن الصور أو المحتوى الآخر الذي يتم الوصول إليه بشكل متكرر، وحاوية nearline أو coldline تخزّن نُسخًا احتياطية للمستخدمين أو محتوى آخر لا يتم الوصول إليه بشكل متكرر.

في أيّ من حالات الاستخدام هذه، عليك استخدام حاويات Cloud Storage متعددة.

تكون حالة الاستخدام الثالثة مفيدة إذا كنت تنشئ تطبيقًا، مثل Google Drive، يتيح للمستخدمين تسجيل الدخول باستخدام حسابات متعددة (على سبيل المثال، حساب شخصي وحساب عمل). يمكنك استخدام مثيل مخصّص من Firebase App لمصادقة كل حساب إضافي.

استخدام حاويات متعددةCloud Storage

إذا أردت استخدام حاوية Cloud Storage غير الحاوية التلقائية الموضّحة أعلاه، أو استخدام حاويات Cloud Storage متعددة في تطبيق واحد، يمكنك إنشاء مثيل من firebase::storage::Storage يشير إلى الحاوية المخصّصة:

// Get a non-default Cloud Storage bucket
Storage* storage = Storage::GetInstance("gs://my-custom-bucket");

العمل مع الحاويات المستورَدة

عند استيراد حاوية Cloud Storage حالية إلى Firebase، عليك منح Firebase إمكانية الوصول إلى هذه الملفات باستخدام أداة gsutil المضمّنة في Google Cloud SDK:

gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://BUCKET_NAME

يمكنك العثور على رقم مشروعك كما هو موضّح في الـ مقدّمة لمشاريع Firebase.

لا يؤثر ذلك في الحاويات التي تم إنشاؤها حديثًا، لأنّ عناصر التحكّم التلقائية في الوصول إليها تكون مضبوطة على السماح لـ Firebase. هذا إجراء مؤقت وسيتم تنفيذه تلقائيًا في المستقبل.

استخدام Firebase App مخصّص

إذا كنت تنشئ تطبيقًا أكثر تعقيدًا باستخدام firebase::App مخصّص، يمكنك إنشاء مثيل من firebase::storage::Storage تم تهيئته باستخدام هذا التطبيق:

// Get the default bucket from a custom firebase::App
Storage* storage = Storage::GetInstance(customApp);

// Get a non-default bucket from a custom firebase::App
Storage* storage = Storage::GetInstance(customApp, "gs://my-custom-bucket");

الخطوات التالية