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