في التطبيقات العادية، على المطوّرين إنشاء العديد من الخوادم وصيانتها. والمصادقة والتفويض والتحقق من صحة البيانات، وكذلك ومنطق الأعمال. تستفيد التطبيقات التي تستخدم Cloud Storage for Firebase من Firebase Authentication وFirebase Security Rules على Cloud Storage للتعامل بدون خادم المصادقة والتفويض والتحقق من صحة البيانات.
استخدام Cloud Storage وCloud Storage Security Rules يعني أنّه يمكنك التركيز على إنشاء تجربة مستخدم رائعة، دون الحاجة إلى إدارة البنية التحتية أو كتابة مصادقة معقّدة من جهة الخادم ورمز تفويض
نظرة عامة
تُستخدم Cloud Storage Security Rules لتحديد من لديه إمكانية الوصول للقراءة والكتابة إلى
الملفات المخزنة في Cloud Storage، ونوضح كيفية تنظيم الملفات
وبيانات التعريف التي تحتوي عليها. النوع الأساسي من القاعدة هو قاعدة allow، التي
السماح بالعمليات read وwrite إذا كان الشرط المحدد اختياريًا
التقى. في ما يلي بعض الأمثلة على القواعد:
// Rules can optionally specify a condition allow write: if <condition>;
القواعد match مسارات ملفات التي تمثل
Cloud Storage مراجع القواعد
يمكن match مسار ملف واحد أو أكثر، ويمكن لأكثر من قاعدة واحدة match الملف
مسار في request محدد:
// Rules match specific paths match /images/profilePhoto.png { allow write: if <condition>; } match /images/croppedProfilePhoto.png { allow write: if <other_condition>; }
ويتم أيضًا عرض سياق تقييم القاعدة من خلال request
كائنات resource التي توفّر معلومات، مثل سياق المصادقة
(request.auth) وحجم العنصر الحالي (resource.size).
// Rules can specify conditions that consider the request context match /images/profilePhoto.png { allow write: if request.auth != null && request.resource.size < 5 * 1024 * 1024; }
يمكنك الاطّلاع على مزيد من المعلومات حول "Cloud Storage Security Rules" في قسم تأمين الملفات.
قواعد نموذجية
يجب أن يحدّد Cloud Storage Security Rules أولاً service (في هذه الحالة
firebase.storage) والحزمة Cloud Storage
(عبر match /b/{bucket}/o) أي القواعد هي
التقييم مقابلها. تتطلّب القواعد التلقائية استخدام Firebase Authentication، ولكن إليك ما يلي:
بعض الأمثلة على القواعد المشتركة الأخرى التي تتضمن عناصر تحكم مختلفة في الوصول.
تلقائي
// Only authenticated users can read or write to the folder
service firebase.storage {
match /b/{bucket}/o {
match /someFolder/{fileName} {
allow read, write: if request.auth != null;
}
}
}
علني
// Anyone can read or write to the folder, even non-users of your app.
// Because it is shared with App Engine, this will also make
// files uploaded via App Engine public.
service firebase.storage {
match /b/{bucket}/o {
match /someFolder/{fileName} {
allow read, write;
}
}
}
مستخدم
// Grants a user access to a node matching their user ID
service firebase.storage {
match /b/{bucket}/o {
// Files look like: "user/<UID>/file.txt"
match /user/{userId}/{fileName} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
}
}
خاص
// Access to files through Cloud Storage for Firebase is completely disallowed.
// Files may still be accessible through App Engine or Google Cloud Storage APIs.
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if false;
}
}
}
أثناء التطوير، يمكنك استخدام القواعد العامة بدلاً من القواعد التلقائية لجعل الملفات قابلة للقراءة والكتابة بشكل علني. هذا مفيد جدًا نماذج أوّلية، حتى يمكنك البدء بدون إعداد Firebase Authentication. ومع ذلك، ولأنّ Cloud Storage تشارك حزمة مع حزمة البيانات التلقائية. App Engine. تعرض هذه القاعدة أيضًا أي بيانات يستخدمها هذا التطبيق. للجمهور أيضًا.
تسمح لك قواعد المستخدم بمنح كل مستخدم من المستخدمين الذين تمت مصادقتهم تخزين الملفات. يمكنك أيضًا تأمين ملفاتك بالكامل باستخدام خصوصية هذه القواعد، ولكن عليك أن تضع في اعتبارك أن المستخدمين لن يتمكنوا من قراءة أو كتابة أي شيء حتى Cloud Storage باستخدام هذه القواعد. المستخدمون الذين يصلون إلى الملفات من تطبيقك على App Engine أو Google Cloud Storage واجهات برمجة تطبيقات قد يظل بإمكانهم الوصول
تحرير القواعد
يوفّر Cloud Storage طريقة سهلة لتعديل Cloud Storage Security Rules.
من خلال علامة التبويب القواعد في قسم "مساحة التخزين" في وحدة تحكُّم Firebase
في علامة التبويب القواعد، يمكنك الاطّلاع على ملفك الشخصي الحالي وتعديله بسرعة وسهولة
القواعد. يتم نشر هذه القواعد بالنقر على نشر أو عن طريق حفظ الملف.
(ctrl/cmd + s). يتم تحميل القواعد على الفور على Cloud Storage.
الخوادم، ولكن قد يستغرق نشرها ما يصل إلى خمس دقائق.
يمكن استخدام واجهة سطر الأوامر Firebase لنشر القواعد أيضًا. في حال اختيار:
Storage عند تشغيل firebase init، وهو ملف storage.rules يحتوي على نسخة من
سيتم إنشاء القواعد التلقائية
في دليل مشروعك. يمكنك نشر هذه القواعد باستخدام
الأمر firebase deploy. إذا كانت لديك عدة مجموعات في مشروعك،
يمكنك استخدام أهداف النشر
لنشر القواعد على جميع
مرة واحدة من مجلد المشروع نفسه.
مزيد من المعلومات حول طريقة عمل الأمان المستند إلى الملفات في قسم الملفات الآمنة، أو التعرّف على معلومات أمان البيانات في سياسة أمان المستخدم .