Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Android'de Dosya Meta Verilerini Kullanın

Bir dosyayı Cloud Storage referansına yükledikten sonra, örneğin içerik türünü görüntülemek veya güncellemek için dosya meta verilerini de alabilir ve güncelleyebilirsiniz. Dosyalar, ek dosya meta verileriyle özel anahtar / değer çiftlerini de depolayabilir.

Dosya Meta Verilerini Al

Dosya meta verileri, contentDisposition ve timeCreated gibi daha az yaygın olanlara ek olarak name , size ve contentType (genellikle MIME türü olarak adlandırılır) gibi yaygın özellikleri içerir. Bu meta veriler, getMetadata() yöntemi kullanılarak bir Cloud Storage referansından alınabilir.

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

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 now contains the metadata for 'images/forest.jpg'
}.addOnFailureListener {
    // Uh-oh, an error occurred!
}

Dosya Meta Verilerini Güncelle

updateMetadata() yöntemini kullanarak dosya yükleme işlemi tamamlandıktan sonra istediğiniz zaman dosya meta verilerini güncelleyebilirsiniz. Hangi özelliklerin güncellenebileceği hakkında daha fazla bilgi için tam listeye bakın. Yalnızca meta verilerde belirtilen özellikler güncellenir, diğerleri değiştirilmeden bırakılır.

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

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 {
    // Updated metadata is in storageMetadata
}.addOnFailureListener {
    // Uh-oh, an error occurred!
}

null değerini ileterek yazılabilir meta veri özelliklerini silebilirsiniz:

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

Kotlin + ktx

// Create file metadata with property to delete
val metadata = storageMetadata {
    contentType = null
}

// Delete the metadata property
forestRef.updateMetadata(metadata).addOnSuccessListener {
    // metadata.contentType should be null
}.addOnFailureListener {
    // Uh-oh, an error occurred!
}

Hataları İşleme

Dosya mevcut olmaması veya kullanıcının istenen dosyaya erişim iznine sahip olmaması da dahil olmak üzere, meta verileri alırken veya güncellerken hataların oluşmasının birkaç nedeni vardır. Belgelerin Hataları İşleme bölümünde hatalarla ilgili daha fazla bilgi bulunabilir.

Özel Meta Veriler

Sen kullanarak özel meta belirtebilirsiniz setCustomMetadata() yöntemini StorageMetadata.Builder sınıfında.

Java

StorageMetadata metadata = new StorageMetadata.Builder()
        .setCustomMetadata("location", "Yosemite, CA, USA")
        .setCustomMetadata("activity", "Hiking")
        .build();

Kotlin + ktx

val metadata = storageMetadata {
    setCustomMetadata("location", "Yosemite, CA, USA")
    setCustomMetadata("activity", "Hiking")
}

Her dosya için uygulamaya özgü verileri özel meta verilerde depolayabilirsiniz, ancak bu tür verileri depolamak ve senkronize etmek için bir veritabanı ( Firebase Realtime Veritabanı gibi ) kullanmanızı önemle tavsiye ederiz.

Dosya Meta Verileri Özellikleri

Bir dosyadaki meta veri özelliklerinin tam listesi aşağıda mevcuttur:

Mülk Sahibi tip 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

Dosyaları yüklemek, indirmek ve güncellemek önemlidir, ancak onları kaldırabilmek de önemlidir. Dosyaları Cloud Storage'dan nasıl sileceğinizi öğrenelim.