5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

BoxAdvent Calendar 2021

Day 12

Box CLIでフォルダをロックする

Posted at

Box CLIは、コマンドプロンプトなどからBox APIを実行することができるツールです。今回はCLIを使って、フォルダロックAPIをたたいてみようと思います。
CLIの記事自体は結構多く存在するのですが、微妙に画面ショットが更新されていたりするので、現時点で最新の情報を使って記事にしたいと思います。
※今回は、Windows10を利用しています。

Box CLIについて

公式ページを参照しましょう!
Box CLIとは

BoxBox CLIは、使い勝手の良いコマンドラインツールで、これにより、開発者でも開発者以外のユーザーでもBox APIを利用してルーチンや一括操作を実行できるようになります。コードを書く必要はありません。これらの操作は、一連のコマンドによって実行されます。

準備

Boxアプリケーションを作成する

Box CLIは、Boxアプリケーションを通じてAPIでアクセスします。

  1. 以下のURLへアクセスし開発者コンソールを開きます。
    https://account.box.com/developers/console
    Boxへアクセスしていない場合はログイン画面が表示されますので、ログインしてください。
    管理者でCLIを実行する場合は管理者の権限でログインしてください。

  2. [アプリの新規作成]をクリックします。
    image.png

  3. [カスタムアプリ]をクリック。
    image.png

  4. 認証方法は[サーバー認証(JWT使用)]を選択し、アプリ名にBox CLIと入力して、[アプリの作成]をクリック。
    image.png

  5. アプリケーションが作成されました!
    image.png

アプリケーションの設定変更

  1. 作成したアプリケーションの[構成]タブを開き、[アプリアクセスレベル]を[アプリ+Enterpriseアクセスレベル]を選択、[アプリケーションスコープ]で[Boxに格納されているすべてのファイルとフォルダへの書き込み]にチェックをいれます。設定変更したら、右上のボタン[変更を保存]を忘れずにクリック。
    image.png

アプリケーションの承認

  1. 開発者コンソールで、作成したアプリケーションの[構成]タブを開き、OAuth 2.0資格情報の[クライアントID]をコピーしておきます。
    image.png

  2. 【管理者権限】管理コンソールで、[アプリ]メニューから[カスタムアプリ]タブを開き、右上の[+]ボタンをクリックします。アプリの承認画面がポップアップで開くので、1.でコピーしたクライアントIDをペーストして[次へ]をクリック。
    image.png

  3. 確認画面がでるので、確認して[承認]ボタンをクリック。

  4. 無事承認されました!
    image.png

必要なデータのダウンロード

  1. 開発者コンソールで、作成したアプリケーションを開き、[構成]タブを開きます。[公開キーの追加と管理]にて、[公開/秘密キーペアを生成]をクリック。自動で、jsonファイルがダウンロードされます。CLIは、このjsonファイルを使ってBoxにアクセスするので、誤って削除することのないよう保存しておきます。
    ※この手順を実行する際に、2FAの有効化が必要です。
    image.png

Box CLIのインストール

  1. 以下のURLからインストーラーをダウンロードします。

Windowsを利用する場合、exe拡張子のインストーラーをダウンロードしましょう。

  1. ダウンロードしたインストーラーを実行してインストールします。インストール途中の設定は、デフォルトで大丈夫です。

  2. インストールできたか確認するために、power shellを起動し、

box

と実行してみましょう。スクショのように、表示されたらインストールは成功しています。
image.png

  1. 「必要なデータのダウンロード」でダウンロードしたjsonファイルを以下のコマンドで環境変数にセットします。
PS C:\Users\*****> box configure:environments:add <JSONファイルのディレクトリ>\********_********_config.json
Successfully added CLI environment "default"
  1. 成功したら、以下のコマンドを実行してみましょう。操作をしているユーザー情報が表示されます。
box users:get

フォルダロックを実行する

フォルダロックAPIについて

Box Driveなどを使っていると誤操作でファイルやフォルダを移動してしまって、どこにいったかわからなくなったこと、よくありませんか?
フォルダロック機能を使うと、そのフォルダは移動・削除ができなくなります。この機能は、Web UIの機能としては提供しておらず、APIのみで提供しています。
ということで、このフォルダロックをCLIを使って実行してみたいと思います。

ロックしたいフォルダのIDを調べる

BoxにWebブラウザでログインします。
その後、ロックしたいフォルダを表示します。
URLバーに、フォルダIDが表示されますので、コピーしておきます。

image.png

ロックしたいフォルダの所有者のユーザーIDを調べる

フォルダの所有者のアイコンを表示すると、URLバーにユーザーIDが表示されますので、コピーしておきます。

image.png

フォルダロックを実行する

以下のコマンドで実行します。

box folders:locks:create <フォルダID> --as-user=<ユーザーID>

結果

Folder:
    Type: folder
    ID: '152008703259'
    Sequence ID: '1'
    ETag: '1'
    Name: フォルダロックテスト
ID: '292758258' ###このIDは、ロック解除に必要となります!
Type: folder_lock
Created By:
    ID: '8823593162'
    Type: user
Created At: '2021-12-12T15:21:29Z'
Lock Type: freeze
Locked Operations:
    Move: true
    Delete: true

フォルダロック動作確認

対象のフォルダを移動・削除しようとするとこのようなエラーメッセージが表示されできません。

image.png

注意:
フォルダの配下のフォルダは、ロックはかかりません。

フォルダロックを解除する

box folders:locks:delete <フォルダID> --as-user=<ユーザーID>

以上です!

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?