Cloud Storage for Firebase به شما امکان میدهد محتواهایی مانند تصویر، صدا، ویدیو، و فایلهای دیگر (ازجمله محتوای تولیدشده توسط کاربر) را بارگذاری و همرسانی کنید، که به شما امکان میدهد محتوای رسانهای غنی در برنامههایتان بسازید. دادههایتان در یک Google Cloud Storage bucket ذخیره میشود — یک راهکار ذخیرهسازی شیء در مقیاس اگزابایت با دسترسی بالا و افزونگی جهانی. Cloud Storage for Firebase به شما امکان میدهد این فایلها را بهطور ایمن مستقیماً از دستگاههای همراه و مرورگرهای وب بارگذاری کنید و بهراحتی با شبکههای ناپایدار کنار بیایید.
قبل از شروع
اگر قبلاً این کار را نکردهاید، مطمئن شوید که راهنمای شروع به کار برای برنامههای Flutter را تکمیل کردهاید. ازجمله:
درحال ایجاد پروژه Firebase.
نصب و مقداردهی اولیه کیتهای توسعه نرمافزار Firebase برای Flutter.
مطمئن شوید پروژه Firebase شما در طرح قیمتگذاری Blaze پرداخت به اندازه استفاده باشد که برای استفاده از Cloud Storage for Firebase الزامی است. اگر Firebase و Google Cloud برایتان جدید است، بررسی کنید که آیا واجدشرایط اعتبار دوره آزمایشی رایگان ۳۰۰ دلاری هستید یا نه.
ایجاد کردن دسته Cloud Storage پیشفرض
در کنسول Firebase، به پایگاههای داده و فضای ذخیرهسازی > فضای ذخیرهسازی پیمایش کنید.
اگر پروژهتان هنوز در طرح قیمتگذاری Blaze پرداخت به اندازه استفاده نیست، از شما خواسته میشود پروژهتان را ارتقا دهید.
روی شروع به کار کلیک کنید.
مکانی برای دسته پیشفرضتان انتخاب کنید.
سطلها در
،US-CENTRAL1 ، وUS-EAST1 میتوانند از سطح «همیشه رایگان» برای Google Cloud Storage استفاده کنند. دستههای موجود در همه مکانهای دیگر از Google Cloud Storage قیمتگذاری و استفاده پیروی میکنند.US-WEST1اگر بخواهید، میتوانید بعداً چندین سطل ایجاد کنید که هرکدام مکان خود را داشته باشند.
Firebase Security Rules را برای دسته پیشفرضتان پیکربندی کنید. درطول توسعه، تنظیم قوانین برای دسترسی عمومی را درنظر بگیرید.
روی تمام کلیک کنید.
اکنون میتوانید دسته را در کنسول Firebase مشاهده کنید (به برگه
پایگاههای داده و فضای ذخیرهسازی > فضای ذخیرهسازی >
فایلها بروید).
قالب نام پیشفرض سطل شما PROJECT_ID.firebasestorage.app
راهاندازی دسترسی عمومی
«فضای ذخیرهسازی ابری ویژه Firebase» زبان قوانین اعلانی ارائه میدهد که به شما امکان میدهد تعریف کنید دادههایتان چگونه باید ساختاردهی شوند، چگونه باید نمایهگذاری شوند، و چه زمانی میتوان دادههایتان را خواند و در آنها نوشت. بهطور پیشفرض، دسترسی خواندن و نوشتن به Cloud Storage محدود شده است تا فقط کاربران اصالتسنجیشده بتوانند دادهها را بخوانند یا بنویسند. برای شروع بدون راهاندازی اصالتسنجی Firebase، میتوانید قوانینتان را برای دسترسی عمومی پیکربندی کنید.
این کار باعث میشود Cloud Storage برای همه باز شود، حتی افرادی که از برنامهتان استفاده نمیکنند، بنابراین حتماً هنگام راهاندازی اصالتسنجی، Cloud Storage را دوباره محدود کنید.
افزودن Cloud Storage SDK به برنامه
از ریشه پروژه Flutter، فرمان زیر را برای نصب افزایه اجرا کنید:
flutter pub add firebase_storageپساز تکمیل، برنامه Flutter خود را بازسازی کنید:
flutter runافزونه را در کد Dart خود وارد کنید:
import 'package:firebase_storage/firebase_storage.dart';
راهاندازی فضای ذخیرهسازی ابری
پیدا کنید.flutterfire configureرا از فهرست راهنمای پروژه Flutter اجرا کنید. این کار فایل پیکربندی Firebase (firebase_options.dart) را در پایگاه کد برنامهتان بهروز میکند تا نام دسته پیشفرض Cloud Storage شما را داشته باشد.با ایجاد نمونهای از
FirebaseStorageبه مخزن Cloud Storage خود دسترسی پیدا کنید:final storage = FirebaseStorage.instance; // Alternatively, explicitly specify the bucket name URL. // final storage = FirebaseStorage.instanceFor(bucket: "gs://<var>BUCKET_NAME</var>");
آمادهاید از Cloud Storage استفاده کنید!
مرحله بعدی؟ با نحوه ایجاد مرجع Cloud Storage آشنا شوید.
راهاندازی پیشرفته
چند مورد استفاده وجود دارد که به راهاندازی اضافی نیاز دارد:
- استفاده از دستههای Cloud Storage در چندین منطقه جغرافیایی
- استفاده از دستههای Cloud Storage در کلاسهای ذخیرهسازی مختلف
- استفاده از دستههای Cloud Storage با چند کاربر اصالتسنجیشده در یک برنامه
مورد استفاده اول برای زمانی عالی است که کاربرانی در سراسر جهان دارید و میخواهید دادههایشان را در نزدیکی آنها ذخیره کنید. برای مثال، میتوانید برای ذخیره دادههای کاربران در ایالات متحده، اروپا، و آسیا، در این مناطق سطل ایجاد کنید تا تأخیر را کاهش دهید.
مورد استفاده دوم زمانی مفید است که دادههایی با الگوهای دسترسی متفاوت داشته باشید. برای مثال: میتوانید یک سطل چندمنطقهای یا منطقهای راهاندازی کنید که تصاویر یا سایر محتواهای پردسترسی را ذخیره میکند، و یک سطل نزدیکخط یا سردخط که نسخههای پشتیبان کاربر یا سایر محتواهای کمدسترسی را ذخیره میکند.
در هریک از این موارد استفاده، باید از چند سطل Cloud Storage استفاده کنید.
مورد استفاده سوم زمانی مفید است که درحال ساختن برنامهای مثل Google Drive هستید که به کاربران اجازه میدهد چندین حساب واردشده به سیستم داشته باشند (برای مثال، یک حساب شخصی و یک حساب کاری). میتوانید از نمونه سفارشی Firebase App برای اصالتسنجی هر حساب اضافی استفاده کنید.
استفاده از چند سطل Cloud Storage
اگر میخواهید از سطل Cloud Storage دیگری غیراز سطل پیشفرض ارائهشده در بالا استفاده کنید،
یا از چند سطل Cloud Storage در یک برنامه استفاده کنید، میتوانید نمونهای
از FirebaseStorage ایجاد کنید که به سطل سفارشی شما ارجاع میدهد:
// Get a non-default Storage bucket
final storage = FirebaseStorage.instanceFor(bucket: "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://YOUR-CLOUD-STORAGE-BUCKET
میتوانید شماره پروژهتان را همانطور که در مقدمه پروژههای Firebase شرح داده شده است پیدا کنید.
این موضوع بر دستههای جدیداً ایجادشده تأثیری ندارد، زیرا کنترل دسترسی پیشفرض آنها برای مجاز کردن Firebase تنظیم شده است. این اقدامی موقتی است و در آینده بهطور خودکار انجام خواهد شد.
استفاده از Firebase App سفارشی
اگر بااستفاده از FirebaseApp سفارشی برنامه پیچیدهتری میسازید، میتوانید
نمونهای از FirebaseStorage را که با آن برنامه مقداردهی اولیه شده است ایجاد کنید:
// Use a non-default App
final storage = FirebaseStorage.instanceFor(app: customApp);
مراحل بعدی
برای راهاندازی برنامهتان آماده شوید:
App Check را فعال کنید تا مطمئن شوید فقط برنامههای شما میتوانند به دستههای فضای ذخیرهسازیتان دسترسی داشته باشند.
هشدارهای بودجه را برای پروژهتان در کنسول Google Cloud راهاندازی کنید.
داشبورد استفاده و صورتحساب را در کنسول Firebase پایش کنید تا تصویری کلی از استفاده پروژهتان در چندین سرویس Firebase بهدست آورید. همچنین میتوانید برای اطلاعات دقیقتر درباره استفاده، به داشبورد Cloud Storage استفاده مراجعه کنید.
بازبینه راهاندازی Firebase را مرور کنید.