تتيح لك Cloud Storage for Firebase تحميل المحتوى الذي ينشئه المستخدمون ومشاركته، مثل الصور والفيديوهات، ما يسمح لك بإنشاء محتوى وسائط تفاعلية متقدّمة في تطبيقاتك. يتم تخزين بياناتك في مجموعة Google Cloud Storage، وهي حل لتخزين الكائنات على نطاق إكسا بايت يتميّز بتوفّر عالٍ وتكرار عالمي. Cloud Storage for Firebase تتيح لك تحميل هذه الملفات بأمان مباشرةً من الأجهزة الجوّالة ومتصفّحات الويب، والتعامل بسهولة مع الشبكات المتقطّعة.
قبل البدء
إذا لم يسبق لك ذلك، تأكَّد من إكمال دليل البدء لتطبيقات الويب. ويشمل ذلك ما يلي:
إنشاء مشروع Firebase
تسجيل تطبيق الويب في المشروع وربط تطبيقك بـ Firebase من خلال إضافة حزمة Firebase JS SDK وكائن إعداد Firebase إلى تطبيقك
تأكَّد من أنّ مشروع Firebase الخاص بك يستخدم خطة Blaze المَرِنة للدفع حسب الاستخدام، وهو شرط بدأ تطبيقه في أكتوبر 2024 (راجِع الأسئلة الشائعة). إذا كنت جديدًا على Firebase وGoogle Cloud، تحقَّق مما إذا كنت مؤهلاً للحصول على رصيد بقيمة 300 دولار أمريكي.
إنشاء مجموعة Cloud Storage تلقائية
من لوحة التنقّل في وحدة تحكّم Firebase، انقر على التخزين.
إذا لم يكن مشروعك بعد على خطة Blaze المَرِنة للدفع حسب الاستخدام، سيُطلب منك ترقية مشروعك.
انقر على البدء.
اختَر موقعًا لمجموعتك التلقائية.
يمكن للمجموعات في
وUS-CENTRAL1 وUS-EAST1 الاستفادة من المستوى "دائمًا مجاني" في Google Cloud Storage. تخضع المجموعات في جميع المواقع الأخرى لتسعير Google Cloud Storage واستخدامه.US-WEST1إذا أردت، يمكنك لاحقًا إنشاء مجموعات متعددة، لكل منها موقعها الخاص.
اضبط Firebase Security Rules لمجموعتك التلقائية. أثناء التطوير، ننصحك بـ إعداد قواعد الوصول العلني.
انقر على تم.
يمكنك الآن عرض المجموعة في علامة التبويب
Cloud Storage الملفات
ضمن وحدة تحكّم Firebase. يكون تنسيق اسم المجموعة التلقائية
PROJECT_ID.firebasestorage.app
إعداد الوصول العلني
Cloud Storage for Firebase توفّر لغة قواعد إعلانية تتيح لك تحديد كيفية تنظيم بياناتك وفهرستها، ومتى يمكن قراءتها وكتابتها. يكون الوصول للقراءة والكتابة إلى Cloud Storage محدودًا تلقائيًا، لذا لا يمكن للمستخدمين غير المصادَق عليهم قراءة البيانات أو كتابتها. للبدء بدون إعداد Authentication، يمكنك ضبط قواعد الوصول العلني.
يؤدي ذلك إلى إتاحة Cloud Storage لأي مستخدم، حتى لو لم يكن يستخدم تطبيقك، لذا احرص على تقييد الوصول إلى Cloud Storage مرة أخرى عند إعداد المصادقة.
إضافة حزمة Cloud Storage JS SDK وإعداد Cloud Storage
يجب تحديد اسم مجموعة Cloud Storage عند إعداد حزمة JavaScript SDK.
يمكنك العثور على اسم مجموعة Cloud Storage في علامة التبويب Cloud Storage الملفات ضمن وحدة تحكّم Firebase. حسب تاريخ إنشاء مجموعتك التلقائية، سيكون اسم المجموعة بأحد التنسيقات التالية:
(المجموعة التلقائية التي تم إنشاؤها في 30 أكتوبر 2024 أو بعدهPROJECT_ID.firebasestorage.app) (المجموعة التلقائية التي تم إنشاؤها قبلPROJECT_ID.appspot.com30 أكتوبر 2024 )
يمكنك إعداد حزمة SDK باستخدام مقتطف الرمز البرمجي التالي:
Web
import { initializeApp } from "firebase/app"; import { getStorage } from "firebase/storage"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... storageBucket: 'BUCKET_NAME' }; // Initialize Firebase const app = initializeApp(firebaseConfig); // Initialize Cloud Storage and get a reference to the service const storage = getStorage(app);
Web
import firebase from "firebase/app"; import "firebase/compat/storage"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... storageBucket: 'BUCKET_NAME' }; // Initialize Firebase firebase.initializeApp(firebaseConfig); // Initialize Cloud Storage and get a reference to the service const storage = firebase.storage();
أنت الآن جاهز لبدء استخدام Cloud Storage.
ما هي الخطوة التالية؟ تعرَّف على كيفية إنشاء مرجع Cloud Storage.
عملية الإعداد المتقدّمة
هناك بعض حالات الاستخدام التي تتطلّب إعدادًا إضافيًا:
- استخدام مجموعات Cloud Storage في مناطق جغرافية متعددة
- استخدام مجموعات Cloud Storage في فئات تخزين مختلفة
- استخدام مجموعات Cloud Storage مع عدة مستخدمين مصادَق عليهم في التطبيق نفسه
تكون حالة الاستخدام الأولى مثالية إذا كان لديك مستخدمون في جميع أنحاء العالم وأردت تخزين بياناتهم بالقرب منهم. على سبيل المثال، يمكنك إنشاء مجموعات في الولايات المتحدة وأوروبا وآسيا لتخزين بيانات المستخدمين في هذه المناطق من أجل تقليل وقت الاستجابة.
تكون حالة الاستخدام الثانية مفيدة إذا كانت لديك بيانات بأنماط وصول مختلفة. على سبيل المثال، يمكنك إعداد مجموعة متعددة المناطق أو إقليمية تخزّن الصور أو المحتوى الآخر الذي يتم الوصول إليه بشكل متكرر، ومجموعة nearline أو coldline تخزّن نُسخ احتياطية للمستخدمين أو محتوى آخر لا يتم الوصول إليه بشكل متكرر.
في أيّ من حالات الاستخدام هذه، ننصحك بـ استخدام عدة مجموعاتCloud Storage Cloud Storage.
تكون حالة الاستخدام الثالثة مفيدة إذا كنت تنشئ تطبيقًا، مثل Google Drive، يتيح للمستخدمين تسجيل الدخول باستخدام حسابات متعددة (على سبيل المثال، حساب شخصي وحساب عمل). يمكنك استخدام مثيل مخصّص من Firebase App لمصادقة كل حساب إضافي.
استخدام عدة مجموعات Cloud Storage
إذا أردت استخدام مجموعة Cloud Storage غير المجموعة التلقائية الموضّحة
سابقًا في هذا الدليل، أو استخدام عدة مجموعات Cloud Storage في تطبيق واحد، يمكنك
إنشاء مثيل من firebase.storage يشير إلى مجموعتك المخصّصة:
Web
import { getApp } from "firebase/app"; import { getStorage } from "firebase/storage"; // Get a non-default Storage bucket const firebaseApp = getApp(); const storage = getStorage(firebaseApp, "gs://my-custom-bucket");
Web
// Get a non-default Storage bucket var storage = firebase.app().storage("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 مخصّص
إذا كنت تنشئ تطبيقًا أكثر تعقيدًا باستخدام firebase.app.App مخصّص، يمكنك إنشاء مثيل من firebase.storage.Storage تم إعداده باستخدام هذا التطبيق:
Web
import { getStorage } from "firebase/storage"; // Get the default bucket from a custom firebase.app.App const storage1 = getStorage(customApp); // Get a non-default bucket from a custom firebase.app.App const storage2 = getStorage(customApp, "gs://my-custom-bucket");
Web
// Get the default bucket from a custom firebase.app.App var storage = customApp.storage(); // Get a non-default bucket from a custom firebase.app.App var storage = customApp.storage("gs://my-custom-bucket");
الخطوات التالية
الاستعداد لإطلاق تطبيقك:
فعِّل App Check للمساعدة في ضمان عدم إمكانية وصول سوى تطبيقاتك إلى مجموعات التخزين.
اضبط تنبيهات الميزانية لمشروعك في Google Cloud Console.
راقِب لوحة بيانات الاستخدام والفوترة في وحدة تحكّم Firebase للحصول على صورة عامة عن استخدام مشروعك لخدمات Firebase المتعددة. يمكنك أيضًا الانتقال إلى لوحة بيانات Cloud Storage الاستخدام للحصول على معلومات أكثر تفصيلاً عن الاستخدام.