不能过期使用node.js创build的Google云存储对象的SignedURL
使用node.js创buildGoogle云存储对象的signedURL
这是我的代码
var crypto = require("crypto"); var fs = require("fs"); var expiry = new Date().getTime() + 3600; var key = 'the_target_file'; var bucketName = 'bucket_name'; var accessId = 'my_access_id'; var stringPolicy = "GET\n" + "\n" + "\n" + expiry + "\n" + '/' + bucketName + '/' + key; var base64Policy = Buffer(stringPolicy, "utf-8").toString("base64"); var privateKey = fs.readFileSync("gcs.pem","utf8"); var signature = encodeURIComponent(crypto.createSign('sha256').update(stringPolicy).sign(privateKey,"base64")); var signedUrl = "https://" + bucketName + ".commondatastorage.googleapis.com/" + key +"?GoogleAccessId=" + accessId + "&Expires=" + expiry + "&Signature=" + signature; console.log(signedUrl);
它的工作正常。 但如何将失效时间缩短至10秒或其他。
下面的代码现在给我正确的输出。
var crypto = require("crypto"); var fs = require("fs"); var URL_VALID_DURATION = 1000 * 10;//for 10 seconds var expiry = Math.floor(((new Date).getTime() + URL_VALID_DURATION) / 1000); var key = 'the_target_file'; var bucketName = 'bucket_name'; var accessId = 'my_access_id'; var stringPolicy = "GET\n" + "\n" + "\n" + expiry + "\n" + '/' + bucketName + '/' + key; var base64Policy = Buffer(stringPolicy, "utf-8").toString("base64"); var privateKey = fs.readFileSync("gcs.pem","utf8"); var signature = encodeURIComponent(crypto.createSign('sha256').update(stringPolicy).sign(privateKey,"base64")); var signedUrl = "https://" + bucketName + ".commondatastorage.googleapis.com/" + key +"?GoogleAccessId=" + accessId + "&Expires=" + expiry + "&Signature=" + signature; console.log(signedUrl);
- 如何使用Node API从Google Cloud Storage返回指定的图像大小?
- 使用Google云端存储存储的图片的属性
- 谷歌云存储对象删除谷歌API,Node.js和request.del()
- 如何使用NodeJS列出GCS存储桶中的目录
- 更改Google容器引擎群集的权限
- Google云应用引擎重启function无法正常工作
- 使用NodeJS在本地上传文件到Google Cloud存储
- 从Google云端存储中读取图片,并使用Google云端function进行发送
- 在通过file.createWriteStream()传输到GCP时,获取ESOCKETTIMEOUT,ECONNRESET或套接字会挂载大文件。