先週、すべてのプラットフォームでProton Driveを調和させ、必要な機能をより迅速にお客様に提供するために設計された共有エンジンであるProton Drive SDKの提供を完了しました。本日、私たちは次のステップを踏み出します。Windows、macOS、Linuxでご利用いただけるProton Drive CLIが登場しました

このCLIは、コードを書く手間をかけずに、当社のクラウドストレージエンドツーエンド暗号化のパワーをスクリプト、バックアップ、デプロイパイプラインにもたらします。これは、Proton Driveの公式クライアントアプリを動かすものと同じProton Drive SDKをベースに構築されており、それらのアプリと完全に相互運用可能です。

開発者コミュニティの皆様へ:現在、フル機能のLinuxアプリを開発中ですが、CLIを使用すれば、お気に入りのスクリプト環境からProton Driveの主要な機能の多くをすでにスクリプト化できます(cronを使用してジョブをスケジュールすることさえ可能です)。CLIは、Proton Driveアプリを補完することを目的としています。完全な代替品ではありません(たとえば、バックグラウンドで実行される完全な同期エンジンが含まれているのはアプリのみです)。むしろ、軽量なスクリプト環境から多くの目標を達成するための手段です。

CLIとは何ですか?

コマンドラインインターフェース(CLI)とは、ターミナル、PowerShell、SSHなどのシェルから実行するプログラムです。コマンドと引数を渡すと、処理を実行して終了します。他のUnixコマンドラインツールと同様に、Proton Drive CLIを他のツールとパイプやスクリプトで組み合わせて、より大きなワークフローを構築できます。

Proton Drive CLIは、その環境に導入できる単一のバイナリです。フォルダーの一覧表示、ファイルのアップロードとダウンロード、ごみ箱、共有、招待など、一般的なドライブ操作をサポートしています。結果はデフォルトでわかりやすいプレーンテキストで表示されます。また、その上で自動化を構築する場合は、--json(または -j)パラメーターを使用して、マシンフレンドリーな形式に切り替えることができます。

Proton Drive CLIはどのように役立ちますか?

これまで、デプロイスクリプト、バックアップジョブ、cron、社内ランブックなどのツールと並行して、自動化されたワークフローの一部としてProton Driveを使用するには、手動で行うか(アプリを開く、ファイルをドラッグするなど)、ドライブの内部仕様をリバースエンジニアリングして、壊れやすくメンテナンスが困難なカスタムスクリプトを作成するしかありませんでした。CLIは、ターミナルから直接Proton Driveの操作を実行できるようにすることで、この状況を変えます。たとえば、ビルド終了後にファイルをアップロードしたり、スケジュールに沿ってフォルダーをバックアップしたり、レビュー担当者を招待したり、共有内容を確認したりできます。

これは、フォルダーを継続的に同期し続けるのではなく、特定のタイミングで特定のアクションを実行する必要がある場合に特に便利です。たとえば、リリース後にファイルを公開する、監査前に共有フォルダーのスナップショットを取得する、誰かがオフボーディングする際にアクセス権を失効させる、といったケースです。CLIが操作を実行し、成功したかどうかを通知して終了します。

すでにターミナルで作業を行っている方や、覚えておかなければならない一連のクリック操作ではなく、再現可能なコマンドとしてドライブのワークフローを書き留めておきたいチームに最適です。

Proton Drive CLIを始める

ローンチ時、CLIは基本機能を網羅しています:サインインとサインアウト、ファイルやフォルダー(ごみ箱を含む)の閲覧や管理、そして共有や招待の処理。

代表的なフローの例:

proton-drive auth login

# ローカルディレクトリからマイファイルのフォルダーにファイルをアップロード
proton-drive filesystem upload ./reports/* /my-files/Reports --conflict-strategy skip

# アクセス権を持つユーザーを確認し、同僚を招待
proton-drive sharing status /my-files/Reports
proton-drive sharing invite --user example@pm.me --role editor --message "Please review reports" /my-files/Reports

# ローカルのバックアップディレクトリにダウンロード
proton-drive filesystem download /my-files/Reports ./backups

コマンドセットとフラグの全リストを確認するには、proton-drive help または proton-drive --help を実行してください。たとえば、proton-drive filesystem upload --help です。

Proton Drive CLIの使用に関する詳細はこちらをご覧ください

今後の予定

Proton Drive CLIには、今後以下のサポートが追加される予定です:

  • 写真とアルバム
  • 安全な公開リンクを使用して共有されたファイルとフォルダー
  • 大規模なチームやマネージドサービスプロバイダー向けの複数アカウントサポート

当社の長期的な目標は、Proton Driveアプリでできるすべての操作をコマンドラインで実行できるようにすることです。

Proton Drive CLIをダウンロードする

最も簡単に始めるには、お使いのプラットフォーム向けのビルド済みバイナリをダウンロードしてください:

macOSおよびLinuxでは、ダウンロード後にファイルを実行可能にする必要があります(chmod +x proton-drive)。完了したら、proton-drive version を実行してビルドを確認します。

サインインはブラウザ経由で行われます。コマンドラインにパスワードを入力する必要はありません。お客様のセッションは、オペレーティングシステム(Windows資格情報マネージャー、macOSキーチェーン、またはLinux上のlibsecret)によって安全に保管されます。

ソースからビルドする

ソースからのビルドをご希望ですか?このCLIはTypeScriptで実装され、Bun(新しいウィンドウ)でパッケージ化されており、Drive SDKリポジトリ(新しいウィンドウ)からダウンロードできます。クローンを作成後、依存関係をインストールし、メインディレクトリからCLIをビルドできます。

cd js/cli
bun install
bun run build
./release/proton-drive auth login
./release/proton-drive filesystem list /my-files

詳細については、リポジトリ内のCLI READMEを参照してください。

フェアユースとレート制限

Proton Drive CLIは、すべてのProton Driveクライアントと同じフェアユースポリシーに従います。制限内に収めるため、実際に変更された内容のみをアップロードまたはダウンロードしてください。新しいファイルが数個しかない場合に、同じファイルを何度も再アップロードしたり、フォルダー全体を書き換えたりしないでください。異常に高いトラフィックを発生させるアカウントは、すべてのユーザーのサービスを保護するために一時的に制限(スロットリング)されます。

ターミナルでも、同じレベルのプライバシーを

Proton Drive CLIは本日よりご利用いただけます。さらに多くの機能も近日中に追加予定です。ターミナルを介して行うすべての操作は、他のProton Driveと同様に、同じエンドツーエンド暗号化によって保護されます。ぜひダウンロードしてお試しいただき、構築したものについてフィードバックをお寄せください。また、Linuxをお使いの場合:同期機能を備えたフル機能のデスクトップクライアントの開発も進められています。