Я пытаюсь загрузить изображения HEIC в Firebase, но в консоли отображается тип «application/octet-stream», и все метаданные EXIF исчезли. Это работает так, как задумано?
Вот как я делаю загрузку:
func upload(image: UIImage) async throws -> URL {
let data = image.heicData()!
_ = try await storage.reference().child("path/to/image.heic")
return try await path.downloadURL()
}
Он работает так, как задумано.
Firebase Storage не пытается каким-либо образом интерпретировать загружаемый вами файл или байты. Это всего лишь байты, и это то, что означает «приложение/октет-поток». Для Firebase метаданные EXIF — это просто дополнительные байты в файле.
Если вы загрузите файл еще раз, он по-прежнему будет содержать все, что вы загрузили, включая все метаданные, встроенные в файл.
Если вы хотите записать метаданные или изменить тип контента в хранилище во время загрузки, вы можете сделать это самостоятельно, используя предоставленный API, как показано в документации. Но ничто из этого не изменит загруженный или загруженный контент, потому что эти байты никогда не изменятся.