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

گوگل درایو

Google Drive

آپلود، دانلود و مدیریت فایل در Google Drive به صورت خودکار

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

نمای کلی

نود Google Drive یکی از پرکاربردترین نودهای n8n برای مدیریت فایل ابری است.

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

  • آپلود فایل (متن، تصویر، PDF، ویدیو و...)
  • دانلود فایل‌ها
  • ایجاد و مدیریت پوشه‌ها
  • جستجوی پیشرفته فایل‌ها
  • اشتراک‌گذاری و مدیریت دسترسی
  • کپی و جابجایی فایل‌ها
  • به‌روزرسانی metadata فایل
  • کار با Google Docs، Sheets و Slides
  • پشتیبانی از Shared Drives (Team Drives)

کاربردها:

  • بک‌آپ خودکار فایل‌ها و دیتابیس
  • ذخیره فاکتورها و اسناد PDF
  • آپلود تصاویر از فرم‌ها
  • مدیریت اسناد تیمی
  • همگام‌سازی فایل بین سیستم‌ها
  • آرشیو ایمیل‌ها و پیوست‌ها
  • تولید و ذخیره گزارش‌های خودکار

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

  • فضای رایگان: 15 گیگابایت
  • حداکثر حجم آپلود: 5 ترابایت
  • Google Workspace: 30 گیگابایت تا نامحدود

احراز هویت

احراز هویت Google Drive

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

#### مرحله 1: ایجاد پروژه در Google Cloud Console

  1. 1به [Google Cloud Console](https://console.cloud.google.com/) بروید
  2. 2پروژه جدید بسازید
  3. 3به APIs & Services > Library بروید
  4. 4"Google Drive API" را جستجو و Enable کنید

#### مرحله 2: تنظیم OAuth Consent Screen

  1. 1APIs & Services > OAuth consent screen
  2. 2User Type: External
  3. 3اطلاعات اپلیکیشن را پر کنید
  4. 4Scopes:
  • https://www.googleapis.com/auth/drive (دسترسی کامل)
  • یا https://www.googleapis.com/auth/drive.file (فقط فایل‌های ساخته شده)
  1. 1Test Users اضافه کنید

#### مرحله 3: ایجاد OAuth Credentials

  1. 1APIs & Services > Credentials
  2. 2Create Credentials > OAuth client ID
  3. 3Application type: Web application
  4. 4Authorized redirect URIs:
  • https://your-n8n.com/rest/oauth2-credential/callback
  1. 1Client ID و Client Secret را کپی کنید

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

  1. 1Credentials > Google Drive OAuth2 API
  2. 2Client ID و Client Secret وارد کنید
  3. 3Connect my account بزنید
  4. 4با اکانت Google وارد شوید

روش 2: Service Account (برای سرورها)

  1. 1Google Cloud Console > IAM & Admin > Service Accounts
  2. 2Service Account بسازید
  3. 3JSON Key فایل دانلود کنید
  4. 4فایل JSON را Share کنید با Drive folder مورد نظر
  5. 5در n8n: Service Account JSON وارد کنید

نکته مهم درباره Service Account:

  • Service Account یک ایمیل مجازی است
  • فایل‌ها با این ایمیل ساخته می‌شوند
  • برای دیدن فایل‌ها در Drive، باید پوشه را با Service Account share کنید

نکات امنیتی:

  • حداقل Scope لازم را بدهید
  • از Service Account در Production استفاده کنید
  • Client Secret را به اشتراک نگذارید
  • Credential را مرتب Refresh کنید

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

1

upload

آپلود فایل جدید به Google Drive

2

download

دانلود فایل از Google Drive

3

createFolder

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

4

list

لیست فایل‌ها و پوشه‌ها

5

delete

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

6

share

اشتراک‌گذاری فایل با دیگران

7

copy

ایجاد کپی از فایل

8

move

انتقال فایل به پوشه دیگر

9

update

به‌روزرسانی metadata یا محتوای فایل

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

1. بک‌آپ خودکار دیتابیس

پشتیبان‌گیری روزانه:

code
Schedule (هر شب ساعت 2)
  → MySQL (Execute Query: SHOW TABLES)
  → Code (تبدیل به CSV)
  → Google Drive (Upload)
    - Name: backup_{{$now.toFormat('yyyy-MM-dd')}}.csv
    - Folder: Backups/Database

2. ذخیره فاکتور PDF

ذخیره خودکار فاکتور بعد از پرداخت:

code
Webhook (پرداخت موفق)
  → HTTP Request (دریافت PDF فاکتور)
  → Google Drive (Upload)
    - Name: Invoice-{{$json.invoiceId}}.pdf
    - Folder: Invoices/{{$now.toFormat('yyyy/MM')}}
  → Gmail (ارسال فاکتور به مشتری)

3. آپلود تصاویر فرم

ذخیره فایل‌های آپلود شده کاربران:

code
Webhook (فرم با فایل)
  → Google Drive (Upload)
    - Name: {{$json.userName}}_{{$now.toMillis()}}.jpg
    - Folder: Uploads/Images
  → MySQL (ذخیره لینک فایل)

4. همگام‌سازی اسناد

کپی اسناد مهم به Drive:

code
Schedule (هر ساعت)
  → MySQL (فایل‌های جدید)
  → Loop
    → HTTP Request (دانلود فایل)
    → Google Drive (Upload)
    → MySQL (علامت‌گذاری: synced = true)

5. مدیریت پوشه‌ها

ایجاد ساختار پوشه برای پروژه جدید:

code
Webhook (پروژه جدید)
  → Google Drive (Create Folder: پروژه-{{$json.name}})
  → Google Drive (Create Folder: اسناد)
  → Google Drive (Create Folder: فاکتورها)
  → Google Drive (Create Folder: گزارش‌ها)

6. جستجوی فایل

API جستجوی فایل:

code
Webhook (جستجو)
  → Google Drive (List)
    Query: name contains '{{$json.keyword}}'
    and mimeType = 'application/pdf'
    and modifiedTime > '{{$json.fromDate}}'
  → Respond to Webhook (نتایج)

7. آرشیو ایمیل‌ها

ذخیره ایمیل‌های مهم:

code
Gmail Trigger (ایمیل جدید با label:important)
  → Code (تبدیل به HTML)
  → Google Drive (Upload)
    - Name: Email_{{$json.subject}}_{{$now.toFormat('yyyyMMdd')}}.html
    - Folder: Email-Archive

8. گزارش خودکار

تولید و ذخیره گزارش:

code
Schedule (اول هر ماه)
  → MySQL (آمار فروش)
  → Code (تولید CSV)
  → Google Drive (Upload)
    - Name: Sales_Report_{{$now.toFormat('yyyy-MM')}}.csv
    - Folder: Reports/Monthly
  → Gmail (ارسال به مدیران)

9. پاکسازی فایل‌های قدیمی

حذف بک‌آپ‌های قدیمی‌تر از 30 روز:

code
Schedule (هر هفته)
  → Google Drive (List)
    Query: '{{folderId}}' in parents
    and modifiedTime < '{{$now.minus({days: 30}).toISO()}}'
  → Loop
    → Google Drive (Delete)
  → Telegram (گزارش حذف)

10. Export Google Sheets به CSV

خروجی اسپردشیت:

code
Schedule (هر روز)
  → Google Drive (Download)
    - FileId: spreadsheet_id
    - MimeType: text/csv (Export)
  → MySQL (Import CSV data)

نکات حرفه‌ای

نکات حرفه‌ای

  1. 1پیدا کردن File/Folder ID:
code
از URL:
   File: https://drive.google.com/file/d/FILE_ID/view
   Folder: https://drive.google.com/drive/folders/FOLDER_ID
  1. 1Drive Query Syntax: فیلتر جستجو:
code
// نام فایل
   name = 'myfile.pdf'
   name contains 'report'

   // نوع فایل
   mimeType = 'application/pdf'
   mimeType = 'application/vnd.google-apps.spreadsheet'
   mimeType = 'application/vnd.google-apps.folder'

   // تاریخ
   modifiedTime > '2024-01-01T00:00:00'
   createdTime > '2024-06-01'

   // پوشه
   'FOLDER_ID' in parents

   // ترکیب
   name contains 'invoice' and mimeType = 'application/pdf'
  1. 1MIME Types رایج:
code
application/pdf                          → PDF
   image/jpeg                               → JPEG
   image/png                                → PNG
   text/csv                                 → CSV
   application/vnd.google-apps.document     → Google Docs
   application/vnd.google-apps.spreadsheet  → Google Sheets
   application/vnd.google-apps.folder       → Folder
  1. 1نام‌گذاری با تاریخ: نام فایل منحصر به فرد:
code
backup_{{$now.toFormat('yyyy-MM-dd_HHmmss')}}.sql
   report_{{$now.toFormat('yyyy-MM')}}.pdf
  1. 1ساختار پوشه منظم:
code
Backups/
     ├── Database/
     │   ├── 2024-01/
     │   └── 2024-02/
     ├── Files/
     └── Emails/
  1. 1Export Google Docs: تبدیل فرمت:
code
Google Docs → application/pdf
   Google Sheets → text/csv
   Google Slides → application/pdf
  1. 1Shared Drives: برای استفاده تیمی:
  • supportsAllDrives: true فعال کنید
  • فایل‌ها در مالکیت تیم هستند نه فرد
  1. 1آپلود با نوع خاص: تبدیل به Google Docs:
code
Upload DOCX → Google Docs (convert: true)
   Upload XLSX → Google Sheets (convert: true)
  1. 1دسترسی عمومی: لینک قابل اشتراک:
code
Type: anyone
   Role: reader
   → URL: https://drive.google.com/file/d/ID/view
  1. 1Versioning: Google Drive نسخه‌های قبلی فایل را نگه می‌دارد.
  • به‌روزرسانی محتوا: نسخه جدید ساخته می‌شود
  • بازیابی نسخه قبلی از Drive UI
  1. 1فشرده‌سازی قبل از آپلود: برای فایل‌های بزرگ از Code Node برای ZIP استفاده کنید.
  1. 1Webhook + Drive: فایل آپلود شده در فرم مستقیم به Drive:
code
Webhook (multipart/form-data)
      → Google Drive (Upload)
      → Respond (link فایل)
  1. 1OCR: Google Drive قابلیت OCR دارد:
  • هنگام آپلود، ocrLanguage: 'fa' تنظیم کنید
  • تصویر به Google Docs تبدیل می‌شود
  1. 1Error Handling: همیشه Retry on Error فعال باشد برای مشکلات شبکه.
  1. 1Monitoring: تعداد فایل‌ها و فضای استفاده شده را مانیتور کنید:
code
Schedule (هفتگی)
      → Google Drive (About API)
      → IF (فضا < 1GB) → Telegram (هشدار)

رفع مشکلات

خطاهای رایج

1. خطای "File not found" (404)

علت: ID فایل اشتباه یا دسترسی ندارید

راه‌حل

  • File ID را از URL فایل کپی کنید:

https://drive.google.com/file/d/**FILE_ID**/view

  • مطمئن شوید با همان اکانتی که Credential ساختید به فایل دسترسی دارید
  • اگر Service Account است، فایل را با ایمیل Service Account share کنید

2. خطای "Insufficient Permission" (403)

علت: دسترسی کافی نیست

راه‌حل

  • Scope مناسب استفاده کنید:
  • drive.file: فقط فایل‌های ساخته شده
  • drive: دسترسی کامل
  • Credential را حذف و دوباره بسازید
  • OAuth consent screen را بررسی کنید

3. خطای "Storage Quota Exceeded"

علت: فضای Drive تمام شده

راه‌حل

  • فضای استفاده شده را بررسی کنید
  • فایل‌های غیرضروری و Trash را خالی کنید
  • پلن Google Workspace ارتقا دهید
  • از Shared Drive استفاده کنید

4. خطای "Rate Limit Exceeded"

علت: تعداد درخواست بیش از حد مجاز

راه‌حل

  • بین درخواست‌ها Wait اضافه کنید
  • محدودیت Drive API:
  • 1000 درخواست در 100 ثانیه
  • 10 درخواست در ثانیه به ازای هر کاربر
  • از Batch درخواست‌ها استفاده کنید

5. خطای "Invalid Parent Folder"

علت: ID پوشه والد اشتباه

راه‌حل

  • Folder ID از URL:

https://drive.google.com/drive/folders/**FOLDER_ID**

  • مطمئن شوید پوشه وجود دارد
  • root برای پوشه اصلی استفاده کنید

6. فایل آپلود شده خالی است

علت: Binary Data درست منتقل نشده

راه‌حل

  • مطمئن شوید نود قبلی Binary Data تولید کرده
  • Property Name درست باشد (پیش‌فرض: data)
  • از HTTP Request با Response Format: File استفاده کنید

7. خطای "Invalid Grant" (Token منقضی)

علت: OAuth Token نامعتبر

راه‌حل

  • Credential را Reconnect کنید
  • Google Cloud Console > Credentials > بررسی
  • Consent Screen > Test Users بررسی کنید
اشتراک‌گذاری:

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