安全なn8nファイルワークフローを作成する

実際のノードラベルを使ってdosyaの操作を1つ設定し、返されたファイルデータをテストします。アップロードのバージョン、再試行のタイミング、共有リンクの重複にも対応します。

最終確認日

スクリーンショットは英語版の画面です。

明確に指定した1つの操作を中心にdosyaのワークフローを作成し、有効化する前に手動実行の結果を確認してください。コミュニティノードにはアクションがありますが、dosyaのトリガーはないため、ワークフローはn8nのトリガーまたは前段のアプリケーションから開始します。

トリガーの出力とdosyaの対象選択から、手動実行、出力の確認、有効化までを示す安全なn8nファイル自動化の手順図。
トリガーを無人で実行させる前に、使い捨ての入力を1件使ってバイナリフィールドの対応付け、対象先、副作用を確認してください。スクリーンショットを原寸大で開く。

操作を選ぶ

リソースと操作入力と効果
File → Upload入力されたバイナリフィールドを読み取り、選択したWorkspaceとFolderに保存します。フィールドの初期値はdataです。そのフォルダーに同名ファイルがある場合は新しいバージョンになります。
File → Download選択または対応付けられたファイルIDを使い、後続のノード用にバイトデータをOutput Data Field Nameに書き込みます。
File → Get ManyフォルダーまたはWorkspace Rootの一覧を取得します。Return Allは結果をページごとに取得します。それ以外の場合、Limitの初期値は50です。
Folder → CreateParent Folderの下に指定名のフォルダーを作成するか、既存のフォルダーを返します。スラッシュの置換を選ぶと、A/Bのような名前を1つのフォルダー名として扱えます。
Share Link → Createファイルまたはフォルダーの新しい公開リンクを作成します。有効期限、8文字以上のアクセスコード、View Onlyを設定できます。呼び出しが成功するたびに別のリンクが作成されます。

固定の対象先を設定するときはFrom Listを使ってください。前のノードがIDを渡す場合はBy IDまたは式を使ってください。IDは表示名より安定しています。

手順

  1. n8nワークフローを作成し、手動トリガーまたはアプリ固有のトリガーを追加してください。使い捨ての項目を1件取得し、そのJSONとバイナリの各フィールドを表示してください。
  2. dosya.devを追加し、目的のResourceとOperationを選んでから、専用のdosya.dev API認証情報を選択してください。
  3. Workspaceと対象先のFolderを選択してください。フォルダーの値が空またはWorkspace Rootの場合、最上位が対象になります。ダウンロードと共有のアクションでは、対応付けられた対象IDがあれば十分です。Workspaceは選択画面を参照する場合にのみ使います。
  4. Uploadでは、前のノードのBinaryタブを確認し、そのフィールド名をInput Data Field Nameに入力してください。一般的な値にはdataや、attachment_0のようなGmail添付ファイル名があります。入力元の名前をそのまま使うにはFile Nameを空欄にし、変更する場合は意図した名前を対応付けてください。
  5. dosyaノードだけを実行してください。後続の手順を接続する前に出力を確認してください。アップロードはid、name、size、mime_type、version、is_new_version、workspace_id、folder_id、created_at、hash_verified、deduplicated、upload_methodを返します。
  6. 拒否された操作に対応する分岐またはエラーワークフローを追加してください。エラーメッセージに認証情報やファイル内容を含めず、HTTPステータス、dosyaのメッセージ、n8nの実行IDを保持してください。
  7. 以下の副作用に関するルールを確認してから、同じ入力をもう一度テストしてください。目的のdosyaフォルダーで結果を確認し、ワークフローを有効化してください。
dosyaのZapier設定画面と、n8nのdosyaノード内で使うResourceおよびOperationの操作欄の対比。
このスクリーンショットはZapierの画面です。n8nのエディターで**dosya.dev**ノードを使ってワークフローを作成し、実行記録でノードの出力を確認してください。スクリーンショットを原寸大で開く。

結果

手動実行では選択した対象先だけが変更され、後続の手順で対応付けられる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アカウントにサインインすると、質問を投稿できます。

    やり直す前に結果を確認

    操作をもう一度確認する必要があるときは、次の共通の確認事項をご利用ください。