เริ่มต้นใช้งาน Cloud Storage บนเว็บ

Cloud Storage for Firebase ช่วยให้คุณอัปโหลดและแชร์เนื้อหาที่ผู้ใช้สร้างขึ้น เช่น รูปภาพและวิดีโอ ซึ่งช่วยให้คุณสร้างเนื้อหาสื่อสมบูรณ์ลงในแอปของคุณได้ ข้อมูลของคุณจะถูกจัดเก็บไว้ในที่เก็บข้อมูล Google Cloud Storage ซึ่งเป็นโซลูชันพื้นที่จัดเก็บออบเจ็กต์ขนาดเอกซาไบต์ที่มีความพร้อมใช้งานสูงและความซ้ำซ้อนทั่วโลก Cloud Storage for Firebase ช่วยให้คุณอัปโหลดไฟล์เหล่านี้ได้อย่างปลอดภัยจากอุปกรณ์เคลื่อนที่และเว็บเบราว์เซอร์โดยตรง และจัดการเครือข่ายที่ไม่แน่นอนได้อย่างง่ายดาย

ข้อกำหนดเบื้องต้น

หากคุณยังไม่ได้ ดำเนินการ ให้ติดตั้ง Firebase JS SDK และเริ่มต้น Firebase

สร้างที่เก็บข้อมูล Cloud Storage เริ่มต้น

  1. จากบานหน้าต่างการนำทางของ คอนโซล Firebase ให้เลือก ที่เก็บข้อมูล จากนั้นคลิก เริ่มต้นใช้งาน

  2. ตรวจสอบข้อความเกี่ยวกับการรักษาความปลอดภัยข้อมูล Cloud Storage โดยใช้กฎความปลอดภัย ในระหว่างการพัฒนา ให้พิจารณา ตั้งกฎของคุณสำหรับการเข้าถึงแบบสาธารณะ

  3. เลือก ตำแหน่ง สำหรับที่เก็บข้อมูล Cloud Storage เริ่มต้นของคุณ

    • การตั้งค่าตำแหน่งนี้คือ ตำแหน่งทรัพยากร Google Cloud Platform (GCP) เริ่มต้น ของโปรเจ็กต์ของคุณ โปรดทราบว่าตำแหน่งนี้จะใช้สำหรับบริการ GCP ในโปรเจ็กต์ของคุณที่ต้องมีการตั้งค่าตำแหน่ง โดยเฉพาะฐานข้อมูล Cloud Firestore และแอป App Engine ของคุณ (ซึ่งจำเป็นหากคุณใช้ Cloud Scheduler)

    • หากคุณไม่สามารถเลือกตำแหน่งได้ แสดงว่าโปรเจ็กต์ของคุณมีตำแหน่งทรัพยากร GCP เริ่มต้นอยู่แล้ว มันถูกตั้งค่าระหว่างการสร้างโครงการหรือเมื่อตั้งค่าบริการอื่นที่ต้องมีการตั้งค่าตำแหน่ง

    หากคุณใช้แผน Blaze คุณสามารถ สร้างที่เก็บข้อมูลได้หลายรายการ โดยแต่ละอันมี ที่ตั้ง ของตัวเอง

  4. คลิก เสร็จสิ้น

ตั้งค่าการเข้าถึงสาธารณะ

Cloud Storage for Firebase มีภาษาของกฎการประกาศที่ช่วยให้คุณกำหนดได้ว่าข้อมูลควรจัดโครงสร้างอย่างไร ควรจัดทำดัชนีอย่างไร และเมื่อใดที่จะอ่านและเขียนข้อมูลของคุณได้ ตามค่าเริ่มต้น การเข้าถึง Cloud Storage แบบอ่านและเขียนจะถูกจำกัด ดังนั้นเฉพาะผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์เท่านั้นที่จะอ่านหรือเขียนข้อมูลได้ ในการเริ่มต้นโดยไม่ต้องตั้งค่า การตรวจสอบสิทธิ์ คุณสามารถ กำหนดค่ากฎของคุณสำหรับการเข้าถึงแบบสาธารณะ

ซึ่งจะทำให้ Cloud Storage เปิดสำหรับทุกคน แม้แต่คนที่ไม่ได้ใช้แอปของคุณ ดังนั้นอย่าลืมจำกัด Cloud Storage ของคุณอีกครั้งเมื่อคุณตั้งค่าการตรวจสอบสิทธิ์

เพิ่ม URL ที่ฝากข้อมูลของคุณไปยังแอปของคุณ

หากยังไม่ได้รวมไว้ คุณจะต้องเพิ่ม URL ที่เก็บข้อมูล Cloud Storage ลงใน ออบเจ็กต์การกำหนดค่าของแอป Firebase

  1. ไปที่แดชบอร์ดพื้นที่เก็บข้อมูลของคุณใน คอนโซล Firebase

  2. คลิกแท็บ ไฟล์ จากนั้นดูในส่วนหัวของตัวแสดงไฟล์

  3. คัดลอก URL ไปยังคลิปบอร์ดของคุณ โดยปกติจะอยู่ในรูปแบบ project-id .appspot.com

  4. ไปยังออบเจ็กต์ firebaseConfig ในแอปของคุณ ให้เพิ่มแอตทริบิวต์ storageBucket ด้วย URL ที่เก็บข้อมูลของคุณ:

API แบบโมดูลาร์ของเว็บ

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: ''
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);


// Initialize Cloud Storage and get a reference to the service
const storage = getStorage(app);

API เนมสเปซของเว็บ

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: '[your-storage-bucket-url]'
};

// Initialize Firebase
firebase.initializeApp(firebaseConfig);


// Initialize Cloud Storage and get a reference to the service
const storage = firebase.storage();

คุณพร้อมที่จะเริ่มใช้ Cloud Storage แล้ว!

ขั้นตอนต่อไป? เรียนรู้วิธี สร้างข้อมูลอ้างอิง Cloud Storage

การตั้งค่าขั้นสูง

มีกรณีการใช้งานบางกรณีที่ต้องตั้งค่าเพิ่มเติม:

กรณีการใช้งานแรกจะสมบูรณ์แบบหากคุณมีผู้ใช้ทั่วโลกและต้องการจัดเก็บข้อมูลไว้ใกล้พวกเขา ตัวอย่างเช่น คุณสามารถสร้างบัคเก็ตในสหรัฐอเมริกา ยุโรป และเอเชียเพื่อจัดเก็บข้อมูลสำหรับผู้ใช้ในภูมิภาคเหล่านั้นเพื่อลดเวลาในการตอบสนอง

กรณีการใช้งานที่สองจะมีประโยชน์หากคุณมีข้อมูลที่มีรูปแบบการเข้าถึงที่แตกต่างกัน ตัวอย่างเช่น คุณสามารถตั้งค่าบัคเก็ตแบบหลายภูมิภาคหรือระดับภูมิภาคที่จัดเก็บรูปภาพหรือเนื้อหาอื่นๆ ที่เข้าถึงบ่อย และบัคเก็ต Nearline หรือ Coldline ที่จัดเก็บข้อมูลสำรองของผู้ใช้หรือเนื้อหาอื่นๆ ที่เข้าถึงไม่บ่อย

ในกรณีการใช้งานอย่างใดอย่างหนึ่งเหล่านี้ คุณจะต้อง ใช้ที่เก็บข้อมูล Cloud Storage หลายรายการ

กรณีการใช้งานที่สามมีประโยชน์หากคุณกำลังสร้างแอป เช่น Google ไดรฟ์ ซึ่งช่วยให้ผู้ใช้มีบัญชีที่เข้าสู่ระบบได้หลายบัญชี (เช่น บัญชีส่วนตัวและบัญชีงาน) คุณสามารถ ใช้อินสแตนซ์แอป Firebase ที่กำหนดเอง เพื่อตรวจสอบสิทธิ์แต่ละบัญชีเพิ่มเติมได้

ใช้ที่เก็บข้อมูล Cloud Storage หลายอัน

หากคุณต้องการใช้ที่เก็บข้อมูล Cloud Storage อื่นนอกเหนือจากค่าเริ่มต้นที่ระบุไว้ข้างต้น หรือใช้ที่เก็บข้อมูล Cloud Storage หลายรายการในแอปเดียว คุณสามารถสร้างอินสแตนซ์ของ firebase.storage ที่อ้างอิงถึงที่เก็บข้อมูลที่กำหนดเองของคุณ:

Web modular API

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 namespaced API

// 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://<your-cloud-storage-bucket>

คุณสามารถดูหมายเลขโปรเจ็กต์ของคุณได้ตามที่อธิบายไว้ใน บทแนะนำโปรเจ็กต์ Firebase

ซึ่งจะไม่ส่งผลต่อที่เก็บข้อมูลที่สร้างขึ้นใหม่ เนื่องจากมีการตั้งค่าการควบคุมการเข้าถึงเริ่มต้นให้อนุญาต Firebase นี่เป็นมาตรการชั่วคราว และจะดำเนินการโดยอัตโนมัติในอนาคต

ใช้แอป Firebase ที่กำหนดเอง

หากคุณกำลังสร้างแอปที่ซับซ้อนมากขึ้นโดยใช้ firebase.app.App ที่กำหนดเอง คุณสามารถสร้างอินสแตนซ์ของ firebase.storage.Storage ที่เริ่มต้นด้วยแอปนั้นได้:

Web modular API

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 namespaced API

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

ขั้นตอนถัดไป