こんにちは。DS1課の戸塚です。 今回は、PythonでBoxSDKを使ってBox上のファイルをダウンロードする方法を書いていきます。
インストール
pip install boxsdk
サーバー側JWT認証を使用するBoxアプリを使用する場合
pip install "boxsdk[jwt]"
認証
Box SDKを使用したJWTによるユーザー認証
Box SDKを使用したJWTによるユーザー認証について説明します。 開始する前に、以下の手順を完了しておく必要があります。
SDKを使用したJWT - Box開発者向けドキュメントポータル
- 開発者コンソール内でBoxアプリケーションを作成する
- アプリケーション用に秘密キーの構成ファイルを作成してダウンロードし、
config.json
として保存する - 社内で使用するためにBoxアプリケーションが承認されていることを確認する
config.json
ファイルの読み取り
Boxアプリケーションを作成すると、アプリケーションの秘密キーとその他の詳細を含むconfig.json
ファイルも作成されます。
以下のコードにて、config.json
ファイルを読み取ります。
from boxsdk import JWTAuth config = JWTAuth.from_settings_file('path/to/config.json')
SDKクライアントを初期化する
client = Client(config)
ファイルのダウンロード
Box上のファイルをファイルをダウンロードするには、そのファイルのfile_id
を指定します。
ファイルのダウンロード - Box開発者向けドキュメントポータル
file_id = '11111' file_content = client.file(file_id).content()
BoxSDKではファイルやフォルダを特定するために、それぞれのファイルやフォルダが一意に持つid
を使用します。
例えばダウンロードしたいファイルのURLがhttps://serverworks-test.app.box.com/file/957056987515
のような場合、
file_id
は957056987515
となります。
バイナリデータをファイルとして出力
SDKでは、結果としてバイナリデータがダウンロードされるため、バイナリデータをファイルとして出力します。
with open('出力ファイル名', 'wb') as f: s = file_content f.write(s)
戸塚 蓮弥(執筆記事の一覧)
AS部DS1課