Может ли Hive в Flutter Store BigData (некоторые файлы GB)

Я думал, если я сохраню видео или фильм и открою этот ящик, будет ли это видео храниться в моей оперативной памяти или оно просто загрузится из ROM. Я немного сбит с толку: может ли кто-нибудь мне это объяснить?

2 ответа

Я думаю, вы неправильно поняли концепцию базы данных.

  • Любое решение для базы данных предназначено для хранения чисто информационных организованных данных. Не хранить большие файлы, такие как мультимедиа, документы или изображения.

  • Напротив, нет необходимости организовывать хранение, все файлы могут находиться в одной папке.

Итак, любое решение для базы данных, которое вы используете, всегда хранит типы данных. В этом случае у вас может быть модель данных, которая также важна при использовании базы данных.

@HiveType(typeId: 0)
class Movie extends HiveObject {

  @HiveField(0)
  String name;

  @HiveField(1)
  int path;
}

Поскольку Hive поддерживает объекты Dart, вам не нужно преобразовывать в Json или что-либо подобное для строки Data.

Итак, когда у вас есть файл, полученный из Storag, вы можете получить путь, используя path_provider или из самого файла, а затем создать объект

File file = await // get the movie file using any means

final path = file.path

var box = await Hive.openBox('Movies');

var m = Movie()
  ..name = 'Batman Begins'
  ..path = path ;
box.add(m);

m.save();

Надеюсь, это развеет ваши сомнения.

Скопируйте / сохраните файлы видео / мультимедиа в локальном хранилище файлов и сохраните путь к файлу в Hive Box.

Всякий раз, когда вам нужно получить путь из улья, получите файл из локального хранилища, используя этот путь.

Другие вопросы по тегам