Dart Documentationmongo_dartGridFSFile

GridFSFile class

class GridFSFile {
 GridFS fs = null;
 var id;
 String filename;
 String contentType;
 int length;
 int chunkSize;
 DateTime uploadDate;
 Map<String, Object> extraData;
 String md5;

 GridFSFile([Map data = const {}]) {
     this.data = data;
 }

 Future<Map> save() {
   if (fs == null) {
     throw new MongoDartError('Need fs');
   }
   Map tempData = data;
   return fs.files.insert(tempData);
 }

 Future<bool> validate() {
   if (fs == null) {
     throw new MongoDartError('no fs');
   }
   if (md5 == null) {
     throw new MongoDartError('no md5 stored');
   }

   Completer completer = new Completer();
   // query for md5 at filemd5
   DbCommand dbCommand = new DbCommand(
       fs.database,fs.bucketName,0,0,1,{"filemd5" : id}, {"md5" : 1});
   fs.database.executeDbCommand(dbCommand).then((Map data) {
     if (data != null && data.containsKey("md5")) {
       completer.complete(md5 == data["md5"]);
     } else {
       completer.complete(false);
     }
   });
   return completer.future;
 }

 int numChunks() {
   return (length.toDouble() / chunkSize).ceil().toInt();
 }

 List<String> get aliases {
   return extraData["aliases"];
 }

 Map get metaData {
   return extraData["metadata"];
 }

 set metaData(Map metaData) {
   extraData["metadata"] = metaData;
 }

 Map get data {
   Map result = {
     "_id" : id,
     "filename" : filename,
     "contentType" : contentType,
     "length" : length,
     "chunkSize" : chunkSize,
     "uploadDate" : uploadDate,
     "md5" : md5,
   };
   extraData.forEach((String key, Object value) {
     result[key] = value;
   });
   return result;
 }

 set data(Map input) {
   extraData = new Map.from(input);

   // Remove the known keys. Leaving the extraData. 
   id = extraData.remove("_id");
   filename = extraData.remove("filename");
   contentType = extraData.remove("contentType");
   length = extraData.remove("length");
   chunkSize = extraData.remove("chunkSize");
   uploadDate = extraData.remove("uploadDate");
   md5 = extraData.remove("md5");
 }

 void setGridFS( GridFS fs ) {
   this.fs = fs;
 }
}

Subclasses

GridIn, GridOut

Constructors

new GridFSFile([Map data = const{}]) #

Creates a new Object instance.

Object instances have no meaningful state, and are only useful through their identity. An Object instance is equal to itself only.

docs inherited from Object
GridFSFile([Map data = const {}]) {
   this.data = data;
}

Properties

final List<String> aliases #

List<String> get aliases {
 return extraData["aliases"];
}

int chunkSize #

int chunkSize

String contentType #

String contentType

Map data #

Map get data {
 Map result = {
   "_id" : id,
   "filename" : filename,
   "contentType" : contentType,
   "length" : length,
   "chunkSize" : chunkSize,
   "uploadDate" : uploadDate,
   "md5" : md5,
 };
 extraData.forEach((String key, Object value) {
   result[key] = value;
 });
 return result;
}
set data(Map input) {
 extraData = new Map.from(input);

 // Remove the known keys. Leaving the extraData. 
 id = extraData.remove("_id");
 filename = extraData.remove("filename");
 contentType = extraData.remove("contentType");
 length = extraData.remove("length");
 chunkSize = extraData.remove("chunkSize");
 uploadDate = extraData.remove("uploadDate");
 md5 = extraData.remove("md5");
}

Map<String, Object> extraData #

Map<String, Object> extraData

String filename #

String filename

GridFS fs #

GridFS fs = null

var id #

var id

int length #

int length

String md5 #

String md5

Map metaData #

Map get metaData {
 return extraData["metadata"];
}
set metaData(Map metaData) {
 extraData["metadata"] = metaData;
}

DateTime uploadDate #

DateTime uploadDate

Methods

int numChunks() #

int numChunks() {
 return (length.toDouble() / chunkSize).ceil().toInt();
}

Future<Map> save() #

Future<Map> save() {
 if (fs == null) {
   throw new MongoDartError('Need fs');
 }
 Map tempData = data;
 return fs.files.insert(tempData);
}

void setGridFS(GridFS fs) #

void setGridFS( GridFS fs ) {
 this.fs = fs;
}

Future<bool> validate() #

Future<bool> validate() {
 if (fs == null) {
   throw new MongoDartError('no fs');
 }
 if (md5 == null) {
   throw new MongoDartError('no md5 stored');
 }

 Completer completer = new Completer();
 // query for md5 at filemd5
 DbCommand dbCommand = new DbCommand(
     fs.database,fs.bucketName,0,0,1,{"filemd5" : id}, {"md5" : 1});
 fs.database.executeDbCommand(dbCommand).then((Map data) {
   if (data != null && data.containsKey("md5")) {
     completer.complete(md5 == data["md5"]);
   } else {
     completer.complete(false);
   }
 });
 return completer.future;
}