فشردهسازی
Compression
فشردهسازی و استخراج: ZIP، GZIP و مدیریت آرشیو
نمای کلی
نود Compression چیست؟
نود Compression دو عملیات اصلی دارد:
- 1Compress: فشردهسازی فایلها به ZIP یا GZIP
- 2Decompress: استخراج فایلها از آرشیو ZIP یا GZIP
فرمتهای پشتیبانیشده:
- ZIP: آرشیو چندین فایل در یک فایل فشرده
- GZIP: فشردهسازی تکفایلی (معمولاً با tar)
چرا فشردهسازی لازم است؟
- کاهش حجم: صرفهجویی در فضا و پهنای باند
- بستهبندی: ارسال چندین فایل در یک فایل
- سازگاری: بسیاری از APIها فایل ZIP قبول میکنند
- Email: ارسال فایلهای حجیم به عنوان ضمیمه
- Backup: فشردهسازی پشتیبانها
- API Response: برخی APIها پاسخ GZIP ارسال میکنند
Binary Data در n8n:
فایلها در n8n به صورت Binary data مدیریت میشوند. نود Compression ورودی و خروجی Binary دارد.
احراز هویت
بدون نیاز به احراز هویت - نود Compression یک نود داخلی n8n است.
عملیاتهای موجود
فشردهسازی ZIP
فشردهسازی یک یا چند فایل در آرشیو ZIP. میتوانید نام فایل خروجی و سطح فشردهسازی را تعیین کنید.
استخراج ZIP
استخراج فایلها از آرشیو ZIP. هر فایل به عنوان یک آیتم جداگانه خروجی داده میشود.
فشردهسازی GZIP
فشردهسازی داده با GZIP. مناسب برای فشردهسازی تکفایلی و API responses.
استخراج GZIP
باز کردن فایلهای GZIP. خروجی: فایل اصلی بدون فشردهسازی.
لیست محتویات ZIP
نمایش لیست فایلهای داخل آرشیو ZIP بدون استخراج.
افزودن فایل به ZIP
اضافه کردن فایلهای جدید به آرشیو ZIP موجود.
کاربردهای متداول
موارد استفاده رایج
۱. بستهبندی گزارشها
تولید چندین فایل CSV/PDF > Compress ZIP > ارسال ایمیل با ضمیمه ZIP.
۲. پشتیبانگیری خودکار
دریافت فایلها از S3 > Compress ZIP > آپلود به Google Drive > حذف فایلهای قدیمی.
۳. پردازش آپلود ZIP
دریافت ZIP از کاربر > Decompress > پردازش هر فایل > ذخیره در دیتابیس.
۴. ارسال چندین تصویر
دریافت تصاویر از API > Compress ZIP > ارسال در Slack/Email.
۵. Export داده
دریافت داده از دیتابیس > ساخت CSV > Compress GZIP > آپلود به FTP.
۶. پردازش لاگها
دریافت لاگهای GZIP از سرور > Decompress > Parse > تحلیل > ذخیره.
۷. Migration فایلها
دانلود فایلها از سرور قدیمی > Compress ZIP > آپلود به سرور جدید > Decompress.
۸. ساخت Package
جمعآوری فایلهای پروژه > Compress ZIP > نسخهگذاری > آپلود به Storage.
۹. پردازش ایمیل با ضمیمه ZIP
دریافت ایمیل > استخراج ضمیمه ZIP > Decompress > پردازش فایلها.
۱۰. فشردهسازی API Response
دریافت پاسخ GZIP از API > Decompress > Parse JSON > پردازش.
نکات حرفهای
نکات و ترفندها
انتخاب فرمت فشردهسازی
- ZIP: چندین فایل، سازگاری بالا، پشتیبانی همه OS
- GZIP: تک فایل، فشردهسازی بهتر، استاندارد Linux/Web
سطح فشردهسازی
- 0: بدون فشردهسازی (سریع)
- 1-3: فشردهسازی سریع
- 4-6: تعادل سرعت و حجم
- 7-9: حداکثر فشردهسازی (کند)
- پیشفرض (6): مناسب اکثر موارد
Binary Data در n8n
- هر آیتم میتواند چندین Binary property داشته باشد
- نام پیشفرض: data
- از Move Binary Data برای تبدیل JSON ↔ Binary
- Read Binary File و Write Binary File برای فایل سیستم
ترکیب با ایمیل
- 1فایلها را Compress ZIP کنید
- 2Binary property را به SMTP نود وصل کنید
- 3نام ضمیمه و MIME type تنظیم کنید
- 4ارسال ایمیل با ضمیمه ZIP
ترکیب با Cloud Storage
- S3: آپلود/دانلود + Compress/Decompress
- Google Drive: ذخیره آرشیو
- Dropbox: همگامسازی فایلهای فشرده
- FTP: انتقال فایلهای فشرده
Batch Processing
فشردهسازی دستهای با Loop:
- 1Loop: دریافت فایلها batch batch
- 2Compress هر batch
- 3آپلود هر آرشیو
- 4لاگ نتیجه
مقایسه حجم
- متن: فشردهسازی 60-80%
- تصویر PNG: 10-30%
- تصویر JPG: 5-10% (از قبل فشرده)
- فایلهای Office: 10-20% (از قبل فشرده)
- CSV/JSON: 70-90%
- Binary data: 20-50%
ادغام با سایر نودها
- HTTP Request: دریافت/ارسال فایل فشرده
- Read/Write File: خواندن/نوشتن آرشیو
- S3/Google Drive: ذخیرهسازی
- SMTP: ارسال ایمیل با ضمیمه
- Code: پردازش پیچیده فایل
- Move Binary Data: تبدیل فرمت
رفع مشکلات
عیبیابی
۱. ZIP فایل خراب است
مشکل: "Invalid ZIP file" یا "Corrupted archive" راهحل: بررسی کنید فایل واقعاً ZIP باشد (نه فقط پسوند). دانلود مجدد. بررسی Transfer encoding.
۲. فایلها بعد از Decompress خالیاند
مشکل: فایلهای استخراجشده 0 بایت راهحل: Binary property name صحیح باشد. بررسی کنید ZIP خالی نباشد. فرمت (ZIP vs GZIP) صحیح باشد.
۳. خطای حافظه با فایل بزرگ
مشکل: Out of Memory هنگام فشردهسازی فایل بزرگ راهحل: فایلهای بزرگ (>100MB) را chunk chunk پردازش کنید. حافظه n8n را افزایش دهید. از Streaming استفاده کنید.
۴. نام فایل فارسی خراب
مشکل: نام فایلهای فارسی بعد از Decompress خراب راهحل: ZIP encoding بررسی شود. از UTF-8 مطمئن شوید. برخی ابزارهای ساخت ZIP از CP437 استفاده میکنند.
۵. GZIP vs ZIP اشتباه
مشکل: فرمت اشتباه انتخاب شده راهحل: GZIP فقط تکفایل فشرده میکند. ZIP چندین فایل دارد. فرمت ورودی را بررسی کنید.
۶. Password Protected ZIP
مشکل: ZIP رمزدار باز نمیشود راهحل: n8n به صورت پیشفرض از ZIP رمزدار پشتیبانی نمیکند. از Code نود با کتابخانه مناسب استفاده کنید.
۷. Binary Property پیدا نمیشود
مشکل: "No binary data found" خطا راهحل: نام Binary property را بررسی کنید (پیشفرض: data). مطمئن شوید نود قبلی Binary خروجی دارد.
