فضای ذخیره‌سازی سازگار با S3 برای EDD

توضیحات

افزونه Storage for EDD via S3-Compatible یک افزونه قدرتمند برای Easy Digital Downloads است که به شما امکان می‌دهد محصولات دیجیتال خود را با استفاده از سرویس‌های ذخیره‌سازی سازگار با S3 ذخیره و ارائه دهید. این افزونه یکپارچه‌سازی بدون مشکل با ارائه‌دهندگان مختلف ذخیره‌سازی سازگار با S3 از جمله MinIO، DigitalOcean Spaces، Linode Object Storage و بسیاری دیگر را فراهم می‌کند.

ویژگی‌های اصلی

  • پشتیبانی از فضای ذخیره‌سازی سازگار با S3: سازگار با MinIO، DigitalOcean Spaces، Linode Object Storage و سایر سرویس‌های سازگار با S3
  • ارسال فایل امن: URLهای دانلود امن و محدود به زمان را با محدودیت‌های زمانی اجباری (1-60 دقیقه) برای محصولات دیجیتال شما ایجاد می‌کند.
  • مدیریت آسان فایل: بارگذاری مستقیم فایل‌ها در فضای ذخیره‌سازی S3 از طریق بخش مدیریت وردپرس
  • یکپارچه‌سازی با کتابخانه رسانه: مرور و انتخاب فایل‌ها از فضای ذخیره‌سازی S3 خود در داخل وردپرس
  • انقضای قابل تنظیم: زمان‌های انقضا سفارشی برای لینک‌های دانلود با اعتبارسنجی خودکار تنظیم کنید.
  • پیشوند URL قابل تنظیم: توسعه‌دهندگان می‌توانند پیشوند URL را (پیش‌فرض: edd-s3cs://) با استفاده از هوک‌های وردپرس تنظیم کنند.
  • امنیت اول: با رعایت بهترین روش‌های امنیتی وردپرس ساخته شده است که شامل اجرای زمان‌بندی و اعتبارسنجی ورودی می‌باشد.
  • مناسب برای توسعه‌دهندگان: کدی تمیز و مستند با هوک‌ها و فیلترهای قابل استفاده

پیکربندی

  1. به مسیر Downloads > Settings > Extensions > S3 Storage بروید.
  2. Enter your S3 credentials:
    • کلید دسترسی
    • کلید خصوصی
    • آدرس URL نقطه پایانی (مانند https://s3.example.com)
    • نام باکت
  3. زمان انقضای لینک دانلود را تعیین کنید (بر حسب دقیقه، بین 1 تا 60 دقیقه)
  4. تنظیمات را ذخیره کنید

نحوه‌ی استفاده

بارگذاری فایل‌ها

  1. هنگام ایجاد یا ویرایش یک دانلود در Easy Digital Downloads
  2. روی «بارگذاری فایل» یا «انتخاب فایل» کلیک کنید.
  3. تب «آپلود در S3» را انتخاب کنید.
  4. فایل خود را انتخاب کرده و مستقیماً در فضای ذخیره‌سازی S3 بارگذاری کنید.
  5. آدرس فایل به‌طور خودکار با پیشوند S3 تنظیم خواهد شد.

مدیریت فایل

  • از تب «کتابخانه S3» برای مرور فایل‌های موجود در فضای ذخیره‌سازی S3 خود استفاده کنید.
  • فایل‌ها بر اساس ساختار مسیر در باکت S3 شما سازمان‌دهی شده‌اند.
  • برای استفاده از یک فایل موجود برای دانلود خود، روی «انتخاب» کلیک کنید.

پشتیبانی

برای دریافت پشتیبانی و گزارش باگ‌ها، لطفاً از انجمن پشتیبانی افزونه در WordPress.org استفاده کنید.

اگر این افزونه را مفید می‌دانید، لطفاً نوشتن یک نقد و بررسی در WordPress.org را در نظر داشته باشید.

قوانین حریم خصوصی

این افزونه هیچ‌گونه داده شخصی را جمع‌آوری یا ذخیره نمی‌کند. تمامی ذخیره‌سازی و ارسال فایل‌ها از طریق سرویس ذخیره‌سازی سازگار با S3 که شما تنظیم کرده‌اید، انجام می‌شود.

عکس‌های صفحه

  • رابط کاربری پنل مدیریت
  • بخش انتخاب فایل از فضای ذخیره‌سازی S3
  • رابط بارگذاری فایل در فضای ذخیره‌سازی S3

نصب

  1. فایل‌های افزونه را در مسیر `/wp-content/plugins/storage-for-edd-via-s3-compatible` آپلود کنید، یا افزونه را مستقیماً از طریق صفحه افزونه‌های وردپرس نصب نمایید.
  2. اطمینان حاصل کنید که افزونه Easy Digital Downloads نصب و فعال شده است.
  3. اگر افزونه را از سورس نصب می‌کنید، در پوشه افزونه دستور `composer install` را اجرا کنید (این مرحله برای نسخه‌های منتشر شده لازم نیست).
  4. افزونه را از طریق صفحه «افزونه‌ها» در وردپرس فعال کنید.
  5. به مسیر Downloads > Settings > Extensions > S3 Storage بروید تا افزونه را پیکربندی کنید.

سوالات متداول

کدام سرویس‌های سازگار با S3 پشتیبانی می‌شوند؟

این افزونه با هر سرویس ذخیره‌سازی سازگار با S3 کار می‌کند، از جمله:

* Amazon S3
* DigitalOcean Spaces
* Linode Object Storage
* Wasabi
* Backblaze B2 (با API سازگار با S3)
* Cloudflare R2
* MinIO
* Storj
* ArvanCloud
* Hetzner Object Storage
* و بسیاری دیگر

لینک‌های دانلود چقدر امن هستند؟

افزونه لینک‌های پیش‌امضا شده (presigned URLs) ایجاد می‌کند که زمان انقضای آن‌ها قابل تنظیم است (پیش‌فرض ۳ دقیقه). این لینک‌ها موقت بوده و پس از انقضا نمی‌توان آن‌ها را به اشتراک گذاشت یا مجدداً استفاده کرد، که امنیت محصولات دیجیتال شما را تضمین می‌کند.

برای افزایش امنیت، این پلاگین محدودیت‌های زمانی را اعمال می‌کند:
* حداقل زمان انقضا: 1 دقیقه (اطمینان از عملکرد لینک‌ها برای دانلودهای معتبر)
* حداکثر زمان انقضا: 60 دقیقه (جلوگیری از دسترسی غیرمجاز به مدت طولانی)
* حتی اگر سعی کنید مقادیر خارج از این محدوده تنظیم کنید، پلاگین به‌طور خودکار آن‌ها را برای ماندن در محدوده‌های ایمن تنظیم می‌کند.

این مانع از سناریوهای سوءاستفاده مانند می‌شود:

* لینک‌هایی که خیلی سریع منقضی می‌شوند (0 دقیقه)

* لینک‌هایی که برای روزها یا هفته‌ها معتبر باقی می‌مانند

* دسترسی غیرمجاز بلندمدت به محصولات دیجیتال شما

چه نوع فایل‌هایی برای بارگذاری پشتیبانی می‌شوند؟

افزونه از انواع فایل‌های ایمن پشتیبانی می‌کند، شامل:

* آرشیوها: ‎ZIP، RAR، ‎7Z، ‎TAR، ‎GZ
* اسناد: ‎PDF، DOC، ‎DOCX، ‎TXT، ‎RTF، ‎XLS، ‎XLSX، ‎CSV، ‎PPT، ‎PPTX
* تصاویر: ‎JPG، ‎JPEG، ‎PNG، ‎GIF، ‎WEBP، ‎SVG
* صوتی: ‎MP3، ‎WAV، ‎OGG، ‎FLAC، ‎M4A
* ویدئو: ‎MP4، ‎AVI، ‎MOV، ‎WMV، ‎FLV، ‎WEBM
* کتاب‌های الکترونیکی: ‎EPUB، ‎MOBI، ‎AZW، ‎AZW3
* فایل‌های وب: ‎CSS، ‎JS، ‎JSON، ‎XML

انواع فایل‌های خطرناک (مانند فایل‌های اجرایی و اسکریپت‌ها) به‌طور خودکار برای حفظ امنیت مسدود می‌شوند.

چگونه این پلاگین فایل‌های بارگذاری‌شده را تأیید می‌کند؟

این افزونه چندین لایه اعتبارسنجی امنیتی را پیاده‌سازی می‌کند:

  • اعتبارسنجی پسوند: بررسی پسوند فایل‌ها در برابر فهرست مجاز انواع پسوندها
  • اعتبارسنجی نوع MIME: نوع محتوای واقعی فایل را اعتبارسنجی می‌کند (نه فقط پسوند آن) تا از تقلب در نوع فایل جلوگیری کند.
  • تطبیق نوع محتوا: اطمینان حاصل می‌کند که پسوند فایل با نوع MIME واقعی مطابقت دارد تا فایل‌های مخرب با پسوندهای جعلی شناسایی شوند.
  • اعتبارسنجی اندازه: محدودیت‌های اندازه بارگذاری در وردپرس را اعمال می‌کند
  • بررسی نانس: از حملات CSRF محافظت می‌کند

این رویکرد چندلایه از بارگذاری فایل‌های مخرب که با پسوندهای امن پنهان شده‌اند (مانند فایل PHP که به .jpg تغییر نام داده شده) توسط مهاجمان جلوگیری می‌کند.

آیا می‌توانم فایل‌های موجود در فضای ذخیره‌سازی S3 خود را مرور کنم؟

بله، افزونه دارای قابلیت کتابخانه S3 است که به شما امکان می‌دهد فایل‌های موجود در باکت S3 خود را مستقیماً در رابط مدیریت وردپرس مرور و انتخاب کنید.

آیا می‌توانم پیشوند URL را برای فایل‌های S3 سفارشی‌سازی کنم؟

بله، توسعه‌دهندگان می‌توانند پیشوند URL را با استفاده از فیلتر s3cs_edd_url_prefix سفارشی‌سازی کنند. این کد را به فایل functions.php تم خود اضافه کنید:

function customize_s3_url_prefix($prefix) {
    return 'edd-customprefix://'; // Change to your preferred prefix
}
add_filter('s3cs_edd_url_prefix', 'customize_s3_url_prefix');

آیا می‌توانم نوع‌های فایل مجاز (MIME types) را سفارشی‌سازی کنم؟

بله، توسعه‌دهندگان می‌توانند انواع MIME مجاز را با استفاده از فیلتر s3cs_edd_allowed_mime_types سفارشی‌سازی کنند. این کد را به فایل functions.php تم خود اضافه کنید:

function customize_allowed_mime_types($mime_types) {
    // Add custom MIME types
    $mime_types[] = 'application/x-rar'; // Add RAR support
    $mime_types[] = 'video/x-matroska'; // Add MKV video support

    // Or remove specific MIME types
    $mime_types = array_diff($mime_types, array('video/x-flv')); // Remove FLV

    return $mime_types;
}
add_filter('s3cs_edd_allowed_mime_types', 'customize_allowed_mime_types');

نقد و بررسی‌ها

10 سپتامبر 2025
Worked perfectly, connected to my S3 storage without issues and solved my EDD file hosting needs. Exactly what I needed!
خواندن تمامی 2 نقد و بررسی‌

توسعه دهندگان و همکاران

“فضای ذخیره‌سازی سازگار با S3 برای EDD” نرم افزار متن باز است. افراد زیر در این افزونه مشارکت کرده‌اند.

مشارکت کنندگان

“فضای ذخیره‌سازی سازگار با S3 برای EDD” به 2 زبان ترجمه شده است. با تشکر از مترجمین برای همکاری و کمک‌هایشان.

ترجمه “فضای ذخیره‌سازی سازگار با S3 برای EDD” به زبان شما.

علاقه‌ مند به توسعه هستید؟

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

گزارش تغییرات

1.1.1

  • Improved: File display in S3 Library now shows filename prominently with path as a subtle subtitle for better readability.
  • Improved: Enhanced visual hierarchy in file listings with larger, bolder filenames and cleaner path display.
  • Improved: Better responsive design for file display on mobile and tablet devices.
  • Improved: Simplified file path styling with better contrast and spacing for improved user experience.
  • Security: Enforced timeout limits for presigned URLs (minimum 1 minute, maximum 60 minutes) to prevent abuse and ensure reasonable download link expiration.
  • Security: Enhanced endpoint URL validation with SSRF protection, blocking private IP addresses, localhost, and internal networks to prevent server-side request forgery attacks.
  • Security: Added comprehensive Content-Type (MIME type) validation to prevent file type spoofing attacks where malicious files are disguised with safe extensions.
  • Security: Implemented multi-layered file validation including extension matching, MIME type verification, and content-type header validation for S3 uploads.
  • Security: Added filter hook (s3cs_edd_allowed_mime_types) to allow developers to customize allowed MIME types while maintaining security.

1.1.0

  • Added: URL prefix customization hook (s3cs_edd_url_prefix filter) for improved developer flexibility.
  • Added: Search functionality for S3 Library with real-time file filtering.
  • Added: Clear search button and keyboard shortcuts (Ctrl+F/Cmd+F) for enhanced user experience.
  • Improved: S3 Library interface with modern search container styling.

1.0.9

  • Security: Added capability-based access control for S3 media library and upload functionality
  • Security: Removed debug console.log statements to prevent file path exposure
  • Security: Removed admin_post_nopriv_s3cs_upload action hook to restrict upload access to logged-in users only
  • Security: Removed SVG from allowed file extensions to prevent XSS attacks via malicious SVG files
  • Security: Replaced raw S3 error message display with generic user-friendly messages while logging detailed errors for debugging
  • Security: Reduced XML parser logging to prevent sensitive server response data exposure in logs
  • Security: Removed “No Auth” fallback from authentication methods to prevent unauthenticated requests
  • Security: Deleted unused makeRequestWithoutAuth method to enhance security posture

1.0.8

  • Added: File type validation with enhanced security against dangerous file uploads
  • Added: Translators comments for all internationalization strings with placeholders
  • Improved: Better internationalization support for translators
  • Improved: Debug logging now uses WordPress standards with proper sanitization
  • Fixed: All output from internationalization functions properly escaped to prevent XSS vulnerabilities
  • Fixed: Proper nonce verification for all form data processing to prevent CSRF attacks
  • Fixed: Removed production-unsafe debug code and replaced with WordPress-compatible logging
  • Changed: Default download link expiry reduced to 3 minutes for better security

1.0.7

  • Automatically prepended https:// to Endpoint URL to prevent XML parsing errors.
  • Improved Endpoint URL validation and user guidance.
  • XML parsing errors in S3 client and media library functions.

1.0.6

  • Centralized version management using S3CS_EDD_VERSION constant
  • Updated Persian translation files

1.0.5

  • Removed: Dark mode support to simplify styling and improve consistency across all themes.

1.0.4

  • Fixed: Responsive S3 file selection now displays file name, size, date, and select button on mobile.

1.0.3

  • Fixed WP_Scripts::localize error by using wp_add_inline_script() for non-array values.
  • Separated all inline JavaScript into dedicated .js files for better maintainability and performance.
  • Separated inline CSS into dedicated .css files.

1.0.2

  • Enhanced S3 upload section styling for a modern look and improved user experience.
  • Improved responsive design for better display on various screen sizes.
  • Refined the display of the current directory/bucket name in the S3 upload section.

1.0.1

  • Added a non-dismissible admin notice to alert users when S3 Access Key or Secret Key are not configured, with a direct link to settings.
  • Added Persian language support.
  • Implemented direct file download functionality, preventing files like JSON or text from opening in the browser and forcing download.

1.0.0

  • Initial release
  • S3-compatible storage integration
  • Secure presigned URL generation
  • Media library integration
  • File upload functionality
  • Admin settings interface
  • Security enhancements and validation
  • Internationalization support