หลังจากอัปโหลดไฟล์ไปยัง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 กัน