Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Views: 39538
1
###
2
Filesystem based bucket -- same api as gcloud bucket.
3
4
Motivation: in KuCalc we use gcsfuse to just mount the smc-blobs bucket
5
defined in smc-gcloud.
6
###
7
8
fs = require('fs')
9
10
{defaults} = misc = require('smc-util/misc')
11
required = defaults.required
12
13
exports.filesystem_bucket = (opts) ->
14
opts = defaults opts,
15
name : required
16
if not opts.name
17
throw Error("bucket name must be specified")
18
return new FilesystemBucket(opts.name)
19
20
class FilesystemBucket
21
constructor: (@path) ->
22
23
blob_path: (name) =>
24
return "#{@path}/#{name}"
25
26
write: (opts) =>
27
opts = defaults opts,
28
name : required
29
content : required
30
cb : required
31
fs.writeFile(@blob_path(opts.name), opts.content, opts.cb)
32
33
34
read: (opts) =>
35
opts = defaults opts,
36
name : required
37
cb : required
38
fs.readFile(@blob_path(opts.name), opts.cb)
39
40
delete: (opts) =>
41
opts = defaults opts,
42
name : required
43
cb : undefined
44
fs.unlink(@blob_path(opts.name), (err)->opts.cb?(err))
45