/// <summary> /// Open/Create new file storage and returns linked Stream to write operations. /// </summary> public LiteFileStream <TFileId> OpenWrite(TFileId id, string filename, BsonDocument metadata = null) { // get _id as BsonValue var fileId = _db.Mapper.Serialize(typeof(TFileId), id); // checks if file exists var file = this.FindById(id); if (file == null) { file = new LiteFileInfo <TFileId> { Id = id, Filename = Path.GetFileName(filename), MimeType = MimeTypeConverter.GetMimeType(filename), Metadata = metadata ?? new BsonDocument() }; // set files/chunks instances file.SetReference(fileId, _files, _chunks); } else { // if filename/metada was changed file.Filename = Path.GetFileName(filename); file.MimeType = MimeTypeConverter.GetMimeType(filename); file.Metadata = metadata ?? file.Metadata; } return(file.OpenWrite()); }
public LiteFileInfo(string id, string filename) { if (!IdPattern.IsMatch(id)) { throw LiteException.InvalidFormat("FileId", id); } this.Id = id; this.Filename = Path.GetFileName(filename); this.MimeType = MimeTypeConverter.GetMimeType(this.Filename); this.Length = 0; this.UploadDate = DateTime.Now; this.Metadata = new BsonDocument(); }
public FileEntry(string id, string filename) { if (!Regex.IsMatch(id, ID_PATTERN)) { throw new LiteException("Invalid file id format."); } this.Id = id; this.Filename = Path.GetFileName(filename); this.MimeType = MimeTypeConverter.GetMimeType(this.Filename); this.Length = 0; this.UploadDate = DateTime.Now; this.Metadata = new BsonObject(); }
internal LiteFileInfo(LiteEngine engine, string id, string filename) { if (!IdPattern.IsMatch(id)) { throw LiteException.InvalidFormat(id); } _engine = engine; this.Id = id; this.Filename = Path.GetFileName(filename); this.MimeType = MimeTypeConverter.GetMimeType(this.Filename); this.Length = 0; this.Chunks = 0; this.UploadDate = DateTime.Now; this.Metadata = new BsonDocument(); }