Преглед изворни кода

add support for public files

Brian Gough пре 11 година
родитељ
комит
7e9f8b885b

+ 8 - 0
services/filestore/app.coffee

@@ -77,6 +77,14 @@ app.get  "/template/:template_id/v/:version/:format", keyBuilder.templateFileKey
 app.get  "/template/:template_id/v/:version/:format/:sub_type", keyBuilder.templateFileKey, fileController.getFile
 app.post "/template/:template_id/v/:version/:format", keyBuilder.templateFileKey, fileController.insertFile
 
+
+app.get  "/project/:project_id/public/:public_file_id", keyBuilder.publicFileKey, fileController.getFile
+app.post "/project/:project_id/public/:public_file_id", keyBuilder.publicFileKey, fileController.insertFile
+
+app.put "/project/:project_id/public/:public_file_id", keyBuilder.publicFileKey, fileController.copyFile
+app.del "/project/:project_id/public/:public_file_id", keyBuilder.publicFileKey, fileController.deleteFile
+
+
 app.get "/heapdump", (req, res)->
 	require('heapdump').writeSnapshot '/tmp/' + Date.now() + '.filestore.heapsnapshot', (err, filename)->
 		res.send filename

+ 9 - 0
services/filestore/app/coffee/KeyBuilder.coffee

@@ -23,6 +23,15 @@ module.exports =
 		req.bucket = settings.filestore.stores.user_files
 		next()
 		
+	publicFileKey: (req, res, next)->
+		{project_id, public_file_id} = req.params
+		if not settings.filestore.stores.public_files?
+			res.status(501).send("public files not available")
+		else
+			req.key = "#{project_id}/#{public_file_id}"
+			req.bucket = settings.filestore.stores.public_files
+			next()
+
 	templateFileKey: (req, res, next)->
 		{template_id, format, version, sub_type} = req.params
 		req.key = "#{template_id}/v/#{version}/#{format}"

+ 1 - 0
services/filestore/config/settings.defaults.coffee

@@ -21,6 +21,7 @@ module.exports =
 			# Must contain full path, e.g. "/var/lib/sharelatex/data".
 			# This path must exist, not be tmpfs and be writable to by the user sharelatex is run as.
 			user_files: Path.resolve(__dirname + "/../user_files")
+			public_files: Path.resolve(__dirname + "/../public_files")
 			template_files: Path.resolve(__dirname + "/../template_files")
 		# if you are using S3, then fill in your S3 details below
 		# s3: