بدء استخدام Cloud Storage على الويب

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

قبل البدء

  1. تأكَّد من إكمال قراءة دليل بدء استخدام تطبيقات الويب، إذا لم يسبق لك ذلك. ويشمل ذلك ما يلي:

    • إنشاء مشروع على Firebase

    • تسجيل تطبيق الويب في المشروع، وربط تطبيقك بـ Firebase من خلال إضافة حزمة تطوير البرامج (SDK) لـ Firebase JS وعنصر إعدادات Firebase إلى تطبيقك

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

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

  1. من لوحة التنقّل في وحدة تحكّم Firebase، اختَر مساحة التخزين.

    إذا لم يكن مشروعك مشتركًا في خطة أسعار Blaze المستندة إلى الدفع عند الاستخدام بعد، سيتم إعلامك بضرورة ترقية مشروعك.

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

  3. اختَر موقعًا جغرافيًا للحزمة التلقائية.

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

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

يمكنك الآن عرض الحزمة في علامة التبويب Cloud Storage الملفات في وحدة تحكّم Firebase. تنسيق اسم الحزمة التلقائي هو PROJECT_ID.firebasestorage.app.

إعداد إمكانية الوصول العلني

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

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

إضافة حزمة تطوير البرامج (SDK) لCloud Storage JS وإعداد Cloud Storage

يجب تحديد اسم حزمة Cloud Storage عند بدء استخدام حزمة تطوير البرامج (SDK) لـ JavaScript.

يمكنك العثور على اسم حزمة Cloud Storage في علامة التبويب Cloud Storage الملفات في وحدة تحكّم Firebase. استنادًا إلى وقت إنشاء الحزمة التلقائية، سيكون اسم الحزمة بأحد التنسيقَين التاليَين:

  • PROJECT_ID.firebasestorage.app (الحزمة التلقائية التي تم إنشاؤها في 30 تشرين الأول (أكتوبر) 2024 أو بعد هذا التاريخ)
  • PROJECT_ID.appspot.com (الحزمة التلقائية التي تم إنشاؤها قبل ‫30 تشرين الأول (أكتوبر) 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 متعددة.

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

استخدام حِزم 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 المضمّنة في حزمة تطوير البرامج (SDK) لنظامGoogle Cloud:

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");

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