دراپباکس
Dropbox
آپلود، دانلود و مدیریت فایلها و پوشهها در Dropbox به صورت خودکار
نمای کلی
نود 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به [Dropbox App Console](https://www.dropbox.com/developers/apps) بروید
- 2روی "Create app" کلیک کنید
- 3Scoped access را انتخاب کنید
- 4نوع دسترسی را مشخص کنید:
- App folder: فقط به پوشه مخصوص app دسترسی دارد
- Full Dropbox: دسترسی به تمام فایلها و پوشهها
- 1نام app را وارد کنید
#### مرحله ۲: تنظیم Permissions (Scopes)
در تب Permissions این دسترسیها را فعال کنید:
files.metadata.read: خواندن metadata فایلهاfiles.metadata.write: ویرایش metadatafiles.content.read: خواندن محتوای فایلهاfiles.content.write: نوشتن و آپلود فایلsharing.read: خواندن اطلاعات اشتراکگذاریsharing.write: ایجاد و مدیریت shared links
#### مرحله ۳: تنظیم Redirect URI
- 1در تب Settings به بخش OAuth 2 بروید
- 2Redirect URI اضافه کنید:
https://your-n8n.com/rest/oauth2-credential/callback
- 1App key و App secret را کپی کنید
#### مرحله ۴: تنظیم در n8n
- 1به Credentials بروید و Dropbox OAuth2 API را انتخاب کنید
- 2App Key و App Secret وارد کنید
- 3Connect my account بزنید و با حساب Dropbox وارد شوید
روش ۲: Access Token (برای تست سریع)
- 1در Dropbox App Console به تب Settings بروید
- 2در بخش OAuth 2 روی "Generate" کلیک کنید
- 3Access Token تولید شده را در n8n وارد کنید
⚠️ نکته: این توکن پس از ۴ ساعت منقضی میشود. برای Production حتماً از OAuth2 استفاده کنید.
نکات امنیتی:
- از Full Dropbox access فقط در صورت نیاز واقعی استفاده کنید
- App folder access امنتر و محدودتر است
- App Secret را هرگز به اشتراک نگذارید
- Refresh Token به صورت خودکار توسط n8n مدیریت میشود
عملیاتهای موجود
upload
آپلود فایل جدید به Dropbox
download
دانلود فایل از Dropbox
delete
حذف فایل یا پوشه از Dropbox
list
دریافت لیست فایلها و پوشهها در یک مسیر
copy
کپی فایل یا پوشه به مسیر جدید
move
انتقال فایل یا پوشه به مسیر جدید
createFolder
ایجاد پوشه جدید در Dropbox
search
جستجو در فایلها و پوشهها بر اساس نام یا محتوا
getMetadata
دریافت اطلاعات کامل فایل یا پوشه (حجم، تاریخ، hash و...)
getSharedLink
دریافت لینکهای اشتراکگذاری موجود برای یک فایل
createSharedLink
ایجاد لینک اشتراکگذاری جدید با تنظیمات دسترسی
getTemporaryLink
دریافت لینک دانلود مستقیم موقت (۴ ساعت اعتبار)
listFolderContinue
دریافت ادامه نتایج لیست پوشه با cursor (برای پوشههای بزرگ)
uploadSession
آپلود فایلهای بزرگ به صورت قطعهای (chunked) با upload session
کاربردهای متداول
کاربردهای رایج
۱. بکآپ خودکار فایلها
بکآپ روزانه فایلهای مهم سرور به Dropbox:
Schedule (هر شب ساعت ۳)
→ FTP/SFTP (دانلود فایلها)
→ Dropbox (Upload)
- Path: /Backups/{{$now.toFormat('yyyy-MM-dd')}}/
- Mode: overwrite
→ Telegram (گزارش بکآپ)۲. اشتراکگذاری فایل تیمی
آپلود خودکار اسناد تیمی و ایجاد لینک اشتراک:
Webhook (فایل جدید)
→ Dropbox (Upload به /Team/Shared/)
→ Dropbox (Create Shared Link)
- Visibility: team_only
→ Slack (ارسال لینک به کانال تیم)۳. فرآیند تایید اسناد
ذخیره و مدیریت اسناد در فرآیند تایید چند مرحلهای:
Webhook (سند جدید)
→ Dropbox (Upload به /Pending/)
→ Email (ارسال برای تایید)
→ Wait (منتظر تایید)
→ Dropbox (Move به /Approved/ یا /Rejected/)
→ Slack (اطلاعرسانی نتیجه)۴. آرشیو خودکار فاکتورها
ذخیره فاکتورهای صادر شده در ساختار منظم:
Webhook (فاکتور جدید)
→ Code (تولید PDF)
→ Dropbox (Upload)
- Path: /Invoices/{{$now.toFormat('yyyy')}}/{{$now.toFormat('MM')}}/INV-{{$json.id}}.pdf
→ Dropbox (Create Shared Link)
→ Email (ارسال فاکتور با لینک)۵. پردازش تصاویر آپلود شده
دریافت تصاویر از فرم و پردازش خودکار:
Webhook (فرم با تصویر)
→ Dropbox (Upload به /Uploads/Raw/)
→ HTTP Request (ارسال به سرویس resize)
→ Dropbox (Upload نسخه پردازش شده به /Uploads/Processed/)
→ MySQL (ذخیره مسیرها)۶. همگامسازی بین پلتفرمها
همگامسازی فایل بین Dropbox و سایر سرویسها:
Schedule (هر ساعت)
→ Dropbox (List با cursor)
→ Filter (فایلهای جدید)
→ Dropbox (Download)
→ Google Drive (Upload)
→ MySQL (لاگ همگامسازی)۷. توزیع خودکار گزارشها
تولید گزارش و توزیع از طریق Dropbox:
Schedule (اول هر ماه)
→ MySQL (آمار ماهانه)
→ Code (تولید CSV/PDF)
→ Dropbox (Upload به /Reports/)
→ Dropbox (Create Shared Link با انقضا)
→ Email (ارسال لینک به مدیران)۸. مدیریت داراییهای رسانهای
سازماندهی خودکار فایلهای رسانهای:
Dropbox Trigger (فایل جدید در /Media/Inbox/)
→ Dropbox (Get Metadata)
→ Switch (بر اساس نوع فایل)
→ image: Move به /Media/Images/
→ video: Move به /Media/Videos/
→ audio: Move به /Media/Audio/
→ Airtable (ثبت متادیتا)۹. ویرایش مشارکتی اسناد
مدیریت فرآیند ویرایش تیمی:
Webhook (درخواست ویرایش)
→ Dropbox (Copy فایل به /Editing/)
→ Dropbox (Create Shared Link با password)
→ Email (ارسال لینک به ویرایشگر)
→ Schedule (بررسی تغییرات)
→ Dropbox (Get Metadata - بررسی آخرین ویرایش)۱۰. آرشیو انطباقی و حقوقی
ذخیره و نگهداری اسناد برای الزامات قانونی:
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 مناسب مستندسازی پروژهها و جلسات است.
۸. از قواعد نامگذاری منظم استفاده کنید
ساختار نامگذاری ثابت برای فایلها تعریف کنید:
/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 کنید
