หลังจากอัปโหลดไฟล์ไปยังข้อมูลอ้างอิง Cloud Storage คุณยังจะได้รับ และอัปเดตข้อมูลเมตาของไฟล์ เช่น เพื่อดูหรืออัปเดตประเภทเนื้อหา Files ยังสามารถจัดเก็บคู่คีย์/ค่าที่กำหนดเองพร้อมกับข้อมูลเมตาเพิ่มเติมของไฟล์ได้อีกด้วย
รับข้อมูลเมตาของไฟล์
ข้อมูลเมตาของไฟล์มีพร็อพเพอร์ตี้ทั่วไป เช่น name
, size
และ
contentType
(มักเรียกว่าประเภท MIME) นอกเหนือจาก
รายการที่พบบ่อย เช่น contentDisposition
และ timeCreated
ข้อมูลเมตานี้อาจ
ที่ดึงมาจากข้อมูลอ้างอิง Cloud Storage โดยใช้
เมธอด getMetadata()
Kotlin+KTX
// Create a storage reference from our app val storageRef = storage.reference // Get reference to the file val forestRef = storageRef.child("images/forest.jpg")
forestRef.metadata.addOnSuccessListener { metadata -> // Metadata now contains the metadata for 'images/forest.jpg' }.addOnFailureListener { // Uh-oh, an error occurred! }
Java
// Create a storage reference from our app StorageReference storageRef = storage.getReference(); // Get reference to the file StorageReference forestRef = storageRef.child("images/forest.jpg");
forestRef.getMetadata().addOnSuccessListener(new OnSuccessListener<StorageMetadata>() { @Override public void onSuccess(StorageMetadata storageMetadata) { // Metadata now contains the metadata for 'images/forest.jpg' } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception exception) { // Uh-oh, an error occurred! } });
อัปเดตข้อมูลเมตาของไฟล์
คุณสามารถอัปเดตข้อมูลเมตาของไฟล์ได้ตลอดเวลา หลังจากอัปโหลดไฟล์เสร็จเรียบร้อยแล้วโดย
โดยใช้เมธอด updateMetadata()
โปรดดู
รายการทั้งหมดเพื่อดูที่พัก
สามารถอัปเดตได้ โดยระบบจะอัปเดตเฉพาะพร็อพเพอร์ตี้ที่ระบุไว้ในข้อมูลเมตา
ส่วนเนื้อหาอื่นๆ ทั้งหมดจะไม่เปลี่ยนแปลง
Kotlin+KTX
// Create a storage reference from our app val storageRef = storage.reference // Get reference to the file val forestRef = storageRef.child("images/forest.jpg")
// Create file metadata including the content type val metadata = storageMetadata { contentType = "image/jpg" setCustomMetadata("myCustomProperty", "myValue") } // Update metadata properties forestRef.updateMetadata(metadata).addOnSuccessListener { updatedMetadata -> // Updated metadata is in updatedMetadata }.addOnFailureListener { // Uh-oh, an error occurred! }
Java
// Create a storage reference from our app StorageReference storageRef = storage.getReference(); // Get reference to the file StorageReference forestRef = storageRef.child("images/forest.jpg");
// Create file metadata including the content type StorageMetadata metadata = new StorageMetadata.Builder() .setContentType("image/jpg") .setCustomMetadata("myCustomProperty", "myValue") .build(); // Update metadata properties forestRef.updateMetadata(metadata) .addOnSuccessListener(new OnSuccessListener<StorageMetadata>() { @Override public void onSuccess(StorageMetadata storageMetadata) { // Updated metadata is in storageMetadata } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception exception) { // Uh-oh, an error occurred! } });
คุณสามารถลบพร็อพเพอร์ตี้ข้อมูลเมตาที่เขียนได้โดยการส่งผ่าน null
:
Kotlin+KTX
// Create file metadata with property to delete val metadata = storageMetadata { contentType = null } // Delete the metadata property forestRef.updateMetadata(metadata).addOnSuccessListener { updatedMetadata -> // updatedMetadata.contentType should be null }.addOnFailureListener { // Uh-oh, an error occurred! }
Java
// Create file metadata with property to delete StorageMetadata metadata = new StorageMetadata.Builder() .setContentType(null) .build(); // Delete the metadata property forestRef.updateMetadata(metadata) .addOnSuccessListener(new OnSuccessListener<StorageMetadata>() { @Override public void onSuccess(StorageMetadata storageMetadata) { // metadata.contentType should be null } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception exception) { // Uh-oh, an error occurred! } });
จัดการข้อผิดพลาด
มีสาเหตุหลายประการที่อาจทำให้เกิดข้อผิดพลาดในการรับหรืออัปเดต ข้อมูลเมตา ซึ่งรวมถึงไฟล์ที่ไม่มีอยู่หรือผู้ใช้ไม่มีสิทธิ์ เพื่อเข้าถึงไฟล์ที่ต้องการ ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดได้ใน จัดการข้อผิดพลาด ของเอกสาร
ข้อมูลเมตาที่กำหนดเอง
คุณสามารถระบุข้อมูลเมตาที่กำหนดเองโดยใช้เมธอด setCustomMetadata()
ใน
ชั้นเรียนStorageMetadata.Builder
Kotlin+KTX
val metadata = storageMetadata { setCustomMetadata("location", "Yosemite, CA, USA") setCustomMetadata("activity", "Hiking") }
Java
StorageMetadata metadata = new StorageMetadata.Builder() .setCustomMetadata("location", "Yosemite, CA, USA") .setCustomMetadata("activity", "Hiking") .build();
คุณสามารถจัดเก็บข้อมูลเฉพาะแอปสำหรับแต่ละไฟล์ไว้ในข้อมูลเมตาที่กำหนดเอง แต่เรามี ขอแนะนำให้ใช้ฐานข้อมูล (เช่น Firebase Realtime Database) เพื่อจัดเก็บและซิงค์ข้อมูลประเภทนี้
พร็อพเพอร์ตี้ข้อมูลเมตาของไฟล์
รายการพร็อพเพอร์ตี้ข้อมูลเมตาทั้งหมดในไฟล์พร้อมใช้งานที่ด้านล่าง
Getter พร็อพเพอร์ตี้ | ประเภท | มีตัวตั้งค่าแล้ว |
---|---|---|
getBucket |
String |
ไม่ |
getGeneration |
String |
ไม่ |
getMetadataGeneration |
String |
ไม่ |
getPath |
String |
ไม่ |
getName |
String |
ไม่ |
getSizeBytes |
long |
ไม่ |
getCreationTimeMillis |
long |
ไม่ |
getUpdatedTimeMillis |
long |
ไม่ |
getMd5Hash |
String |
ไม่ |
getCacheControl |
String |
ใช่ |
getContentDisposition |
String |
ใช่ |
getContentEncoding |
String |
ใช่ |
getContentLanguage |
String |
ใช่ |
getContentType |
String |
ใช่ |
getCustomMetadata |
String |
ใช่ |
getCustomMetadataKeys |
Set<String> |
ไม่ |
การอัปโหลด ดาวน์โหลด และอัปเดตไฟล์เป็นสิ่งสำคัญ แต่การที่สามารถ เพื่อนำออก มาดูวิธีการกัน ลบไฟล์ จาก Cloud Storage