BoxSDKでBox上のファイルをダウンロードする

記事タイトルとURLをコピーする

こんにちは。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_id957056987515となります。

バイナリデータをファイルとして出力

SDKでは、結果としてバイナリデータがダウンロードされるため、バイナリデータをファイルとして出力します。

with open('出力ファイル名', 'wb') as f:
        s = file_content
        f.write(s)

戸塚 蓮弥(執筆記事の一覧)

AS部DS1課