Korzystaj z metadanych plików w Cloud Storage na platformach Apple

Po przesłaniu pliku do Cloud Storage możesz także pobrać i zaktualizować metadane pliku, na przykład w celu aktualizacji typu zawartości. Pliki mogą również przechowywać niestandardowe pary klucz/wartość z dodatkowymi metadanymi pliku.

Pobierz metadane pliku

Metadane pliku zawierają wspólne właściwości, takie jak name , size i contentType (często określane jako typ MIME), a także mniej popularne, takie jak contentDisposition i timeCreated . Te metadane można pobrać z odniesienia do Cloud Storage przy użyciu metody metadataWithCompletion:

Szybki

// Create reference to the file whose metadata we want to retrieve
let forestRef = storageRef.child("images/forest.jpg")

// Get metadata properties
do {
  let metadata = try await forestRef.getMetadata()
} catch {
  // ...
}
    

Cel C

// Create reference to the file whose metadata we want to retrieve
FIRStorageReference *forestRef = [storageRef child:@"images/forest.jpg"];

// Get metadata properties
[forestRef metadataWithCompletion:^(FIRStorageMetadata *metadata, NSError *error) {
  if (error != nil) {
    // Uh-oh, an error occurred!
  } else {
    // Metadata now contains the metadata for 'images/forest.jpg'
  }
}];
  

Zaktualizuj metadane pliku

Metadane pliku możesz zaktualizować w dowolnym momencie po zakończeniu przesyłania pliku, korzystając z metody updateMetadata:withCompletion: Więcej informacji na temat właściwości, które można aktualizować, można znaleźć na pełnej liście . Aktualizowane są tylko właściwości określone w metadanych, wszystkie pozostałe pozostają niezmienione.

Szybki

// Create reference to the file whose metadata we want to change
let forestRef = storageRef.child("images/forest.jpg")

// Create file metadata to update
let newMetadata = StorageMetadata()
newMetadata.cacheControl = "public,max-age=300"
newMetadata.contentType = "image/jpeg"

// Update metadata properties
do {
  let updatedMetadata = try await forestRef.updateMetadata(newMetadata)
} catch {
  // ...
}
    

Cel C

// Create reference to the file whose metadata we want to change
FIRStorageReference *forestRef = [storageRef child:@"images/forest.jpg"];

// Create file metadata to update
FIRStorageMetadata *newMetadata = [[FIRStorageMetadata alloc] init];
newMetadata.cacheControl = @"public,max-age=300";
newMetadata.contentType = @"image/jpeg";

// Update metadata properties
[forestRef updateMetadata:newMetadata completion:^(FIRStorageMetadata *metadata, NSError *error){
  if (error != nil) {
    // Uh-oh, an error occurred!
  } else {
    // Updated metadata for 'images/forest.jpg' is returned
  }
}];
  

Możesz usunąć zapisywalne właściwości metadanych, ustawiając je na nil :

Cel C

FIRStorageMetadata *newMetadata = [[FIRStorageMetadata alloc] init];
newMetadata.contentType = nil;

// Delete the metadata property
[forestRef updateMetadata:newMetadata completion:^(FIRStorageMetadata *metadata, NSError *error){
  if (error != nil) {
    // Uh-oh, an error occurred!
  } else {
    // metadata.contentType should be nil
  }
}];

Szybki

let newMetadata = StorageMetadata()
newMetadata.contentType = nil

do {
  // Delete the metadata property
  let updatedMetadata = try await forestRef.updateMetadata(newMetadata)
} catch {
  // ...
}

Obsługa błędów

Istnieje wiele powodów, dla których mogą wystąpić błędy podczas pobierania lub aktualizowania metadanych, na przykład nieistniejący plik lub brak uprawnień dostępu użytkownika do żądanego pliku. Więcej informacji na temat błędów można znaleźć w sekcji Obsługiwanie błędów w dokumentacji.

Niestandardowe metadane

Możesz określić niestandardowe metadane jako NSDictionary zawierający właściwości NSString .

Szybki

let metadata = [
  "customMetadata": [
    "location": "Yosemite, CA, USA",
    "activity": "Hiking"
  ]
]
    

Cel C

NSDictionary *metadata = @{
  @"customMetadata": @{
    @"location": @"Yosemite, CA, USA",
    @"activity": @"Hiking"
  }
};

Możesz przechowywać dane specyficzne dla aplikacji dla każdego pliku w niestandardowych metadanych, ale zdecydowanie zalecamy korzystanie z bazy danych (takiej jak baza danych Firebase Realtime Database ) do przechowywania i synchronizowania tego typu danych.

Właściwości metadanych pliku

Pełna lista właściwości metadanych pliku jest dostępna poniżej:

Nieruchomość Typ Możliwość zapisu
bucket Strunowy NIE
generation Strunowy NIE
metageneration Strunowy NIE
fullPath Strunowy NIE
name Strunowy NIE
size Int64 NIE
timeCreated Data NIE
updated Data NIE
md5Hash Strunowy Tak
cacheControl Strunowy Tak
contentDisposition Strunowy Tak
contentEncoding Strunowy Tak
contentLanguage Strunowy Tak
contentType Strunowy Tak
customMetadata [Ciąg: Ciąg] Tak

Przesyłanie, pobieranie i aktualizowanie plików jest ważne, ale równie ważna jest możliwość ich usunięcia. Dowiedzmy się, jak usunąć pliki z Cloud Storage.