Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

สร้างข้อมูลอ้างอิง Cloud Storage ด้วย Cloud Storage for Unity

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

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

หากคุณเคยใช้ Firebase Realtime Database เส้นทางเหล่านี้น่าจะคุ้นเคยสำหรับคุณ อย่างไรก็ตาม ข้อมูลไฟล์ของคุณจะถูกเก็บไว้ใน Cloud Storage ไม่ใช่ ในฐานข้อมูลเรียลไทม์

สร้างข้อมูลอ้างอิง

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

ข้อมูลอ้างอิงสร้างจากบริการ Firebase.Storage.FirebaseStorage บนแอป Firebase โดยเรียกใช้ GetReferenceFromUrl() และส่งผ่าน URL ในรูปแบบ gs://<your-cloud-storage-bucket> คุณค้นหา URL นี้ได้ใน ส่วนพื้นที่เก็บข้อมูล ของ คอนโซล Firebase

// Get a reference to the storage service, using the default Firebase App
FirebaseStorage storage = FirebaseStorage.DefaultInstance;

// Create a storage reference from our storage service
StorageReference storageRef =
    storage.GetReferenceFromUrl("gs://<your-cloud-storage-bucket>");

คุณสามารถสร้างการอ้างอิงไปยังตำแหน่งที่ต่ำกว่าในทรี ตัวอย่างเช่น 'images/space.jpg' โดยใช้เมธอด child ในข้อมูลอ้างอิงที่มีอยู่

// Create a child reference
// imagesRef now points to "images"
StorageReference imagesRef = storageRef.Child("images");

// Child references can also take paths delimited by '/' such as:
// "images/space.jpg".
StorageReference spaceRef = imagesRef.Child("space.jpg");
// spaceRef now points to "images/space.jpg"
// imagesRef still points to "images"

// This is equivalent to creating the full referenced
StorageReference spaceRefFull = storage.GetReferenceFromUrl(
    "gs://<your-cloud-storage-bucket>/images/space.jpg");

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

// Parent allows us to move to the parent of a reference
// imagesRef now points to 'images'
StorageReference imagesRef = spaceRef.Parent;

// Root allows us to move all the way back to the top of our bucket
// rootRef now points to the root
StorageReference rootRef = spaceRef.Root;

Child , Parent และ Root สามารถเชื่อมโยงกันได้หลายครั้ง เนื่องจากแต่ละรายการส่งคืนข้อมูลอ้างอิง ข้อยกเว้นคือ Parent of Root ซึ่งเป็น StorageReference ที่ไม่ถูกต้อง

// References can be chained together multiple times
// earthRef points to "images/earth.jpg"
StorageReference earthRef =
    spaceRef.Parent.Child("earth.jpg");

// nullRef is null since the parent of root is an invalid StorageReference
StorageReference nullRef = spaceRef.Root.Parent;

วิธีการอ้างอิง

คุณสามารถตรวจสอบการอ้างอิงเพื่อให้เข้าใจไฟล์ที่ชี้ไปได้ดีขึ้นโดยใช้คุณสมบัติ Path , Name และ Bucket คุณสมบัติเหล่านี้รับพาธแบบเต็ม ชื่อ และบัคเก็ตของไฟล์

// Reference's path is: "images/space.jpg"
// This is analogous to a file path on disk
string path = spaceRef.Path;

// Reference's name is the last segment of the full path: "space.jpg"
// This is analogous to the file name
string name = spaceRef.Name;

// Reference's bucket is the name of the storage bucket where files are stored
string bucket = spaceRef.Bucket;

ข้อจำกัดในการอ้างอิง

เส้นทางและชื่ออ้างอิงสามารถมีลำดับของอักขระ Unicode ที่ถูกต้องได้ แต่มีข้อจำกัดบางประการ ได้แก่:

  1. ความยาวรวมของ reference.Path เส้นทางต้องอยู่ระหว่าง 1 ถึง 1024 ไบต์เมื่อเข้ารหัส UTF-8
  2. ไม่มีอักขระ Carriage Return หรือ Line Feed
  3. หลีกเลี่ยงการใช้ # , [ , ] , * หรือ ? เนื่องจากเครื่องมือเหล่านี้ใช้งานไม่ได้กับเครื่องมืออื่นๆ เช่น Firebase Realtime Database หรือ gsutil

ตัวอย่างเต็ม

FirebaseStorage storage = FirebaseStorage.DefaultInstance;

// Points to the root reference
StorageReference storageRef =
    storage.GetReferenceFromUrl("gs://<your-bucket-name>");

// Points to "images"
StorageReference imagesRef = storageRef.Child("images");

// Points to "images/space.jpg"
// Note that you can use variables to create child values
string filename = "space.jpg";
StorageReference spaceRef = imagesRef.Child(filename);

// File path is "images/space.jpg"
string path = spaceRef.Path;

// File name is "space.jpg"
string name = spaceRef.Name;

// Points to "images"
StorageReference imagesRef = spaceRef.Parent;

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

ต่อไป มาเรียนรู้วิธี อัปโหลดไฟล์ ไปยัง Cloud Storage