An easy google storage tool to upload file and generate public link as return (both file uploading and buffer streaming).
A wrapper base on gcloud, which around the google storage functions for upload (both file uploading and streaming) and delete.
$ npm install --save gcloud-storage-api
googleAPI.uploadLocalFile(BUCKET_NAME, fileName, fileLocalPath)
googleAPI.uploadBuffer(BUCKET_NAME, fileName, buffer)
googleAPI.deleteStorageFile(url)
To get the projectId and key.json, it is needed to Visit the Google Developers Console. There is the offical instruction from gcloud: https://www.npmjs.com/package/gcloud
Create a service account key on Google Cloud Console:
Key type, select JSON, and then a service-key.json is generated and able to download:
Paste the service-key to root of NODE project
service-key.json
Initializing gcloud
var googleAPI = require('gcloud-storage-api')
googleAPI.init('projectId',"service-key.json")
- googleAPI.formParsing is a fomidable function which parsing local file with POST is multipart
- googleAPI.uploadLocalFile(BUCKET_NAME, fileName, fileLocalPath) is a function that does local file uploading, respose the public link and resolve a promise.
## Usage
app.post('/upload', googleAPI.formParsing, function(req, res, next) {
var fileName = "path/to/"+req.uploadFile.name
var fileLocalPath = req.uploadFile.path
var BUCKET_NAME = "yourbucket"
googleAPI.uploadLocalFile(BUCKET_NAME, fileName, fileLocalPath).then(function(result) {
console.log("finished uploadLocalFile: "+result)
res.send(result)
},function(err){
console.log(err)
})
});
- fileName = "path/to/upload/abc.file"
- googleAPI.uploadBuffer(BUCKET_NAME, fileName, buffer) is a function that does buffer uploading, respose the public link and resolve a promise.
app.post('/streamupload', googleAPI.formParsing, function(req, res, next) {
var fileName = "path/to/"+req.uploadFile.name
var fileLocalPath = req.uploadFile.path
var BUCKET_NAME = "peterbucket"
fs.readFile(fileLocalPath,function(err, buffer){
googleAPI.uploadBuffer(BUCKET_NAME, fileName, buffer).then(function(result) {
console.log("after googleAPI.deleteDownloadableFile: "+result)
res.send(result)
})
})
});
- url = "https://storage.googleapis.com/yourbucket/path/to/upload/abc.file"
- googleAPI.deleteStorageFile(url) is a function that deletes file on google storage.
app.post('/delete', function(req, res, next) {
var url = req.query.url
googleAPI.deleteStorageFile(url).then(function(result) {
console.log("after googleAPI.deleteStorageFile: "+result)
res.send(result)
})
});