مستندات n8n
74+ نود
📦

دراپ‌باکس

Dropbox

آپلود، دانلود و مدیریت فایل‌ها و پوشه‌ها در Dropbox به صورت خودکار

ذخیره‌سازی
مقدماتی
۰ بازدید
n8n 1.0+

نمای کلی

نود Dropbox چیست؟

نود Dropbox امکان اتصال و خودکارسازی مدیریت فایل‌های ابری را در n8n فراهم می‌کند. Dropbox یکی از پیشگام‌ترین سرویس‌های ذخیره‌سازی ابری با بیش از ۷۰۰ میلیون کاربر ثبت‌نام شده در جهان است.

قابلیت‌های کلیدی:

  • آپلود فایل: آپلود فایل‌ها با پشتیبانی از فایل‌های حجیم (chunked upload)
  • دانلود فایل: دانلود فایل‌ها و دریافت لینک موقت
  • مدیریت پوشه: ایجاد، لیست‌گیری و حذف پوشه‌ها
  • اشتراک‌گذاری: ایجاد و مدیریت shared links با تنظیمات دسترسی
  • جستجو: جستجوی فایل‌ها و پوشه‌ها بر اساس نام و محتوا
  • کپی و جابجایی: انتقال فایل‌ها بین پوشه‌ها
  • متادیتا: دریافت اطلاعات کامل فایل‌ها
  • Dropbox Paper: یکپارچه‌سازی با ابزار مستندسازی تیمی
  • Dropbox Sign: مدیریت امضای دیجیتال اسناد

فضای ذخیره‌سازی:

  • Basic (رایگان): ۲ گیگابایت
  • Plus: ۲ ترابایت
  • Professional: ۳ ترابایت
  • Business Standard: ۵ ترابایت به ازای هر کاربر
  • Business Advanced: نامحدود

محدودیت‌های API:

  • Rate Limit: محدودیت بر اساس app و کاربر
  • Upload: حداکثر ۱۵۰ مگابایت برای upload ساده، بیشتر با upload session
  • Batch Operations: حداکثر ۱۰۰۰ عملیات در هر batch

احراز هویت

احراز هویت Dropbox

روش ۱: OAuth2 (توصیه می‌شود)

#### مرحله ۱: ایجاد App در Dropbox App Console

  1. 1به [Dropbox App Console](https://www.dropbox.com/developers/apps) بروید
  2. 2روی "Create app" کلیک کنید
  3. 3Scoped access را انتخاب کنید
  4. 4نوع دسترسی را مشخص کنید:
  • App folder: فقط به پوشه مخصوص app دسترسی دارد
  • Full Dropbox: دسترسی به تمام فایل‌ها و پوشه‌ها
  1. 1نام app را وارد کنید

#### مرحله ۲: تنظیم Permissions (Scopes)

در تب Permissions این دسترسی‌ها را فعال کنید:

  • files.metadata.read: خواندن metadata فایل‌ها
  • files.metadata.write: ویرایش metadata
  • files.content.read: خواندن محتوای فایل‌ها
  • files.content.write: نوشتن و آپلود فایل
  • sharing.read: خواندن اطلاعات اشتراک‌گذاری
  • sharing.write: ایجاد و مدیریت shared links

#### مرحله ۳: تنظیم Redirect URI

  1. 1در تب Settings به بخش OAuth 2 بروید
  2. 2Redirect URI اضافه کنید:
  • https://your-n8n.com/rest/oauth2-credential/callback
  1. 1App key و App secret را کپی کنید

#### مرحله ۴: تنظیم در n8n

  1. 1به Credentials بروید و Dropbox OAuth2 API را انتخاب کنید
  2. 2App Key و App Secret وارد کنید
  3. 3Connect my account بزنید و با حساب Dropbox وارد شوید

روش ۲: Access Token (برای تست سریع)

  1. 1در Dropbox App Console به تب Settings بروید
  2. 2در بخش OAuth 2 روی "Generate" کلیک کنید
  3. 3Access Token تولید شده را در n8n وارد کنید

⚠️ نکته: این توکن پس از ۴ ساعت منقضی می‌شود. برای Production حتماً از OAuth2 استفاده کنید.

نکات امنیتی:

  • از Full Dropbox access فقط در صورت نیاز واقعی استفاده کنید
  • App folder access امن‌تر و محدودتر است
  • App Secret را هرگز به اشتراک نگذارید
  • Refresh Token به صورت خودکار توسط n8n مدیریت می‌شود

عملیات‌های موجود

1

upload

آپلود فایل جدید به Dropbox

2

download

دانلود فایل از Dropbox

3

delete

حذف فایل یا پوشه از Dropbox

4

list

دریافت لیست فایل‌ها و پوشه‌ها در یک مسیر

5

copy

کپی فایل یا پوشه به مسیر جدید

6

move

انتقال فایل یا پوشه به مسیر جدید

7

createFolder

ایجاد پوشه جدید در Dropbox

8

search

جستجو در فایل‌ها و پوشه‌ها بر اساس نام یا محتوا

9

getMetadata

دریافت اطلاعات کامل فایل یا پوشه (حجم، تاریخ، hash و...)

10

getSharedLink

دریافت لینک‌های اشتراک‌گذاری موجود برای یک فایل

11

createSharedLink

ایجاد لینک اشتراک‌گذاری جدید با تنظیمات دسترسی

12

getTemporaryLink

دریافت لینک دانلود مستقیم موقت (۴ ساعت اعتبار)

13

listFolderContinue

دریافت ادامه نتایج لیست پوشه با cursor (برای پوشه‌های بزرگ)

14

uploadSession

آپلود فایل‌های بزرگ به صورت قطعه‌ای (chunked) با upload session

کاربردهای متداول

کاربردهای رایج

۱. بک‌آپ خودکار فایل‌ها

بک‌آپ روزانه فایل‌های مهم سرور به Dropbox:

code
Schedule (هر شب ساعت ۳)
  → FTP/SFTP (دانلود فایل‌ها)
  → Dropbox (Upload)
    - Path: /Backups/{{$now.toFormat('yyyy-MM-dd')}}/
    - Mode: overwrite
  → Telegram (گزارش بک‌آپ)

۲. اشتراک‌گذاری فایل تیمی

آپلود خودکار اسناد تیمی و ایجاد لینک اشتراک:

code
Webhook (فایل جدید)
  → Dropbox (Upload به /Team/Shared/)
  → Dropbox (Create Shared Link)
    - Visibility: team_only
  → Slack (ارسال لینک به کانال تیم)

۳. فرآیند تایید اسناد

ذخیره و مدیریت اسناد در فرآیند تایید چند مرحله‌ای:

code
Webhook (سند جدید)
  → Dropbox (Upload به /Pending/)
  → Email (ارسال برای تایید)
  → Wait (منتظر تایید)
  → Dropbox (Move به /Approved/ یا /Rejected/)
  → Slack (اطلاع‌رسانی نتیجه)

۴. آرشیو خودکار فاکتورها

ذخیره فاکتورهای صادر شده در ساختار منظم:

code
Webhook (فاکتور جدید)
  → Code (تولید PDF)
  → Dropbox (Upload)
    - Path: /Invoices/{{$now.toFormat('yyyy')}}/{{$now.toFormat('MM')}}/INV-{{$json.id}}.pdf
  → Dropbox (Create Shared Link)
  → Email (ارسال فاکتور با لینک)

۵. پردازش تصاویر آپلود شده

دریافت تصاویر از فرم و پردازش خودکار:

code
Webhook (فرم با تصویر)
  → Dropbox (Upload به /Uploads/Raw/)
  → HTTP Request (ارسال به سرویس resize)
  → Dropbox (Upload نسخه پردازش شده به /Uploads/Processed/)
  → MySQL (ذخیره مسیرها)

۶. همگام‌سازی بین پلتفرم‌ها

همگام‌سازی فایل بین Dropbox و سایر سرویس‌ها:

code
Schedule (هر ساعت)
  → Dropbox (List با cursor)
  → Filter (فایل‌های جدید)
  → Dropbox (Download)
  → Google Drive (Upload)
  → MySQL (لاگ همگام‌سازی)

۷. توزیع خودکار گزارش‌ها

تولید گزارش و توزیع از طریق Dropbox:

code
Schedule (اول هر ماه)
  → MySQL (آمار ماهانه)
  → Code (تولید CSV/PDF)
  → Dropbox (Upload به /Reports/)
  → Dropbox (Create Shared Link با انقضا)
  → Email (ارسال لینک به مدیران)

۸. مدیریت دارایی‌های رسانه‌ای

سازماندهی خودکار فایل‌های رسانه‌ای:

code
Dropbox Trigger (فایل جدید در /Media/Inbox/)
  → Dropbox (Get Metadata)
  → Switch (بر اساس نوع فایل)
    → image: Move به /Media/Images/
    → video: Move به /Media/Videos/
    → audio: Move به /Media/Audio/
  → Airtable (ثبت متادیتا)

۹. ویرایش مشارکتی اسناد

مدیریت فرآیند ویرایش تیمی:

code
Webhook (درخواست ویرایش)
  → Dropbox (Copy فایل به /Editing/)
  → Dropbox (Create Shared Link با password)
  → Email (ارسال لینک به ویرایشگر)
  → Schedule (بررسی تغییرات)
  → Dropbox (Get Metadata - بررسی آخرین ویرایش)

۱۰. آرشیو انطباقی و حقوقی

ذخیره و نگهداری اسناد برای الزامات قانونی:

code
Webhook (سند نهایی)
  → Dropbox (Upload به /Compliance/{{$now.toFormat('yyyy')}}/)
  → Dropbox (Get Metadata - ثبت content_hash)
  → PostgreSQL (ذخیره hash و متادیتا)
  → Dropbox (Create Shared Link - فقط خواندنی)
  → Email (تایید آرشیو)

نکات حرفه‌ای

نکات حرفه‌ای

۱. از OAuth2 با Refresh Token استفاده کنید

همیشه از OAuth2 بجای Access Token استاتیک استفاده کنید. n8n به صورت خودکار Refresh Token را مدیریت می‌کند و اتصال قطع نمی‌شود. Access Token دستی پس از ۴ ساعت منقضی می‌شود.

۲. محدودیت حجم آپلود را رعایت کنید

  • فایل‌های کمتر از ۱۵۰ مگابایت: از upload معمولی استفاده کنید
  • فایل‌های ۱۵۰ مگابایت تا ۳۵۰ گیگابایت: از Upload Session (chunked upload) استفاده کنید
  • اندازه توصیه شده هر chunk: ۴ تا ۸ مگابایت

۳. از Chunked Upload برای فایل‌های حجیم استفاده کنید

Upload Session به شما امکان آپلود فایل‌های بزرگ را به صورت قطعه‌ای می‌دهد. در صورت قطع اتصال، فقط قطعه آخر نیاز به ارسال مجدد دارد.

۴. از Content Hash برای تشخیص تکراری استفاده کنید

Dropbox یک content_hash منحصر به فرد برای هر فایل ارائه می‌دهد. قبل از آپلود مجدد، hash فایل محلی را با hash فایل Dropbox مقایسه کنید تا از آپلود تکراری جلوگیری شود.

۵. لینک‌های اشتراک با تاریخ انقضا بسازید

هنگام ایجاد Shared Link، تاریخ انقضا تنظیم کنید تا دسترسی محدود باشد. از رمز عبور برای لینک‌های حساس استفاده کنید.

۶. از Team Folders برای اسناد مشترک استفاده کنید

در پلن‌های Business، Team Folders امکان مدیریت متمرکز دسترسی تیمی را فراهم می‌کند. فایل‌ها در مالکیت تیم هستند نه فرد.

۷. یکپارچه‌سازی با Dropbox Paper

از Dropbox Paper API برای ایجاد و ویرایش اسناد مشارکتی استفاده کنید. Paper مناسب مستندسازی پروژه‌ها و جلسات است.

۸. از قواعد نام‌گذاری منظم استفاده کنید

ساختار نام‌گذاری ثابت برای فایل‌ها تعریف کنید:

code
/Backups/{{type}}/{{$now.toFormat('yyyy-MM-dd')}}_backup.sql
/Invoices/{{year}}/{{month}}/INV-{{id}}.pdf

۹. متادیتا فایل‌ها را بررسی کنید

قبل از عملیات روی فایل، با Get Metadata اطلاعات فایل (حجم، تاریخ ویرایش، hash) را دریافت کنید تا از عملیات غیرضروری جلوگیری شود.

۱۰. مسیرها را درست فرمت کنید

  • مسیر Dropbox همیشه با / شروع می‌شود
  • مسیر root با رشته خالی "" یا "/" مشخص می‌شود
  • Dropbox نسبت به حروف بزرگ/کوچک حساس نیست (case-insensitive)
  • از کاراکترهای خاص در نام فایل خودداری کنید

۱۱. از Cursor برای همگام‌سازی دلتا استفاده کنید

عملیات list_folder یک cursor برمی‌گرداند. با list_folder/continue و این cursor فقط تغییرات جدید را دریافت کنید بجای لیست کامل مجدد. این روش بسیار بهینه‌تر است.

۱۲. File Locking برای جلوگیری از تداخل

در پلن‌های Business، از File Locking استفاده کنید تا هنگام ویرایش یک فایل، دیگران نتوانند آن را تغییر دهند.

۱۳. Namespace Routing برای حساب‌های تیمی

در حساب‌های Business، از namespace routing برای دسترسی به فضای تیمی و شخصی به صورت مجزا استفاده کنید. Header Dropbox-API-Path-Root را تنظیم کنید.

۱۴. از Batch Operations استفاده کنید

برای عملیات‌های تکراری (مثل حذف چند فایل)، از batch endpoints مانند delete_batch، copy_batch و move_batch استفاده کنید. هر batch حداکثر ۱۰۰۰ عملیات را پشتیبانی می‌کند.

۱۵. Async Job Polling برای عملیات سنگین

عملیات‌های batch به صورت async اجرا می‌شوند. پس از شروع batch، یک async_job_id دریافت می‌کنید. با endpoint مربوط به check وضعیت job را polling کنید تا تکمیل شود.

رفع مشکلات

رفع مشکلات رایج

❌ خطای 401 - Invalid Access Token

علت: توکن دسترسی نامعتبر یا منقضی شده

راه‌حل

  • اگر از Access Token استفاده می‌کنید، توکن جدید generate کنید (توکن‌ها پس از ۴ ساعت منقضی می‌شوند)
  • در حالت OAuth2، Credential را Disconnect و مجدداً Connect کنید
  • مطمئن شوید App در Dropbox App Console هنوز فعال است
  • بررسی کنید که App revoke نشده باشد از Settings > Connected Apps

❌ خطای 409 - Path Conflict / Not Found

علت: مسیر فایل وجود ندارد یا تداخل در نام دارد

راه‌حل

  • مسیر را با / شروع کنید (مثل /Documents/file.pdf)
  • حروف بزرگ/کوچک در Dropbox اهمیت ندارد (case-insensitive)
  • اگر فایل هم‌نام وجود دارد، autorename: true تنظیم کنید یا mode: overwrite استفاده کنید
  • مطمئن شوید پوشه والد وجود دارد

❌ خطای 429 - Rate Limit Exceeded

علت: تعداد درخواست‌ها از حد مجاز عبور کرده

راه‌حل

  • بین درخواست‌ها از Wait node استفاده کنید
  • Header Retry-After مدت زمان انتظار را مشخص می‌کند
  • درخواست‌های batch را به جای تکی استفاده کنید
  • از cursor-based listing بجای لیست مکرر استفاده کنید

❌ خطای فایل بیش از حد بزرگ

علت: فایل از حداکثر اندازه مجاز آپلود ساده بیشتر است

راه‌حل

  • برای فایل‌های بزرگ‌تر از ۱۵۰ مگابایت از Upload Session استفاده کنید
  • فایل‌ها را به قطعات ۸ مگابایتی تقسیم و آپلود کنید
  • حداکثر حجم فایل در Dropbox: ۲ گیگابایت از طریق API و ۵۰ گیگابایت از طریق desktop app

❌ خطای Upload Session Expired

علت: جلسه آپلود منقضی شده (بعد از ۷ روز)

راه‌حل

  • Upload session باید در ۷ روز تکمیل شود
  • بین قطعات بیش از حد فاصله نگذارید
  • در صورت خطا، session جدید بسازید و از ابتدا شروع کنید
  • مطمئن شوید offset‌ها به ترتیب ارسال می‌شوند

❌ خطای Shared Link Already Exists

علت: لینک اشتراک‌گذاری قبلاً برای این فایل وجود دارد

راه‌حل

  • ابتدا با عملیات Get Shared Link لینک موجود را دریافت کنید
  • اگر لینک جدیدی نیاز دارید، لینک قبلی را revoke کرده و سپس ایجاد کنید
  • تنظیمات لینک موجود را ویرایش کنید بجای ایجاد لینک جدید

❌ خطای Insufficient Space

علت: فضای ذخیره‌سازی Dropbox کافی نیست

راه‌حل

  • فضای موجود را بررسی کنید (get_space_usage API)
  • فایل‌های قدیمی و غیرضروری را حذف کنید
  • سطل زباله (Trash) را خالی کنید
  • پلن ذخیره‌سازی را ارتقا دهید

❌ خطای OAuth Token Expired (Refresh Failed)

علت: Refresh Token نامعتبر شده

راه‌حل

  • Credential را Disconnect و مجدداً Connect کنید
  • بررسی کنید App در Dropbox App Console هنوز فعال باشد
  • مطمئن شوید Scopes تغییر نکرده باشد
  • اگر App را revoke کرده‌اید، دوباره authorize کنید
اشتراک‌گذاری:

آیا این مستندات مفید بود؟