Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Использование метаданных файлов с облачным хранилищем для Unity

После загрузки файла в справочник Cloud Storage вы также можете получить и обновить метаданные файла, например, для обновления типа содержимого. Файлы также могут хранить настраиваемые пары ключ / значение с дополнительными метаданными файла.

Получить метаданные файла

Метаданные Файл содержит общие свойства , такие как Name , SizeBytes и ContentType (часто называемый как тип MIME) в дополнение к некоторым менее распространенные из них , как ContentDisposition и CreationTimeMillis . Эти метаданные можно получить из справочника облачного хранилища с GetMetadataAsync метода GetMetadataAsync .

// Create reference to the file whose metadata we want to retrieve
Firebase.Storage.StorageReference forest_ref =
  storage_ref.Child("images/forest.jpg");

// Get metadata properties
forest_ref.GetMetadataAsync().ContinueWith((Task<StorageMetadata> task) => {
  if (!task.IsFaulted && !task.IsCanceled) {
    Firebase.Storage.StorageMetadata meta = task.Result;
    // do stuff with meta
  }
});

Обновить метаданные файла

Вы можете обновить метаданные файла в любое время после завершения загрузки файла с помощью метода UpdateMetadataAsync который принимает объект MetadataChange . См. Полный список для получения дополнительной информации о том, какие свойства можно обновить. Обновляются только свойства, указанные в метаданных, все остальные остаются без изменений.

// Create reference to the file whose metadata we want to change
StorageReference forest_ref = storage_ref.child("images/forest.jpg");

// Create file metadata to update
var new_metadata = new Firebase.Storage.MetadataChange();
new_metadata.CacheControl = "public,max-age=300";
new_metadata.ContentType = "image/jpeg";

// Update metadata properties
forest_ref.UpdateMetadataAsync(new_metadata).ContinueWith(task => {
    if (!task.IsFaulted && !task.IsCanceled) {
        // access the updated meta data
        Firebase.Storage.StorageMetadata meta = task.Result;
    }
});

Вы можете удалить доступные для записи свойства метаданных, передав пустую строку:

// Create file metadata to update
var new_metadata = new Firebase.Storage.MetadataChange();
new_metadata.ContentType = "";

// Update metadata properties
forest_ref.UpdateMetadataAsync(new_metadata).ContinueWith(task => {
    if (!task.IsFaulted && !task.IsCanceled) {
        Firebase.Storage.StorageMetadata meta = task.Result;
        // meta.ContentType should be an empty string now
    }
});

Обработка ошибок

Существует ряд причин, по которым могут возникать ошибки при получении или обновлении метаданных, включая несуществующий файл или отсутствие у пользователя разрешения на доступ к желаемому файлу. Дополнительную информацию об ошибках можно найти в разделе « Обработка ошибок » документации.

Пользовательские метаданные

Вы можете указать пользовательские метаданные как Dictionary<string, string> .

var new_metadata = new Firebase.Storage.MetadataChange {
  CustomMetadata = new Dictionary<string, string> {
     {"location", "Yosemite, CA, USA"},
     {"activity", "Hiking"}
  }
}

// UpdateMetadataAsync

Вы можете хранить данные, относящиеся к конкретному приложению, для каждого файла в пользовательских метаданных, но мы настоятельно рекомендуем использовать базу данных (например, Firebase Realtime Database ) для хранения и синхронизации этого типа данных.

Свойства метаданных файла

Полный список свойств метаданных файла доступен ниже:

Свойство Тип Возможность изменения в MetadataChange
Bucket string Нет
Generation string Нет
MetadataGeneration string Нет
Path string Нет
Name string Нет
SizeBytes long Нет
CreationTimeMillis long Нет
UpdatedTimeMillis long Нет
CacheControl string ДА
ContentDisposition string ДА
ContentEncoding string ДА
ContentLanguage string ДА
ContentType string ДА
DownloadUrl Uri Нет
DownloadUrls IList<Uri> Нет
CustomMetadataKeys IEnumerable<string> ДА

Следующие шаги

Загрузка, скачивание и обновление файлов важны, но не менее важна возможность их удаления. Давайте узнаем, как удалить файлы из облачного хранилища.