Cloud Storage for Firebase به شما امکان می دهد محتوای تولید شده توسط کاربر مانند تصاویر و ویدیو را آپلود و به اشتراک بگذارید که به شما امکان می دهد محتوای رسانه ای غنی را در برنامه های خود ایجاد کنید. دادههای شما در یک سطل فضای ذخیرهسازی Google Cloud - یک راهحل ذخیرهسازی شی در مقیاس اگزابایت با در دسترس بودن بالا و افزونگی جهانی ذخیره میشود. Cloud Storage for Firebase به شما امکان میدهد این فایلها را مستقیماً از دستگاههای تلفن همراه و مرورگرهای وب بهطور ایمن آپلود کنید و به راحتی شبکههای ناقص را مدیریت کنید.
پیش نیازها
اگر قبلاً این کار را نکرده اید ، SDK های Firebase را برای Flutter نصب و مقداردهی اولیه کنید .
یک سطل ذخیره سازی ابری پیش فرض ایجاد کنید
از صفحه پیمایش کنسول Firebase ، Storage را انتخاب کنید، سپس روی شروع به کار کلیک کنید.
پیامهای مربوط به ایمن کردن دادههای فضای ذخیرهسازی ابری خود را با استفاده از قوانین امنیتی مرور کنید. در طول توسعه، قوانین خود را برای دسترسی عمومی تنظیم کنید .
مکانی را برای سطل فضای ذخیره سازی ابری پیش فرض خود انتخاب کنید.
این تنظیم مکان، مکان منبع پیشفرض Google Cloud Platform (GCP) پروژه شما است. توجه داشته باشید که این مکان برای سرویسهای GCP در پروژه شما استفاده میشود که به تنظیمات مکان نیاز دارند، بهویژه پایگاه داده Cloud Firestore و برنامه App Engine شما (که در صورت استفاده از Cloud Scheduler لازم است).
اگر نمیتوانید مکانی را انتخاب کنید، پروژه شما از قبل دارای یک مکان منبع GCP پیشفرض است. در حین ایجاد پروژه یا هنگام راهاندازی سرویس دیگری که نیاز به تنظیم مکان دارد تنظیم شده است.
اگر در طرح Blaze هستید، می توانید سطل های متعددی ایجاد کنید که هر کدام مکان خاص خود را دارند.
روی Done کلیک کنید.
دسترسی عمومی را تنظیم کنید
Cloud Storage برای Firebase یک زبان قوانین اعلامی را ارائه میکند که به شما امکان میدهد نحوه ساختار دادههایتان، نحوه فهرستبندی و زمان خواندن و نوشتن دادههایتان را تعریف کنید. بهطور پیشفرض، دسترسی خواندن و نوشتن به فضای ذخیرهسازی ابری محدود است، بنابراین فقط کاربران تأیید شده میتوانند دادهها را بخوانند یا بنویسند. برای شروع بدون تنظیم Firebase Authentication ، می توانید قوانین خود را برای دسترسی عمومی پیکربندی کنید .
این باعث میشود که فضای ذخیرهسازی ابری برای هر کسی باز شود، حتی افرادی که از برنامه شما استفاده نمیکنند، بنابراین هنگام تنظیم احراز هویت، مطمئن شوید که فضای ذخیرهسازی ابری خود را دوباره محدود کنید.
Cloud Storage SDK را به برنامه خود اضافه کنید
از ریشه پروژه Flutter خود، دستور زیر را برای نصب افزونه اجرا کنید:
flutter pub add firebase_storage
پس از تکمیل، برنامه Flutter خود را دوباره بسازید:
flutter run
افزونه را در کد دارت خود وارد کنید:
import 'package:firebase_storage/firebase_storage.dart';
Cloud Storage را راه اندازی کنید
اولین قدم برای دسترسی به سطل فضای ذخیره سازی ابری، ایجاد یک نمونه از FirebaseStorage
است:
final storage = FirebaseStorage.instance;
شما آماده شروع استفاده از فضای ذخیرهسازی ابری هستید!
ابتدا، بیایید نحوه ایجاد یک مرجع ذخیره سازی ابری را بیاموزیم.
تنظیمات پیشرفته
چند مورد استفاده وجود دارد که نیاز به تنظیمات اضافی دارد:
- استفاده از سطل های ذخیره سازی ابری در چندین منطقه جغرافیایی
- استفاده از سطل های ذخیره سازی ابری در کلاس های ذخیره سازی مختلف
- استفاده از سطلهای ذخیرهسازی ابری با چندین کاربر تأیید شده در یک برنامه
اگر کاربرانی در سراسر جهان دارید و می خواهید داده های آنها را در نزدیکی آنها ذخیره کنید، اولین مورد استفاده عالی است. به عنوان مثال، می توانید سطل هایی در ایالات متحده، اروپا و آسیا ایجاد کنید تا داده ها را برای کاربران در آن مناطق ذخیره کنید تا تاخیر را کاهش دهید.
مورد دوم اگر داده هایی با الگوهای دسترسی متفاوت دارید مفید است. به عنوان مثال: میتوانید یک سطل چند منطقهای یا منطقهای راهاندازی کنید که تصاویر یا سایر محتوایی که اغلب به آنها دسترسی دارند را ذخیره میکند، و یک سطل نزدیک یا سرد که پشتیبانگیریهای کاربر یا سایر محتوای غیرقابل دسترسی را ذخیره میکند.
در هر یک از این موارد استفاده، میخواهید از چند سطل ذخیرهسازی ابری استفاده کنید .
مورد سوم زمانی مفید است که برنامهای مانند Google Drive میسازید که به کاربران امکان میدهد چندین حساب وارد شده (به عنوان مثال، یک حساب شخصی و یک حساب کاری) داشته باشند. میتوانید از یک نمونه برنامه Firebase سفارشی برای احراز هویت هر حساب اضافی استفاده کنید.
از چند سطل Cloud Storage استفاده کنید
اگر میخواهید از یک سطل Cloud Storage غیر از سطل پیشفرض ارائه شده در بالا استفاده کنید، یا از چندین سطل فضای ذخیرهسازی ابری در یک برنامه استفاده کنید، میتوانید نمونهای از FirebaseStorage
ایجاد کنید که به سطل سفارشی شما ارجاع دهد:
// Get a non-default Storage bucket
final storage = FirebaseStorage.instanceFor(bucket: "gs://my-custom-bucket");
کار با سطل های وارداتی
هنگام وارد کردن یک سطل فضای ذخیرهسازی ابری موجود به 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 سفارشی استفاده کنید
اگر با استفاده از FirebaseApp
سفارشی برنامه پیچیدهتری میسازید، میتوانید یک نمونه از FirebaseStorage
که با آن برنامه مقداردهی شده است ایجاد کنید:
// Use a non-default App
final storage = FirebaseStorage.instanceFor(app: customApp);
مراحل بعدی
- برای راه اندازی برنامه خود آماده شوید:
- برای اطمینان از اینکه فقط برنامههای شما میتوانند به سطلهای ذخیرهسازی شما دسترسی داشته باشند، بررسی برنامه را فعال کنید.
- هشدارهای بودجه را برای پروژه خود در Google Cloud Console تنظیم کنید.
- داشبورد استفاده و صورتحساب را در کنسول Firebase نظارت کنید تا تصویری کلی از استفاده از پروژه خود در چندین سرویس Firebase داشته باشید. همچنین میتوانید برای اطلاعات دقیقتر استفاده از داشبورد استفاده از فضای ذخیرهسازی ابری دیدن کنید.
- چک لیست راه اندازی Firebase را مرور کنید.