ファイル、インポート、設定
メールボックスが保持するファイル、古いメールボックスや Resend アカウントのインポート、メールから見つかったカレンダー、ワークスペースと各アドレスの設定に関するすべてのコマンド。
概要
メールそのものの周辺にあるものは 5 つの名前空間で扱います。openemail files は「ファイル」ページにあたり、送受信したすべての添付ファイルとアップロードしたすべてのファイルを、そのバイト列と送信時のダウンロードリンクとともに扱います。openemail imports は古いメールボックスを 1 つのアドレスに取り込み、openemail provider-imports は Resend アカウントを移行します。openemail calendar はメールから見つかったイベントを読み、openemail settings はメールボックスの環境設定と、各アドレスの署名とトラッキングを読み取り、変更します。
- ID を見れば何を指すかがわかります。ファイルは
file_、メールボックスのインポートはimp_、Resend のインポートはpimp_、カレンダーのイベントはcal_で、それぞれの後に 16 進数 24 文字が続きます。ダウンロードリンクには独自の ID があり、files list-linksやfiles create-linkから得られます。 - インポートの
--address-idは、アドレスそのものではなく、openemail domains list-addresses <id>から得られるアドレスの ID です。 - 名前空間は
file、import、provider-importまたはproviderImports、settingでも使えます。動詞には、ある場合はいつもの別名が使えます。listにはls、getにはshowとview、createにはnewとadd、settings updateにはedit、files deleteにはrm、del、removeです。 - これらのコマンドはどれも、ブラウザでのサインインに確認コードを求めません。何かを恒久的に変更するコマンドは確認を求め、スクリプトでは
--yesが代わりに答えます。 openemail <command> --helpは、すべての引数とフラグを、その型、呼び出しに必要なスコープ、メソッドとパス、返ってくるものとともに一覧表示します。--jsonを付けると、同じページをデータとして出力します。
ファイル
openemail files はメールボックスが保持するすべてのファイルを読み取り、管理します。受信した添付ファイル、送信した添付ファイル、「ファイル」ページにアップロードしたファイルです。openemail open files で Web アプリの同じページが開きます。
| コマンド | 機能 |
|---|---|
| openemail files list | ファイルを 1 ページ一覧表示します。名前、種類、サイズ、方向、届いたアドレス、削除できるかどうかを示します |
| openemail files get <id> | 1 つのファイルを、属するスレッドとメッセージ、usage と deletable とともに読みます |
| openemail files stats | ファイル数と使用バイト数を、受信、送信、アップロードに分けて数えます。上位の種類とアドレス、過去 30 日間、まだ有効なリンクも示します |
| openemail files download <id> | ファイルのバイト列を保存されたとおりに取得し、--out <file> に、またはパイプしたときは stdout に出力します |
| openemail files list-links <id> | ファイルが送られたときのダウンロードリンクを新しい順に一覧表示します。それぞれ取得された回数と取り消されたかどうかを示します |
| openemail files create-link <id> | サインインせずに開ける新しい公開ダウンロードリンクでファイルを公開します |
| openemail files revoke-link <id> <link-id> | 公開リンクを、送信済みのメール内のものも含めて恒久的に止めます。確認を求めます |
| openemail files upload <data> | パスから、または - で stdin から、最大 100 MB のファイルをアップロードします |
| openemail files delete <id> | 何にも使われていないアップロードを完全に削除します。確認を求めます |
| openemail files delete-many <ids...> | 1 回の呼び出しで最大 100 個のファイルを削除し、残されたものと見つからなかったものを報告します。確認を求めます |
files listは--q(名前と種類)、--kind(image、pdf、audio、video、text)、--direction(inbound、outbound、uploaded)、--address、--since、--untilで絞り込み、--sort(newest、oldest、largest、name)で並べ替えます。--sinceと--untilは ISO 8601 の日付または日時を受け取ります。--sinceはその時点を含み、--untilはその直前までです。- 削除できるのは何にも使われていないアップロードだけで、
deletableで事前にわかります。usageは、それ以外のファイルが残される理由を示します。received、sent、ダウンロードリンクがまだ有効なアップロードならlinked、まだ送られていないメッセージに添付されたものならscheduledです。deleteはそれらを 409file_in_useで拒否します。delete-manyは削除できるものを削除し、残りをそれぞれの理由とともにkeptに、不明な ID をmissingに一覧表示します。 uploadは指定したパスのファイルを読み、そのファイル名で、拡張子が示す種類として保存します。--filenameと--content-typeでそれらを上書きできます。stdin からの場合、-には--filenameが必要で、--content-typeがなければ種類はapplication/octet-streamになります。アップロードは最大 10 分待ち、--timeout-msで変更できます。uploadが返す ID をopenemail emails send --attachmentsで{ "fileId": "…" }として指定すると、そのファイルを送信に添付できます。インラインの上限である 5 MB を超えるファイルはこの方法で送ります。- 空のファイルは 400
upload_empty、プログラムやスクリプト(名前で判断)は 400upload_dangerous、100 MB を超えるファイルは 413upload_too_largeになります。ワークスペースには最大 10 GB のアップロードを保存でき、1 時間に 500 件までアップロードできます。 downloadはターミナルでは--out <file>が必要で、なければ終了コード2で停止します。パイプした場合、バイト列は stdout に出力され、--out -でも stdout を指定できます。ファイル全体がメモリに保持されます。create-linkは呼び出すたびに独自のダウンロード数を持つ新しいリンクを作り、リンクは取り消されるかファイルが削除されるまで有効です。リンクは、--domainのドメインにファイル用ドメイン(files.acme.comなど)があればそこに、なければファイルのアドレスのファイル用ドメインに、それもなければ API のアドレスに置かれます。プログラムやスクリプトは 422file_unshareableで拒否されます。revoke-linkは繰り返しても安全です。すでに取り消されたリンクは変更されずに返ります。- 特定のアドレスやドメインに限定されたキーやサインインには、それらに届いたファイルしか見えず、ワークスペース全体にアップロードされたファイルは見えません。また、そのキーやサインインでのアップロードは、それが持つ最初のアドレスに属します。
- ファイルのインデックスは、その機能が公開された日から始まります。それより古い添付ファイルは元のメッセージに残っており、
openemail threads list-attachments <id>で読めます。
メールボックスのインポート
openemail imports は古いメールボックスを 1 つのアドレスに取り込みます。Google Takeout のアーカイブ、Apple Mail、Thunderbird、たいていのデスクトップアプリの .mbox ファイル、.eml ファイル、そしてそれらを含む .zip や .tgz のアーカイブで、1 ファイル最大 100 GB、1 回のインポートで最大 50 ファイルです。スレッド、日付、ラベルも引き継がれます。インポートされたメールは静かで、ルール、転送、通知、要約、Webhook は一切実行されません。
ほとんどの人に必要なのは import-files です。インポートを作成し、進捗を表示しながらすべてのファイルを分割してアップロードし、開始します。他の動詞はその手順を 1 つずつ行うもので、止まったアップロードを完了させたり、自分で操作したりするときに使います。create は計画、chunkBytes、各ファイルの chunks を返し、upload-chunk は 1 つのパートを送り、upload-state はどのパートが届いたかを示し、start はインポートをキューに入れます。openemail open imports で Web アプリの同じインポートを表示できます。
| コマンド | 機能 |
|---|---|
| openemail imports list | ワークスペースのインポートを新しい順に 1 ページ、ステータス、読み込んだバイト数、件数とともに一覧表示します。--address-id で 1 つのアドレスに絞ります |
| openemail imports get <id> | 1 つのインポートを、ステータス、進捗、件数とともに読みます。completed、failed、cancelled になるまでポーリングしてください |
| openemail imports create --address-id <value> --files <json|@file|-> | { name, bytes } のリストからインポートを作成し、status が uploading のアップロード計画を受け取ります |
| openemail imports upload-state <id> | 各ファイルについて、すでに保存されたパートのインデックスを示します。止まったアップロードは不足分だけを送ればよくなります |
| openemail imports upload-chunk <id> <file> <chunk> <data> | 1 つのファイルの 1 つのパートを、パスから、または - で stdin からアップロードします。同じパートをもう一度送ると置き換わります |
| openemail imports start <id> | すべてのパートが届いたことを確認し、各ファイルの形式を認識して、インポートをキューに入れます |
| openemail imports cancel <id> | 次のチェックポイントでインポートを止めます。すでにインポートされたメールは残ります。確認を求めます |
| openemail imports list-failures <id> | 取り込まれなかった各メッセージやアーカイブのエントリを、理由とともに一覧表示します |
| openemail imports delete-upload <id> | アップロードしたファイルを削除します。すでにインポートされたメールは残ります。確認を求めます |
| openemail imports import-files --address-id <value> --files <path> | 1 つのコマンドでインポートの作成、アップロード、開始を行い、キューに入った時点で戻ります |
- アドレスは、ワークスペース自身のドメインにあり、キーやサインインが操作を許されているものでなければなりません。インポートは 1 つのアドレスにつき 1 つしか実行されず、キュー待ちまたは実行中のものがある間に別のものを始めると 409
already_runningになります。 import-filesは--filesをファイルごとに 1 回、またはカンマ区切りの複数のパスで受け取り、それぞれを元のファイル名で送ります。--optionsは{"keepInbox":false,"includeSpam":true}のような JSON を受け取ります。createでは同じ 3 つがスイッチになっていて、--options-keep-inbox、--options-include-spam、--options-include-trashです。それぞれ--no-options-keep-inboxのように前に--no-を付けるとオフになります。keepInboxは既定でオンなので、古い受信トレイのメールは未読状態を保ったまま受信トレイに入ります。オフにするとすべてがアーカイブに入ります。迷惑メールとゴミ箱は、含めない限り取り込まれません。createは--filesを JSON で、インラインまたは@pathでファイルから受け取り、各bytesはその後アップロードするファイルの正確なサイズでなければなりません。- 各パートはファイルの最後のパートを除いてちょうど
chunkBytesの長さで、長さが違うパートは 400bad_chunkになります。startは、パートが欠けているファイルを 412missing_chunksで、アーカイブでもメールボックスでもないファイルを 400unsupported_fileで拒否します。すでにuploadingを過ぎたインポートでは、インポートを変更せずに返します。 - 再試行してもパートが失敗する場合、
import-filesはインポートをuploadingのままにして停止します。下のブロックは、最初のファイルの不足しているパートを送り、インポートを開始します。 - インポートは
totalBytesのうちのprocessedBytesと、seen、imported、duplicate、filtered、failed、threadsを含むcountsを報告します。lastErrorが設定されるのはstatusがfailedのときだけです。 list-failuresは各失敗にreasonを付けます。too-large(50 MB 超)、unparseable、no-date、storage-error、unreadable-entry、encrypted-entry、archive-limitのいずれかで、読み取れた場合は件名と送信者も示します。- 完了したインポートに対する
cancelは 409not_cancellableになります。delete-uploadはまだアップロード中のインポートを取り消しますが、キュー待ちまたは実行中のものは 409still_runningで拒否するので、先にそれを取り消してください。
openemail imports get "$import_id" --json > import.jsonopenemail imports upload-state "$import_id" --json > state.jsonchunk=$(jq .chunkBytes import.json)chunks=$(jq '.files[0].chunks' import.json)for i in $(seq 0 $((chunks - 1))); do jq -e --argjson i "$i" '.received[0] | any(. == $i)' state.json > /dev/null && continue dd if=takeout-001.zip bs="$chunk" skip="$i" count=1 2> /dev/null | openemail imports upload-chunk "$import_id" 0 "$i" -doneopenemail imports start "$import_id"Resend からのインポート
openemail provider-imports は、フルアクセスの Resend API キー 1 つで、ワークスペースを Resend から移行します。抑止は理由を保ち、セグメントはオーディエンスになり、購読中の連絡先は名前付きで届き、テンプレートは変数が宣言された HTML テンプレートとして届きます。ここでの配信は署名の方式が異なるため、Webhook はオフの状態で登録されます。署名鍵やトークンは Resend から持ち出せないので、ドメインと API キーは代わりにレポートのチェックリストとして返されます。
| コマンド | 機能 |
|---|---|
| openemail provider-imports inspect <api-key> | インポートの前に、Resend アカウントにあるものをリソースごとに数えます。何も保存されず、キーも保持されません |
| openemail provider-imports create --resend-key <value> --resources <a,b> | 指定したリソースのインポートをキューに入れます |
| openemail provider-imports list | 送信プロバイダーからのインポートを新しい順に 1 ページ、それぞれのレポートとともに一覧表示します |
| openemail provider-imports get <id> | 1 つのインポートを読みます。ステータス、現在の手順、ここまでのレポートです |
| openemail provider-imports cancel <id> | インポートを止め、Resend のキーを消去します。すでに移行されたものは残ります。確認を求めます |
- Resend のキーは、ファイルから読むには
@pathとして、stdin から読むには-として渡してください。そうすればシェルの履歴やプロセス一覧に残りません。コマンドラインに直接入力したキーも使えますが、警告が出ます。--dry-runはキーを伏せた本文を表示します。 --resourcesはsuppressions、audiences、contacts、templates、webhooks、domains、api-keysのいずれかを、カンマ区切りまたは繰り返しで受け取ります。- 送信専用のキーは 400
restricted_keyになります。インポート用に Resend でフルアクセスのキーを作成し、終わったら取り消してください。 inspectは各リソースの最初のページを読み、リソースごとに 1 つの{ count, more }を含むcountsを返します。リソースが最初のページに収まらない場合はmoreが設定されます。- インポートは 1 つのワークスペースにつき同時に 1 つしか実行されず、2 つ目は 409
already_runningになります。同じインポートを 2 回実行しても何も重複しません。キーはインポートの実行中だけ暗号化して保持され、終了、失敗、取り消しのいずれかで消去されます。 - Resend で配信停止した連絡先は除外され、
report.contacts.unsubscribedで数えられます。 report.domainsは Resend の各ドメインをstateとともに一覧表示します。このワークスペースにない場合はabsent、あるが未検証の場合はadded、そしてverifiedで、Resend にあったレコードも示します。ないドメインはopenemail domains createで追加してください。report.apiKeysはopenemail keys createで作り直すべきキーを示します。- ブラウザでのサインインでは、これらのコマンドを使えるのはワークスペースのオーナーだけで、メンバーには 403
owner_onlyが返ります。API キーにはこの制限はありません。特定のアドレスやドメインに限定されたキーやサインインは、インポートの調査も作成もできません。オーディエンス、抑止、テンプレートはワークスペース全体に属するからです。 createには、取り込む各リソースのスコープも必要です。オーディエンスにはaudiences:write、連絡先にはcontacts:writeとaudiences:write、テンプレートにはtemplates:write、Webhook にはwebhooks:write、ドメインにはdomains:readです。
カレンダー
openemail calendar はメールから見つかったカレンダーのイベントを読みます。3 つのコマンドはどれも読み取るだけです。list-events は、指定した期間内で各イベントを個々の発生に展開するので、毎週の会議は 1 週につき 1 行になります。get-event と get-event-ics は 1 つのイベント全体を読みます。openemail open calendar で Web アプリのカレンダーが開きます。
| コマンド | 機能 |
|---|---|
| openemail calendar list-events --from <when> --to <when> | 2 つの時点の間の発生を開始時刻順に 1 ページ一覧表示します。それぞれ eventId で元のイベントを指します |
| openemail calendar get-event <id> | イベントを、参加者とその回答、繰り返しルール、除外日、主催者、リマインダーとともに読みます |
| openemail calendar get-event-ics <id> | イベントを iCalendar ドキュメントとしてダウンロードし、表示するか --out <file> に書き込みます |
--fromと--toは2026-10-01T00:00:00Zのような ISO 8601 の日時です。繰り返しのシリーズには一覧の終わりがないため、--toは--fromより後で、かつ最大 366 日後まででなければなりません。境界がない場合は 422invalid_parameterです。解析できない境界、逆転したり長すぎたりする期間、不明なタイムゾーンは 400invalid_parameterです。--timezoneはEurope/Londonのような IANA タイムゾーンで、省略すると UTC です。独自のタイムゾーンなしで保存されたイベントの展開に使われ、終日イベントがどの日になるかを決めます。get-eventとget-event-icsは、iCalendar のuidではなく、発生のeventIdを受け取ります。繰り返しのシリーズは 1 つのイベントなので、そのstartとendは最初の回を表します。- 取り消されたイベントも
statusがCANCELLEDとして一覧に表示されます。myPartstatは、ワークスペースが自身のドメインで持つアドレスについて記録された回答で、どれも参加者でない場合は null です。 - ページングは
--cursorと同じ期間で続けます。特定のアドレスに限定されたキーやサインインには、それらのアドレスのどれかが主催または参加するイベントしか見えず、それ以外のイベントは 404 になります。 get-event-icsはMETHOD:PUBLISHを宣言するので、インポートすると承諾や辞退を求めるのではなく、イベントが現状のまま表示されます。時刻指定のイベントは UTC の日時として、終日イベントは日付として書き出されます。DTSTAMPはダウンロードした時刻なので、変更のないイベントを 2 回ダウンロードするとその行だけが異なります。
設定
openemail settings は、タイムゾーン、言語、時刻の形式、ブロックリストなど、メールボックスの環境設定を読み取り、変更します。4 つの設定はワークスペースではなくアドレスに属します。signature、openEmailSignature(OpenEmail のフッター)、trackOpens、trackClicks です。アドレスは --address で指定し、ドメインのキャッチオールには *@acme.com を使います。
| コマンド | 機能 |
|---|---|
| openemail settings get | 既定値を埋めたすべての設定を読みます。--address を付けると、アドレスごとの 4 つの設定は、そのアドレスからの送信で解決されるとおりに読まれます |
| openemail settings update | 渡した設定を変更し、残りはそのままにします。応答は、書き込み後に読み直したすべての設定です |
--addressなしの場合、getはアドレスごとの 4 つの設定を組み込みの既定値として読みます。署名なし、OpenEmail のフッターはオン、開封とリンクのトラッキングはオンです。付けた場合は、まずアドレス自身の値、次にキャッチオールがそのアドレスを拾った場合はドメインのキャッチオールの値、最後に既定値が使われます。独自の設定を持たないプラスアドレスは、元のアドレスの設定を読みます。--addressなしの場合、updateは--signature、--open-email-signature、--track-opens、--track-clicksを 422address_requiredで拒否し、何も書き込みません。付けた場合、updateはその 4 つだけを受け付け、それ以外は 422not_per_addressになります。アドレスはこのワークスペースにあるか、キャッチオールがオンになっているここの検証済みドメインの*@domainでなければなりません。- スイッチは前に
--no-を付けるとオフになります。--no-open-email-signature、--no-track-opens、--no-track-clicksです。 --signatureは最大 150,000 文字の HTML で、書き込み時にサニタイズされるので、返ってくるものがそのまま送信されます。空文字列で削除されます。送信時に追加するかどうかは送信側で決まります。openemail emails send --helpの--signatureを参照してください。- フラグはよく使うフィールドをカバーしています。
--dataはtimeFormat、weekStart、undoSendEnabled、blockedSenders、blockedDomainsなど、保存されている任意の設定を JSON で、インラインで、@pathでファイルから、または-で stdin から受け取ります。設定が知らないキーはエラーなしで捨てられ、既知のキーで型が違うものは 422invalid_parameterになります。 blockedDomainsのようなリストは丸ごと置き換えられるので、下の例のように、まず読んでから変更を加えて送り返してください。ルールにするには短すぎるブロックリストのエントリは 422blocklist_entry_too_broadになります。--timezoneと--languageは確認されずに指定どおり保存されるので、送る前にタイムゾーンや言語コードを確認してください。- プライバシーのフィールドである
externalImages、trustedSenders、blockedSenders、blockedDomains、blockedWords、useDefaultBlockedWordsはワークスペースに属します。特定のアドレスやドメインに限定されたキーやサインインはこれらを変更できず、--addressには自分が持つアドレスか、全体を持つドメインのキャッチオールしか指定できません。どちらの拒否も 422capability_unsupportedです。 - 何も含まない更新は何も変更せず、現在の設定を返します。
defaultEmailAliasは Web アプリの作成画面で From のアドレスをあらかじめ選択するだけで、API が送信者を選ぶのに使うことはありません。
例
file_id=$(openemail files upload ./price-list.pdf --json | jq -r .id)openemail files create-link "$file_id" --domain acme.com --json | jq -r .urlopenemail files list-links "$file_id"openemail files download "$file_id" --out copy.pdfcreate-link は実行するたびに新しいリンクを作るので、1 回だけ実行し、リンクは list-links で読み直してください。revoke-link は後でそのリンクを止め、すでに送ったメール内のものも止めます。
openemail files list --direction uploaded --all | jq -r 'select(.deletable) | .id' > deletable.txtwc -l < deletable.txtxargs -r -n 100 openemail files delete-many --yes --json < deletable.txt | jq -c '.kept[]'パイプで --all を使うと、files list は 1 行に 1 つのファイルを出力します。xargs -n 100 は delete-many に 1 回の呼び出しで最大 100 個の ID を渡し、その間に使われるようになったファイルは、呼び出しを失敗させる代わりに理由とともに kept で返されます。
domain_id=$(openemail domains list --all | jq -r 'select(.domain == "acme.com") | .id')address_id=$(openemail domains list-addresses "$domain_id" --all | jq -r 'select(.address == "[email protected]") | .id')openemail imports import-files --address-id "$address_id" --files ~/Downloads/takeout-001.zip --files ~/Downloads/takeout-002.zip --json > import.jsonimport_id=$(jq -r .id import.json)until openemail imports get "$import_id" --json | jq -e '.status != "queued" and .status != "running"' > /dev/null; do sleep 60doneopenemail imports get "$import_id" --json | jq '{status, counts, lastError}'openemail imports list-failures "$import_id" --json | jq -r '.data[] | [.reason, .subject] | @tsv'import-files の --dry-run は、送るはずの POST /imports を各ファイルの名前とサイズとともに表示し、何もアップロードしません。list-failures は 100 件ずつ読みます。次のページには、表示された nextCursor を --after として渡してください。
openemail provider-imports inspect @resend-key.txtopenemail provider-imports create --resend-key @resend-key.txt --resources suppressions,audiences,contacts,templates,webhooks,domains,api-keys --json > resend.jsonpimp_id=$(jq -r .id resend.json)until openemail provider-imports get "$pimp_id" --json | jq -e '.status != "queued" and .status != "running"' > /dev/null; do sleep 10doneopenemail provider-imports get "$pimp_id" --json | jq '.report | {contacts, domains: [.domains[] | {name, state}], apiKeys: [.apiKeys[].name]}'openemail calendar list-events --from 2026-10-01T00:00:00Z --to 2026-11-01T00:00:00Z --timezone Europe/London --all | jq -r 'select(.status != "CANCELLED") | [.start, .summary, .myPartstat] | @tsv'openemail calendar get-event cal_8d3f0a2b9c4e41f7a6b5c2d1 --json | jq '.attendees[] | {email, partstat}'openemail calendar get-event-ics cal_8d3f0a2b9c4e41f7a6b5c2d1 --out standup.icsopenemail settings get --address [email protected] --json | jq '{signature, openEmailSignature, trackOpens, trackClicks}'openemail settings update --address [email protected] --signature "$(cat signature.html)" --no-track-clicks --dry-runopenemail settings update --address [email protected] --signature "$(cat signature.html)" --no-track-clicksopenemail settings update --address '*@acme.com' --no-track-opensopenemail settings update --timezone Europe/London --language enopenemail settings get --json | jq -c '{blockedDomains: ((.blockedDomains + ["spam.example"]) | unique)}' | openemail settings update --data -ドライランは PATCH /settings?address=sales%40acme.com とその本文を送らずに表示します。キャッチオールの行は acme.com のキャッチオールが拾うすべてのアドレスのトラッキングを設定し、最後の行は他のドメインを外さずに 1 つのドメインをブロックリストに追加します。
スコープ、確認、エラー
| スコープ | コマンド |
|---|---|
| files:read | files list、get、stats、download、list-links |
| files:write | files create-link、revoke-link、upload、delete、delete-many |
| threads:read | imports list、get、list-failures |
| threads:write | imports create、upload-state、upload-chunk、start、cancel、delete-upload、import-files |
| settings:read | provider-imports list、get、そして settings get |
| settings:write | provider-imports inspect、create、cancel、そして settings update |
| calendar:read | calendar list-events、get-event、get-event-ics |
- スコープのないサインインやキーは終了コード
4で停止し、足りないスコープの名前と取得方法を示します。 files revoke-link、files delete、files delete-many、imports cancel、imports delete-upload、provider-imports cancelは確認を求めます。いいえと答えると終了コード10で終了し、何も変更しません。--yesなしの無人実行では、何も送らないうちに終了コード2で停止します。- ここにあるコマンドは、ブラウザでのサインインでも API キーでも確認コードを求めないので、スクリプトに必要なのは
--yesだけです。 --dry-runは変更が送るはずのリクエストを本文とともに表示し、送信も確認もせずに終了コード0で終了します。ファイルの本文はサイズと種類で表示されます。files list、files list-links、imports list、provider-imports list、calendar list-eventsは 1 ページを読みます。--limitは 1 から 100 を受け付け、省略するとサーバーは 25 件を返します。--cursorは前のページのnextCursorを受け取ります。--allはすべてのページを読み、--max <n>はその件数で停止し、--ndjson、またはパイプでの--allは 1 行に 1 つの JSON オブジェクトを出力します。--jsonを付けると 1 つの{ items, hasMore, nextCursor }ドキュメントを出力します。imports list-failuresは独自の方法でページングします。--afterは前のページのnextCursorを受け取り、--limitは最大 100 で、それが既定値です。--allはありません。--jsonを付けると{ object, data, nextCursor }を出力します。- 読み取りと、2 回行っても同じ結果になる変更は、ネットワーク障害の後に再試行されます。
files revoke-link、imports upload-chunk、imports start、settings updateです。それ以外の変更は 1 回だけ送られます。応答が失われた後は、もう一度試す前に確認してください。2 回目のuploadは 2 つ目のコピーを保存し、2 回目のcreate-linkは 2 つ目のリンクを作ります。2 回目のfiles deleteで 404 が返れば 1 回目が成功したということで、2 回目のdelete-manyは 1 回目で削除されたものをmissingに一覧表示します。 - 拒否された場合は、そのステータスに対応するコードで終了します。403 なら
4、404 なら5、409 なら6、400 か 422 なら7、429 なら8です。