0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【BizRobo! Link】フォルダ丸ごと並列アップロードも対応。Box操作を高速・堅牢にするサイドカーコネクター

0
Posted at

はじめに

BizRobo! Link のサイドカーコネクターである Box連携 (br-link-box) について紹介します。

BizRobo! Link における Box連携 (br-link-box) とは

BizRobo! からクラウドストレージの Box を操作する際、開発者を悩ませる大きな壁が3つありました。

  1. OAuth 2.0 のトークン管理: アクセストークンは短時間で切れるため、ロボット内でリフレッシュトークンを管理・更新する複雑なロジックを組む必要がある。
  2. IDベースの操作: Box APIは基本的に「フォルダID」「ファイルID」で操作するため、パス(例: /営業部/2024/日報)からIDを特定するための検索処理を都度実装しなければならない。
  3. 大容量ファイルの転送: HTTPリクエストのタイムアウトやネットワーク瞬断により、大きなファイルのアップロードが失敗しやすい。

br-link-box は、これらの課題を解決するために設計された「サイドカー型」のコネクターです。
BizRobo! Link 本体とは独立した専用のバックグラウンドサービスが常駐し、Box との通信を一手に引き受けます。ロボットは面倒な認証や通信制御をすべてこのサービスに丸投げすることで、シンプルかつ安定した自動化を実現できます。


主な機能と特徴

1. OAuth 2.0 トークンの完全自動管理

br-link-box 最大の特徴は、ロボットが認証情報を一切持たなくて良い という点です。
専用の管理画面で一度 Box アカウントと連携すれば、バックグラウンドサービスがトークンの有効期限を監視し、自動的にリフレッシュを行い続けます。

トークン情報はサーバー内でDPAPI1を用いて強力に暗号化されて保存されるため、セキュリティ面でも安心です。これにより、「久しぶりに動かしたロボットがトークン切れでエラーになる」というRPAあるあるから解放されます。

2. パス指定による直感的な操作 (Path Resolver)

Box API は本来「ID」でしか操作できませんが、本コネクターは 「パス文字列」による操作 をサポートしています。

例えば、ファイルをアップロードする際、送信先に BoxフォルダID ではなく Boxフォルダパス として "/Shared/Projects/ProjectA" と指定するだけで動作します。

内部のサービスがパスを解析し、高速なキャッシュ機能を用いてIDに自動変換してくれるため、ロボット側で「パスからIDを検索するループ処理」を作る必要がなくなります。

3. 高速・堅牢なファイル転送機能

エンタープライズでの利用に耐えうる、強力な転送ロジックを内蔵しています。

  • 大容量ファイルの分割アップロード: 一定サイズを超えるファイルは自動的にチャンク(断片)に分割してアップロードされます。これにより、GB単位の巨大なファイルでも安定して送信可能です。
  • フォルダ一括アップロード: ローカルのフォルダ構造を保ったまま、再帰的にBoxへアップロードする機能(uploadFolder)を備えています。
  • 並列処理とリトライ: 複数のファイルを同時に転送する並列実行制御や、ネットワークエラー時の自動リトライ機能が標準で組み込まれています。

BizRobo! におけるカスタムアクションステップ実行のタイムアウトは240秒です。大容量ファイルの扱いによりこの時間を超えないように気を付けてください。
なお、v11.5 以降であればタイムアウト値の変更が設定ファイルにより可能です。


使い方と導入の流れ

br-link-box は「サイドカー」方式のため、初期設定の手順が通常のコネクターとは少し異なります。

1. サービスのセットアップと認証

まず、サーバー側で br-link-box サービスを起動し、専用のWeb管理画面(デフォルト: http://localhost:8102)にアクセスします。
ここで Box のクライアントID/シークレットを設定し、「Box アカウントと連携」ボタンを押してログインします。
これでサービス側の準備は完了です。サービスが稼働している限り、認証状態は維持されます。

br-link-box.png

2. ロボットへのコネクター設定

Design Studio で API_Box コネクターの設定を開きます。
ここで入力するのはBox操作情報のみです。Boxのパスワードやトークンをロボットに埋め込む必要はありません。

br-link-box-ds.png

3. ロボットからの実行

あとは通常のアクションとして利用するだけです。
例えば「ファイルアップロード」アクションでは、ローカルのファイルパスと、Box側の保存先パスを指定します。
「タイムアウト」や「リトライ回数」もパラメータで調整可能ですが、基本的にはデフォルト設定のままで、複雑なロジックなしに安定した転送が可能です。

利用可能なアクション例:

  • ファイルアップロード / フォルダアップロード
  • ファイルダウンロード / フォルダダウンロード (Zip)
  • フォルダ作成
  • アイテム一覧取得
  • コピー / 移動 / 名前変更

このように、br-link-box は単なる API ラッパーではなく、Box 操作における「認証」「パス解決」「転送制御」という重たい処理を肩代わりしてくれる、頼れるパートナーと言えます。

まとめ

現在は単純にクラウドストレージとしてのBox機能しか操作対象としていませんが、今後はBox特有の機能(共有リンクの発行やファイルのロックなど)のコネクター化も折を見て進めていこうと思います。

ちなみに今回の記事のメインコンテンツもソースコードを基にAIが生成した文章をベースに加筆修正しています。

  1. https://ja.wikipedia.org/wiki/DPAPI

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?