Exemple #1
0
		get: function(id, metadata){
			//print("FileSystem get(): " + id);
			var filename,extraParts;
			var parts = getFilePathAndMetadata(id);
			extraParts = parts.extra;
			var fp= parts.file; 
			try{
				if (fs.statSync(filename).isFile()){
					filename = fp;
				}			
			}catch(e){
				if (!options.defaultExtension) return;

				fp += options.defaultExtension ? ("."+options.defaultExtension):"";
				try {
					if (fs.statSync(fp).isFile()) {
						filename = fp;
					}
				}catch(e){
					return;
				}
			}

			var extension = filename.match(/\.[^\.]+$/);
			var f = new BinaryFile();

			f.forEach = function(callback){
				var file = fs.open(filename, "br");
				return file.forEach(callback);
			};
			f.forEach.binary = true;
				
			f.getMetadata = function(){
				return f;
			}
			var pathParts = filename.split("/")
			var fname = pathParts[pathParts.length-1];
			Object.defineProperty(f,"alternates",{
				value: [f]
			});
			f.id = id;
			var explicitType = extraParts && extraParts[0];
			var explicitDisposition = extraParts && extraParts[1];
			if(!explicitDisposition && explicitType && explicitType.indexOf("/") == -1){
				explicitDisposition = explicitType;
				explicitType = false;
			} 
			f['content-type']= explicitType || MIME_TYPES[extension] ;

			f['content-disposition']= ((explicitDisposition && (explicitDisposition.charAt(0)=="a")) ? "attachment" : "inline") + "; filename=" + fname;
			f["content-length"]=fs.statSync(filename).size;

			return f;
		},
Exemple #2
0
	store.transaction= function(){
		try{
			var stat = fs.statSync(options.filename);
		}catch(e){
		}
		if(stat && stat.mtime){
			var fileTime = stat.mtime.getTime();
			if(fileTime > lastMod){
				lastMod = fileTime;
				var contents = fs.read(options.filename);
				if(contents){
					var data = JSONExt.parse(contents);
					store.setIndex(data);
				}
			}
		}

		return {
			commit: function(){
				fs.writeFileSync(options.filename, JSONExt.stringify(store.index));
			},
			abort: function(){
			}
		};
	};
Exemple #3
0
	store.getLastModified = function(){
		try{
			var stat = fs.statSync(options.filename);
		}catch(e){
			print(e);
		}
		if(stat && stat.mtime){
			return stat.mtime;
		}
	};