Dropbox APIで便利ツールを開発してみた

こんにちは、SCSKの上野です。 

SCSKではDropboxで利用できるDropbox APIツール(sxtool)を開発致しました。
今回の記事では本ツールについて紹介させて頂きます。

APIとは、ソフトウェアが互いに情報を共有するためのインターフェース(接点)のことです。API連携を行うことで、システムやアプリケーションを連携させることができるため、単体のアプリケーションが持つ機能だけでなく、連携先のアプリケーションの機能を利用することができるようになります。

特にこのうち、Dropboxで利用するAPIをDropbox APIと呼びます。

Dropbox APIには大きく分けて2種類存在しています。

  • ユーザごとのファイル管理などに用いる「User Endpoints」
  • Dropbox Businessチームの管理に用いる「Business Endpoints」
Dropboxには上記2つのAPIを利用して作成されたAPIツール「Dropbox API Explorer」が一般に公開されていてます。
このツールを利用する事がAPI動作を確認する最も簡単な方法です。
 

Dropbox APIツールの詳細に関しては英語版にはなりますが、公式ホームページから参照して頂ければと思います。
公式ホームページを参照すると、右側にAPI一覧が表示され、APIを選択すると指定した箇所まで移動する事ができます。

Dropboxを管理する上で、メールアドレスを登録したり、Dropboxなどの業務で利用するアプリケーションやサービスへのアカウントを配布したり、必要な情報へのアクセス権限を付与したり…など、さまざまな管理が必要になります。

これらの管理を効率化するために、複数のDropbox APIを組み合わせて、SCSKで作成したAPIツール(sxtool)を紹介していきたいと思います。

sxtoolツール

sxtoolツールは、会社で新規のプロジェクトが開始された時などによく利用します。
具体的にこのツールで何ができるか機能紹介をしたいと思います。

ユーザ管理

企業でDropboxを利用する場合、新入社員がDropboxを利用する際のアカウントの発行、退職者が出たときのアカウントの削除など様々なケースでユーザの管理をする必要があります。

本ツールで利用できる機能
  • ユーザの登録
  • ユーザの削除
  • ユーザの編集
  • ユーザ一覧の表示

ユーザ管理で主に利用するAPIとその機能を表にしてみました。

API
説明
/members/add
Dropboxテナントに新しいユーザを招待する
/members/remove
Dropboxテナントからユーザを削除する
/members/list 
ユーザ一覧を表示する
/members/set_profile
チームメンバーのプロフィールを更新します
  • /members/list で現在のユーザ情報を取得し、
  • 既に退職しているユーザを/members/removeで削除します。
  • 新たに入社した社員を/members/addで招待し、
  • /members/set_profileでユーザ情報を編集します。

1つのAPIで出来ることはGUIの操作で実施するのとあまり変わりありませんが、これらのAPIをうまく組み合わせる事で業務の効率化を図ることができます。

いずれの機能もCSVファイルを事前に用意し、コマンドを実行する事で簡単にユーザの管理が行え、複数人を一括で実行する事ができます。DropboxのGUIでユーザ管理をする場合と比べ、格段に作業効率が速くなると思います。

ユーザ情報を登録する際は、下記CSVファイルを用意し、コマンドにて実行します。
 
CSVファイル書式
email_address,givenname,surname
email_address
登録するユーザのメールアドレス
givenname
登録するユーザの名 (first name)
surname
登録するユーザの姓 (last name)

ユーザを削除する際は、ユーザを完全に削除するのか、ダウングレードするのか。また、削除するユーザのデータどうするかの指定もできます。

CSVファイル書式
email_address,delete_flag[,delete_option]
email_address
削除するユーザのメールアドレス
delete_flag
ユーザ削除方法を指定します。下記のフラグを指定可能です
Delete:ユーザを完全に削除する
downgrade:ダウングレードする
delete_option
ユーザを完全削除(Delete)し、ユーザのデータを紐付けるユーザを指定する場合、下記の引数を指定できます。
transfer_dest_id:指定したユーザに削除ユーザのデータを紐付けます。

グループ管理

グループの管理はユーザの管理以上に頻繁に変更があります。
多くのDropbox利用企業は、部署単位・プロジェクト単位でグループを作成しています。

組織改編時などは新しい部署が出来たり、既存の部署がなくなったりします。また、異動の時期が来れば、大規模にグループ情報を変更する必要があります。

DropboxのGUIでは一括で複数のグループを作成したり、削除したりする機能は提供されていません。本ツールではユーザの作成、削除と同じようにCSVファイルを使って一括することが可能です。

本ツールで利用できる機能
  • グループの作成
  • グループの削除
  • グループ名の変更
  • グループメンバーの変更
  • グループ一覧の表示
主に利用しているAPI
  • /groups/create
  • /groups/delete
  • /groups/list
  • /groups/members/add
  • /groups/update

特に利用するのがグループメンバーの変更だと思います。

CSVファイル書式
書式1: グループ名のみ指定
groupname
書式2: グループの種別を指定
groupname,type
書式3: グループメンバーも指定
groupname,type,member1[,…]
groupname
グループ名
type
グループのタイプ
company: 企業管理グループ
user:       ユーザ管理グループ
member
グループメンバーの書式
email_address[:o]
グループ作成時に利用したCSVファイルを元に、グループメンバーリストを書き換えると、DropboxのグループメンバーをCSVファイルに記載したメンバー構成に変更できます。

グループ情報の変更があった際はDropbox APIツールで実行する事で、効率的にグループの管理ができます。

チームフォルダ管理

チームフォルダの利用方法は企業によってそれぞれです。

企業内のメンバーのみが利用できるチームフォルダを作成したり、企業外のメンバーにもフォルダを共有できるチームフォルダを利用したり、用途は様々です。

企業ごとのセキュリティポリシーに従って、チームフォルダのポリシーも変更する必要があるのため、GUIで随時設定するのはかなりの時間がかかります。

本ツールで利用できる機能
  • チームフォルダの作成
  • 共有メンバーの変更
  • チームフォルダ一覧の表示
主に利用しているAPI
  • /team_folder/create
  • /team_folder/list
  • /team_folder/rename
  • /update_folder_member

Dropbox APIツールを利用する事で、簡単に複数のチームフォルダを管理しましょう。

CSVファイル書式
書式1: チームフォルダパスのみ指定
folderpath
書式2: チームフォルダパスとフォルダポリシーを指定
folderpath,policy
書式3: チームフォルダパスとフォルダポリシー、アクセス権限継承、初期同期設定を指定
folderpath,policy,inherit,sync
書式4: チームフォルダの共有メンバーも指定
folderpath,policy,inherit,sync,member[,…]
folderpath
フォルダパス
policy
フォルダポリシー
member_policy;acl_policy; shared_link_policy;viewer_info_policy
 
  1. member_policy … 共有範囲
  1. acl_policy … 共有メンバーを追加/削除できるユーザ
  1. shared_link_policy… 共有リンクにアクセスを許可する範囲
  1. viewer_info_policy … アクセス状況の表示
inherit
上位フォルダのアクセス権限の引継ぎ指定
 
inherit:上位フォルダのアクセス権限を引継ぎます
no_inherit:上位フォルダのアクセス権限を引継ぎません。
sync
チーム向け選択型同期のデフォルト値を指定します。
 
sync:チーム向け選択型同期で自動的に同期対象とする
no_sync:チーム向け選択型同期でユーザーが同期対象に指定する必要があります。
member
フォルダの共有メンバー
[group|user][:e|:v]

データ移行

Dropboxの利用開始をする場合、既存のファイルサーバで管理しているデータをDropboxにデータ移行する必要があります。

データ移行ツールは多数存在しますが、有料で費用がかかる場合が多いです。
本ツールを利用する事で低価格で移行を実施することができます。

(大規模での移行には向いておらず、10TB以下のデータ移行を推奨しています)

主に利用しているAPI
  • /upload_session/append
  • /upload_session/finish
CSVファイル書式
source,target
source
ファイルサーバの移行元のフォルダパス
target
移行先となるDropboxのチームフォルダパス

データ移行では移行速度が重要になります。

ネットワーク環境によって移行速度は前後しますが、同じネットワーク環境で有料の移行ツールと本ツールの移行速度を比較しました。
本検証では、同じフォルダで移行検証を行っており、フォルダにはWordやExcelファイルが含まれています。

有料ツール
ファイル数
ファイルサイズ
時間(s)
速度(fps)
速度(Mbps)
4980
5GB
582
8.55
68.73
本ツール
ファイル数
ファイルサイズ
時間(s)
速度(fps)
速度(Mbps)
4980
5GB
549
9.06
72.86
有料ツールではオプション機能が多数存在しており、移行以外の処理を行っているため本ツールよりも移行速度は遅くなっています。
移行速度だけが移行に必要な条件ではありませんが、小規模のデータ移行では十分に利用できるツールであると思います。

sxtoolの応用例

sxtoolを利用することで、共有フォルダの自動作成も実施することができ、さらに効率的にDropboxを使用し、管理することができます。

こちらがAPIツールの応用例です。
APIツールを用いて、プロジェクトフォルダの作成、アクセス権限付与など情報システム部によって一元的に管理します。
そして施工後のプロジェクトに関してはアーカイブフォルダへと自動的にフォルダを移動させ、フォルダ構成を柔軟に変更する事が出来ます。
GUIを用いても、この利用イメージを実施することはできますが、一つずつ手作業で行うとなるとかなりの工数がかかってきます。
情報システム部がAPIを利用して一元的に管理することで、社外ユーザがフォルダを閲覧する場合など、セキュアにDropboxを利用することができます。

まとめ

今回はSCSKにて開発したDropbox APIツール(sxtool)について紹介させて頂きました。
本Dropbox APIツールに興味がある方はSCSKまでご連絡頂けたらと思います。

よろしくお願いします。

お問い合わせ 製品・サービスについて 入力 | SCSK株式会社
SCSK株式会社 製品・サービスについてご意見・ご質問をお受けしております。
著者について
上野貴之をフォローする

クラウドに強いによるエンジニアブログです。

SCSKでは、自社クラウドと3大メガクラウドの強みを活かし、ハイブリッドクラウド/マルチクラウドのソリューションを展開しています。業界の深い理解をもとに、お客様の業務要件に最適なアーキテクチャをご提案いたします。サービスサイトでは、お客様のDX推進をワンストップで支援するサービスの詳細や導入事例を紹介しています。

Dropboxクラウド
シェアする
タイトルとURLをコピーしました