メインコンテンツへスキップ
このチュートリアルでは、重複したファイル、重複したフォルダ、サイズの大きなファイルを自動的に処理するために、を組み合わせた再帰的アップロードスクリプトを作成する方法を説明します。
このチュートリアルのコードサンプルでは、 を使用しています。

前提条件

  • Boxアプリケーションで [] スコープ (root_readwrite) が有効になっている
  • コンピュータにPython 3.8以降がインストールされている
  • Box Python SDKがインストールされている (pip install "boxsdk~=10")
  • が認証済みである
  • のチュートリアルが完了している (同チュートリアルで定義したfile_uploadおよびfile_upload_chunkedヘルパー関数をこのチュートリアルで再利用し、アップロードロジックの重複を回避する)

重複したフォルダの処理

サブフォルダにアクセスする前に、そのフォルダがすでにBoxに存在しているかどうかを確認します。同名のフォルダが存在する場合は、新規フォルダを作成せずに、既存のフォルダを使用します。
Python v10

フォルダの再帰的なアップロード

ローカルディレクトリツリーをたどる1つの再帰的な関数を、複数のヘルパー関数を組み合わせて作成します。各項目で、関数は次の処理を行います。
  1. Box内にフォルダを作成するか、既存のフォルダを取得した後、フォルダを再帰的に処理します。
  2. 直接アップロードか分割アップロードかを選択するためにファイルサイズを確認します。20 MB以上のファイルでは分割アップロード、それよりも小さいファイルでは直接アップロードを使用します。
  3. 同名のファイルがすでに存在する場合は、アップロード方法のチュートリアルで説明したヘルパーを使用して新しいバージョンをアップロードします。
Python v10
min_chunked_sizeパラメータのデフォルト値は20 MB (の最小サイズ) です。このしきい値を大きくすることはできますが、小さくすることはできません。

サンプル全体

以下のスクリプトでは、Boxクライアントを認証し、保存先フォルダを作成 (または既存フォルダを再利用) して、ローカルディレクトリのコンテンツを再帰的にアップロードします。create_box_folderヘルパーを再利用して、ルートフォルダ ("0") にある保存先フォルダを取得または作成しています。
Python v10

リソース

最終更新日 2026年7月1日