- 投稿日:2019-10-04T22:53:41+09:00
Cloud CDN 署名付き URL を作るプログラムの Node.js 向けサンプル
概要
https://cloud.google.com/cdn/docs/using-signed-urls?hl=ja の"署名付き URL をプログラムで作成する" のところに Node.js のサンプルプログラムがないので作ってみた。
準備
$ npm i -S urlsafe-base64 $ npm i -S crypto $ npm i -S momentサンプルプログラム
const URLSafeBase64 = require("urlsafe-base64") const crypto = require("crypto") function signUrl(url, expiration, keyName, key) { const decodedKey = URLSafeBase64.decode(key) const sep = url.indexOf("?") != -1 ? "&" : "?" const signingUrl = `${url}${sep}Expires=${expiration}&KeyName=${keyName}` const signature = crypto.createHmac("sha1", decodedKey).update(signingUrl).digest() const encoded = URLSafeBase64.encode(signature) return `${signingUrl}&Signature=${encoded}` }使い方例
引数 key は、この例のように BASE64 エンコードされたものです。これは Cloud DNS の URL 署名鍵で自動生成されたものを使うことができたり、自分で作ったものを使うことができます。しかし、その署名鍵は安全に保管してください。
誤ってGitHubの公開リポジトリーに公開するとか、Webで公開してしまうとかいったことがないようにしてください。const moment = require("moment") const url = signUrl("https://myhost/path/to/image.jpg", moment().add(1, "hours").unix(), "my-key", "YmFzZTY0ZW5jb2RlZAo=")
- 投稿日:2019-10-04T22:45:34+09:00
Cloud CDN 署名付き URL を作るプログラムの Node.js 向けサンプル
概要
https://cloud.google.com/cdn/docs/using-signed-urls?hl=ja の"署名付き URL をプログラムで作成する" のところに Node.js のサンプルプログラムがないので作ってみた。
準備
$ npm i -S urlsafe-base64 $ npm i -S crypto $ npm i -S momentサンプルプログラム
const URLSafeBase64 = require("urlsafe-base64") const crypto = require("crypto") function signUrl(url, expiration, keyName, key) { const decodedKey = URLSafeBase64.decode(key) const sep = url.indexOf("?") != -1 ? "&" : "?" const signingUrl = `${url}${sep}Expires=${expiration}&KeyName=${keyName}` const signature = crypto.createHmac("sha1", decodedKey).update(signingUrl).digest() const encoded = URLSafeBase64.encode(signature) return `${signingUrl}&Signature=${encoded}` }使い方
const moment = require("moment") const url = signUrl("https://myhost/path/to/image.jpg", moment().add(1, "hours").unix(), "my-key", "zPPWQcAfNkFdNU0jnY0n3g==")
- 投稿日:2019-10-04T22:26:42+09:00
ts-node を使った TypeScript + node の環境構築
Node.js
+TypeScript
の環境構築手順の備忘録です。最小構成(最小ではない)
npm run start
でmain/app.ts
を動かす。package.json{ "dependencies": { "ts-node": "^8.4.1", "typescript": "^3.6.3" }, "scripts": { "start": "ts-node main/app.ts" } }tsconfig.json{ "compilerOptions": { "target": "es6", "outDir": ".dist", "sourceMap": true, "module": "commonjs", "strict": true, "moduleResolution": "node", "removeComments": true, "emitDecoratorMetadata": true, "esModuleInterop": false, "experimentalDecorators": true, "forceConsistentCasingInFileNames": true } }
- 投稿日:2019-10-04T16:14:48+09:00
yarnで困ったら
yarn installできなくなった
「There appears to be trouble with your network connection.」
と言われています。
yarnもyarn install もできない。
(やっていること同じ)(最近知った)ググろう
ググって、タイムアウトの時間を大きくするため従い次のコマンドを実行。
$ yarn install --network-timeout 1000000参考Qiita: https://qiita.com/remin/items/06a3a0dab63531c531e4
。。変わらない。
「npm|yarnで怒られたエラー集まとめ」という素晴らしいQiitaを見つけたので下記を試したがダメ。。
1. killall node 2. ls (package.jsonが表示されていることを確認する。なければあるところまでcdで移動) 3. rm -r node_modules 4. rm package.lock.json (rm yarn.lock) package.lock.jsonかyarn.lockどちらか存在するほうを削除。 5. npm i or yarn i 6. ローカルサーバーを立たてる or あなたのやりたかったこと参考Qiita: https://qiita.com/M-ISO/items/d693ac892549fc95c14c
(yarn installできない状態でyarn.lockむやみに消すもんじゃないですね)
色々やった末の
再起動
したら直りました。
リポジトリ多すぎて何個も立ち上げているので再起動億劫になっていましたが、ちゃんと次から序盤でやろう。
困ったら早い段階で一度再起動してみてください。
yarn使えなくなると誰しも焦ると思うので、誰かこの記事で1人でも助かったらいいな。笑