forked from HenrikJoreteg/google-cloud-signedurl-test-case
/
server.js
50 lines (42 loc) · 1.03 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
const PROJECT_ID = 'lofty-hall-146709'
const BUCKET_NAME = 'lofty-hall-146709.appspot.com'
const KEY_FILE_PATH = 'keyfile.json'
var app = require('express')()
const gcloud = require('google-cloud')
const gcs = gcloud.storage({
projectId: PROJECT_ID,
keyFilename: KEY_FILE_PATH
})
const bucket = gcs.bucket(BUCKET_NAME)
app.get('/url', (req, res) => {
const file = req.query.file
const type = req.query.type
if (!file) {
res.code(400)
res.send('include filename as \'file\' query param')
return
}
if (!type) {
res.code(400)
res.send('include content-type as \'type\' query param')
return
}
bucket.file(file).getSignedUrl({
action: 'write',
expires: Date.now() + 6000000,
contentType: type
}, (error, signedUrl) => {
if (error == null) {
res.send(signedUrl)
} else {
res.code(400)
res.send('error')
}
})
})
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html')
})
app.listen(3000, function () {
console.log('listening on port 3000!')
})