なんだかGoodVibes

日々の勉強メモです。

【Deno】実行時のパーミッション付与

こんにちは。
本日はDenoメモです。

概要

Denoは実行時、明示的に権限を与える必要があります。
権限の付与は、実行時にオプションをつけるだけでOKです。


権限のオプション

付与できる権限のオプションと許可する内容は以下です。

  • --allow-env : 環境変数の設定や取得
  • --allow-sys : オペレーティングシステムの情報を提供する API へのアクセス
  • --allow-hrtime : 高精度の時間測定
  • --allow-net : ネットワークアクセス
  • --allow-ffi : 動的ライブラリのロード
  • --allow-read : ファイルの読み取り
  • --allow-run : サブプロセスの実行
  • --allow-write : ファイルの書き込み
  • --allow-all : すべての権限


サンプルコード

ファイルを読み込みサンプルを作ってみます。(read-file.ts)

const text = await Deno.readTextFile("./data.json");
console.log(text);

では、権限のオプションを付与せずに実行してみます。

$ deno run read-file.ts 
⚠️  ┌ Deno requests read access to "./data.json".
   ├ Requested by `Deno.readTextFile()` API
   ├ Run again with --allow-read to bypass this prompt.
   └ Allow? [y/n] (y = yes, allow; n = no, deny) >

ファイルの読み込みの権限を付与していないので
上記のように確認の表示がされます。

では、権限を付与して実行します。

$ deno run --allow-read read-file.ts 
[
    {"id": 1, "name": "Bob"},
    {"id": 2, "name": "Jon"}
]

先ほどと異なり、メッセージが出力されることなく
読み込み結果が表示されました。



以上です。