Skip to content

Instantly share code, notes, and snippets.

@mkleins
Created July 27, 2018 10:11
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Embed
What would you like to do?
Upload with XML API GCS
const uuidv4 = require("uuid/v4");
const fs = require('fs');
const crypto = require('crypto');
var key = uuidv4();
var expire = new Date;
expire.setHours(expire.getHours() + 1);
var private_key = fs.readFileSync("service_account.pem", "utf8");
var policy = '{"expiration": "' + expire.toISOString() + '",' +
'"conditions": [' +
'["starts-with", "$key", "' + key + '" ],' +
'["eq", "$Content-Type", "application/zip" ],' +
'{"bucket": "renderer_storage"},' +
'["content-length-range", 5242880, 419430400]' +
']' +
'}';
var policy_64 = Buffer(policy, "utf8").toString('base64');
var signature_64 = crypto.createSign('sha256').update(policy_64).sign(private_key, 'base64');
var result = {"key" : key, "policy" : policy_64, "signature" : signature_64};
res.status(200).json(result);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment