Google setzt sich dafür ein, die Rassengerechtigkeit für schwarze Gemeinschaften zu fördern. Siehe wie.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Verwenden Sie Dateimetadaten unter Android

Nach dem Hochladen einer Datei in die Cloud Storage-Referenz können Sie auch die Dateimetadaten abrufen und aktualisieren, um beispielsweise den Inhaltstyp anzuzeigen oder zu aktualisieren. Dateien können auch benutzerdefinierte Schlüssel / Wert-Paare mit zusätzlichen Dateimetadaten speichern.

Datei-Metadaten abrufen

Datei - Metadaten enthält allgemeine Eigenschaften wie name , size und contentType (oft als MIME - Typ) zusätzlich zu einigen weniger häufig diejenigen wie contentDisposition und timeCreated . Diese Metadaten können mit der Methode getMetadata() aus einer Cloud-Speicherreferenz abgerufen werden.

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

Aktualisieren Sie die Dateimetadaten

Sie können updateMetadata() jederzeit nach Abschluss des Datei-Uploads mithilfe der updateMetadata() -Methode updateMetadata() . Weitere Informationen darüber, welche Eigenschaften aktualisiert werden können, finden Sie in der vollständigen Liste . Nur die in den Metadaten angegebenen Eigenschaften werden aktualisiert, alle anderen bleiben unverändert.

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

Sie können beschreibbare Metadateneigenschaften löschen, indem Sie null :

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

Fehler behandeln

Es gibt eine Reihe von Gründen, warum beim Abrufen oder Aktualisieren von Metadaten Fehler auftreten können, einschließlich der nicht vorhandenen Datei oder der Tatsache, dass der Benutzer keine Berechtigung zum Zugriff auf die gewünschte Datei hat. Weitere Informationen zu Fehlern finden Sie im Abschnitt Fehler behandeln in den Dokumenten.

Benutzerdefinierte Metadaten

Sie können benutzerdefinierte Metadaten mit der Methode setCustomMetadata() in der StorageMetadata.Builder Klasse angeben.

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")
}

Sie können app-spezifische Daten für jede Datei in benutzerdefinierten Metadaten speichern. Wir empfehlen jedoch dringend, eine Datenbank (z. B. die Firebase-Echtzeitdatenbank ) zum Speichern und Synchronisieren dieses Datentyps zu verwenden.

Eigenschaften von Dateimetadaten

Eine vollständige Liste der Metadateneigenschaften einer Datei finden Sie unten:

Property Getter Art Setter existiert
getBucket String NEIN
getGeneration String NEIN
getMetadataGeneration String NEIN
getPath String NEIN
getName String NEIN
getSizeBytes long NEIN
getCreationTimeMillis long NEIN
getUpdatedTimeMillis long NEIN
getMd5Hash String NEIN
getCacheControl String JA
getContentDisposition String JA
getContentEncoding String JA
getContentLanguage String JA
getContentType String JA
getCustomMetadata String JA
getCustomMetadataKeys Set<String> NEIN

Das Hochladen, Herunterladen und Aktualisieren von Dateien ist wichtig, aber auch das Entfernen. Lassen Sie uns lernen, wie Sie Dateien aus dem Cloud-Speicher löschen .