หลังจากอัปโหลดไฟล์ไปยังข้อมูลอ้างอิง 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 ) เพื่อจัดเก็บและซิงโครไนซ์ข้อมูลประเภทนี้
คุณสมบัติข้อมูลเมตาของไฟล์
รายการคุณสมบัติข้อมูลเมตาทั้งหมดในไฟล์มีอยู่ด้านล่าง:
คุณสมบัติ | พิมพ์ | แก้ไขได้ใน 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 กันดีกว่า