Android'de Cloud Storage ile dosya meta verilerini kullanma

Cloud Storage referansına dosya yükledikten sonra şunu da alabilirsiniz: ve dosya meta verilerini güncelleyin (örneğin, içerik türünü görüntülemek veya güncellemek için). Dosyalar, ek dosya meta verileriyle birlikte özel anahtar/değer çiftlerini de depolayabilir.

Dosya Meta Verilerini Alma

Dosya meta verileri name, size ve contentType (genellikle MIME türü olarak adlandırılır) ve daha az contentDisposition ve timeCreated gibi yaygın örnekler. Bu meta veri, Cloud Storage referansından alındı: getMetadata() yöntemi.

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!
    }
});

Dosya Meta Verilerini Güncelleme

Dosya meta verilerini, dosya yüklemesi tamamlandıktan sonra istediğiniz zaman (updateMetadata() yöntemini kullanarak). Daha fazla bilgi için özellikleri hakkında daha fazla bilgi için tam listeye güncellenebilir. Yalnızca meta veride belirtilen özellikler güncellenir, diğer tüm değişiklikler değiştirilmeden bırakılır.

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 öğesini ileterek yazılabilir meta veri özelliklerini silebilirsiniz:

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!
            }
        });

Hataları Giderme

Bilgileri alma veya güncelleme sırasında hataların oluşmasının birkaç nedeni vardır: mevcut olmayan veya kullanıcının izni olmayan kullanıcı da dahil olmak üzere meta veriler istediğiniz dosyaya erişin. Hatalarla ilgili daha fazla bilgiyi şurada bulabilirsiniz: Hataları İşleme bölümünde bulabilirsiniz.

Özel Meta Veriler

Şuradaki setCustomMetadata() yöntemini kullanarak özel meta veri belirtebilirsiniz: StorageMetadata.Builder sınıf.

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();

Her dosya için uygulamaya özel verileri özel meta verilerde saklayabilirsiniz. Ancak bir veritabanı (örneğin, Firebase Realtime Database) depolama ve senkronize etme olanağı sunar.

Dosya Meta Verisi Özellikleri

Bir dosyadaki meta veri özelliklerinin tam listesini aşağıda bulabilirsiniz:

Gayrimenkul Alıcı Tür Setter Var
getBucket String HAYIR
getGeneration String HAYIR
getMetadataGeneration String HAYIR
getPath String HAYIR
getName String HAYIR
getSizeBytes long HAYIR
getCreationTimeMillis long HAYIR
getUpdatedTimeMillis long HAYIR
getMd5Hash String HAYIR
getCacheControl String EVET
getContentDisposition String EVET
getContentEncoding String EVET
getContentLanguage String EVET
getContentType String EVET
getCustomMetadata String EVET
getCustomMetadataKeys Set<String> HAYIR

Dosya yüklemek, indirmek ve güncellemek önemlidir ancak tıklayın. Şimdi nasıl uygulayacağımızı dosyaları sil Cloud Storage'dan edinilebilir.