安全なn8nファイルワークフローを作成する
実際のノードラベルを使ってdosyaの操作を1つ設定し、返されたファイルデータをテストします。アップロードのバージョン、再試行のタイミング、共有リンクの重複にも対応します。
最終確認日
スクリーンショットは英語版の画面です。
明確に指定した1つの操作を中心にdosyaのワークフローを作成し、有効化する前に手動実行の結果を確認してください。コミュニティノードにはアクションがありますが、dosyaのトリガーはないため、ワークフローはn8nのトリガーまたは前段のアプリケーションから開始します。

操作を選ぶ
| リソースと操作 | 入力と効果 |
|---|---|
| File → Upload | 入力されたバイナリフィールドを読み取り、選択したWorkspaceとFolderに保存します。フィールドの初期値はdataです。そのフォルダーに同名ファイルがある場合は新しいバージョンになります。 |
| File → Download | 選択または対応付けられたファイルIDを使い、後続のノード用にバイトデータをOutput Data Field Nameに書き込みます。 |
| File → Get Many | フォルダーまたはWorkspace Rootの一覧を取得します。Return Allは結果をページごとに取得します。それ以外の場合、Limitの初期値は50です。 |
| Folder → Create | Parent Folderの下に指定名のフォルダーを作成するか、既存のフォルダーを返します。スラッシュの置換を選ぶと、A/Bのような名前を1つのフォルダー名として扱えます。 |
| Share Link → Create | ファイルまたはフォルダーの新しい公開リンクを作成します。有効期限、8文字以上のアクセスコード、View Onlyを設定できます。呼び出しが成功するたびに別のリンクが作成されます。 |
固定の対象先を設定するときはFrom Listを使ってください。前のノードがIDを渡す場合はBy IDまたは式を使ってください。IDは表示名より安定しています。
手順
- n8nワークフローを作成し、手動トリガーまたはアプリ固有のトリガーを追加してください。使い捨ての項目を1件取得し、そのJSONとバイナリの各フィールドを表示してください。
- dosya.devを追加し、目的のResourceとOperationを選んでから、専用のdosya.dev API認証情報を選択してください。
- Workspaceと対象先のFolderを選択してください。フォルダーの値が空またはWorkspace Rootの場合、最上位が対象になります。ダウンロードと共有のアクションでは、対応付けられた対象IDがあれば十分です。Workspaceは選択画面を参照する場合にのみ使います。
- Uploadでは、前のノードのBinaryタブを確認し、そのフィールド名をInput Data Field Nameに入力してください。一般的な値には
dataや、attachment_0のようなGmail添付ファイル名があります。入力元の名前をそのまま使うにはFile Nameを空欄にし、変更する場合は意図した名前を対応付けてください。 - dosyaノードだけを実行してください。後続の手順を接続する前に出力を確認してください。アップロードは
id、name、size、mime_type、version、is_new_version、workspace_id、folder_id、created_at、hash_verified、deduplicated、upload_methodを返します。 - 拒否された操作に対応する分岐またはエラーワークフローを追加してください。エラーメッセージに認証情報やファイル内容を含めず、HTTPステータス、dosyaのメッセージ、n8nの実行IDを保持してください。
- 以下の副作用に関するルールを確認してから、同じ入力をもう一度テストしてください。目的のdosyaフォルダーで結果を確認し、ワークフローを有効化してください。

結果
手動実行では選択した対象先だけが変更され、後続の手順で対応付けられるIDが返されます。アップロードの場合、hash_verified: trueは指定したSHA-256がdosyaで一致したことを示します。is_new_version: trueは同名のバージョンを示し、deduplicated: trueはその実行内で冪等なリクエストが再実行されたことを示します。
フォルダー作成では、同名の既存フォルダーが再利用された場合にcreated: falseが返されます。共有の作成ではurl、target_type、target_id、expires_at、view_only、access_code_required、access_mode、created_atが返されます。返されたリンクは対象と制限を確認してから送信してください。
タイミング、再試行、繰り返しの影響
- 50 MiB(52,428,800バイト)以下のファイルは、チェックサム付きの1回のアップロードリクエストを使い、アップロードのタイムアウトは10分です。それより大きいファイルは10 MiB(10,485,760バイト)のパートに分割され、すべてのパートが成功してから完了処理が行われます。
- 通常のリクエストのタイムアウトは60秒です。
429の場合、ノードはRetry-Afterに従って最大30秒待ち、合計3回の試行後に停止します。 - 短期間有効な署名付きダウンロードURLのリクエストを含む認証情報付きの読み取り、フォルダー作成、アップロードパートは、接続の切断または
502、503、504の際に再試行される場合があります。その署名付きURLからの別のバイト取得はタイムアウトが10分で、内部再試行はありません。原因を確認してからノードを再実行してください。フォルダー作成はサーバーが同名の既存フォルダーを再利用するため、繰り返しても安全です。 - 1回のリクエストによるアップロードには、実行、ノード、対象先、ファイル名、内容から生成された冪等性キーが付与されます。同じ実行内でn8nのRetry On Failを使うと、二重に書き込まずに完了済みのアップロードを受け取れる場合があります。
- Create Share Linkは結果が不明なネットワーク障害の後には再試行されません。再実行すると2つ目の有効なリンクが作成される可能性があるため、先にdosyaを確認してください。
- ワークフロー全体を再実行すると新しい実行になります。同名ファイルの再アップロードは別のバージョンになり、共有手順の再実行では別のURLが作成されます。
有効化すると、以後のトリガーイベントは外部に影響を及ぼします。アップロードやフォルダーの作成は共有ワークスペースの状態を変更する場合があります。共有URLは期限切れまたは取り消しまで受信者が開くことができます。ワークフローを無効化すると新しいn8nの実行は停止しますが、作成済みのファイル、バージョン、フォルダー、リンクは削除されません。
よくある問題
- No workspace selected、No file selected、またはNo folder selectedは、必須の資源ロケーターが空の値になったことを示します。失敗した項目を使って式を確認してください。
- The folder name is emptyは、名前または式に使用できる部分がなかったことを示します。
- The access code is shorter than 8 charactersは共有リクエスト前に検証されます。受信者用コードを長くしてください。
401はdosya.dev did not accept the API keyになります。期限切れ、取り消し済み、または入力を誤った認証情報を交換してください。403には、キーのスコープ、メンバーの権限、ワークスペースの固定、または未対応のフォルダーアンカーが示される場合があります。すべての制限を緩めるのではなく、サーバーの具体的なメッセージに従ってください。404は、IDの誤り、項目の削除またはゴミ箱への移動、キーから参照できない状態を意味する場合があります。413は、ファイルがプラン、ワークスペース、またはAPIキーのファイル単位の上限を超えていることを示します。ストレージ上限のエラーでは、オーナーに請求画面を、またはワークスペースの管理者に設定済みの上限を確認するよう案内します。
関連ガイド
この記事は役に立ちましたか?
評価の結果を読み込んでいます…
投票すると、回答を変更できるように、必要な投票用Cookieが最長180日間保存されます。
質問と回答
このガイドの手順について質問できます。質問は確認後に公開されます。
公開の質問には、アカウントの詳細、認証情報、非公開ファイルを含めないでください。これらについては 非公開サポート をご利用ください。
質問を読み込んでいます…
dosyaアカウントにサインインすると、質問を投稿できます。