Может ли 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.
Всякий раз, когда вам нужно получить путь из улья, получите файл из локального хранилища, используя этот путь.