หลังจากอัปโหลดไฟล์ไปยังการอ้างอิง Cloud Storage แล้ว คุณยังดูและอัปเดตข้อมูลเมตาของไฟล์ได้ด้วย เช่น เพื่ออัปเดตประเภทเนื้อหา ไฟล์ยังจัดเก็บคู่คีย์/ค่าที่กำหนดเองพร้อมข้อมูลเมตาไฟล์เพิ่มเติมได้ด้วย
รับข้อมูลเมตาของไฟล์
ข้อมูลเมตาของไฟล์มีพร็อพเพอร์ตี้ทั่วไป เช่น Name
, SizeBytes
และ
ContentType
(มักเรียกว่าประเภท MIME) นอกเหนือจาก
รายการที่พบไม่บ่อย เช่น ContentDisposition
และ CreationTimeMillis
ช่วงเวลานี้
สามารถดึงข้อมูลเมตาจากการอ้างอิง Cloud Storage โดยใช้
GetMetadataAsync
วิธี
// Create reference to the file whose metadata we want to retrieve StorageReference forestRef = storageRef.Child("images/forest.jpg"); // Get metadata properties forestRef.GetMetadataAsync().ContinueWithOnMainThread(task => { if (!task.IsFaulted && !task.IsCanceled) { StorageMetadata meta = task.Result; // do stuff with meta } });
อัปเดตข้อมูลเมตาของไฟล์
คุณสามารถอัปเดตข้อมูลเมตาของไฟล์ได้ตลอดเวลา หลังจากอัปโหลดไฟล์เสร็จเรียบร้อยแล้วโดย
โดยใช้เมธอด UpdateMetadataAsync
ซึ่งจะนำออบเจ็กต์ MetadataChange
ไป
โปรดดูรายการทั้งหมดเพื่อให้ทราบข้อมูลเพิ่มเติมเกี่ยวกับ
สามารถอัปเดตพร็อพเพอร์ตี้ได้ ระบบจะอัปเดตเฉพาะพร็อพเพอร์ตี้ที่ระบุไว้ในข้อมูลเมตา ส่วนพร็อพเพอร์ตี้อื่นๆ ทั้งหมดจะไม่มีการแก้ไข
// Create reference to the file whose metadata we want to change StorageReference forestRef = storageRef.Child("images/forest.jpg"); // Create file metadata to update var newMetadata = new MetadataChange(); newMetadata.CacheControl = "public,max-age=300"; newMetadata.ContentType = "image/jpeg"; // Update metadata properties forestRef.UpdateMetadataAsync(newMetadata).ContinueWithOnMainThread(task => { if (!task.IsFaulted && !task.IsCanceled) { // access the updated meta data StorageMetadata meta = task.Result; } });
คุณสามารถลบพร็อพเพอร์ตี้ข้อมูลเมตาที่เขียนได้โดยการส่งสตริงว่างดังนี้
// Create file metadata to update var newMetadata = new MetadataChange(); newMetadata.ContentType = ""; // Update metadata properties forestRef.UpdateMetadataAsync(newMetadata).ContinueWithOnMainThread(task => { if (!task.IsFaulted && !task.IsCanceled) { StorageMetadata meta = task.Result; // meta.ContentType should be an empty string now } });
จัดการข้อผิดพลาด
มีสาเหตุหลายประการที่อาจทำให้เกิดข้อผิดพลาดในการรับหรืออัปเดต ข้อมูลเมตา ซึ่งรวมถึงไฟล์ที่ไม่มีอยู่หรือผู้ใช้ไม่มีสิทธิ์ เพื่อเข้าถึงไฟล์ที่ต้องการ ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดได้ใน จัดการข้อผิดพลาด ของเอกสาร
ข้อมูลเมตาที่กำหนดเอง
คุณสามารถระบุข้อมูลเมตาที่กำหนดเองเป็น Dictionary<string, string>
ได้
var newMetadata = new MetadataChange { CustomMetadata = new Dictionary<string, string> { {"location", "Yosemite, CA, USA"}, {"activity", "Hiking"} } }; // UpdateMetadataAsync
คุณสามารถจัดเก็บข้อมูลที่เจาะจงแอปสำหรับแต่ละไฟล์ในข้อมูลเมตาที่กำหนดเองได้ แต่เราขอแนะนำอย่างยิ่งให้ใช้ฐานข้อมูล (เช่น Firebase Realtime Database) เพื่อจัดเก็บและซิงค์ข้อมูลประเภทนี้
พร็อพเพอร์ตี้ข้อมูลเมตาของไฟล์
รายการพร็อพเพอร์ตี้ข้อมูลเมตาทั้งหมดในไฟล์มีดังนี้
พร็อพเพอร์ตี้ | ประเภท | แก้ไขได้ใน MetadataChange |
---|---|---|
Bucket |
string |
ไม่ |
Generation |
string |
ไม่ |
MetadataGeneration |
string |
ไม่ |
Path |
string |
ไม่ |
Name |
string |
ไม่ |
SizeBytes |
long |
ไม่ |
CreationTimeMillis |
long |
ไม่ |
UpdatedTimeMillis |
long |
ไม่ |
CacheControl |
string |
ใช่ |
ContentDisposition |
string |
ใช่ |
ContentEncoding |
string |
ใช่ |
ContentLanguage |
string |
ใช่ |
ContentType |
string |
ใช่ |
DownloadUrl |
Uri |
ไม่ |
DownloadUrls |
IList<Uri> |
ไม่ |
CustomMetadataKeys |
IEnumerable<string> |
ใช่ |
ขั้นตอนถัดไป
การอัปโหลด ดาวน์โหลด และอัปเดตไฟล์เป็นสิ่งสำคัญ แต่การที่สามารถ เพื่อนำออก มาดูวิธีการกัน ลบไฟล์ จาก Cloud Storage