توضیحات
افزونه 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://) با استفاده از هوکهای وردپرس تنظیم کنند.
- امنیت اول: با رعایت بهترین روشهای امنیتی وردپرس ساخته شده است که شامل اجرای زمانبندی و اعتبارسنجی ورودی میباشد.
- مناسب برای توسعهدهندگان: کدی تمیز و مستند با هوکها و فیلترهای قابل استفاده
پیکربندی
- به مسیر Downloads > Settings > Extensions > S3 Storage بروید.
- اطلاعات S3 خود را وارد کنید:
- کلید دسترسی
- کلید خصوصی
- آدرس URL نقطه پایانی (مانند https://s3.example.com)
- نام باکت
- زمان انقضای لینک دانلود را تعیین کنید (بر حسب دقیقه، بین 1 تا 60 دقیقه)
- تنظیمات را ذخیره کنید
نحوهی استفاده
مرور و انتخاب فایلها
- هنگام ایجاد یا ویرایش یک دانلود در Easy Digital Downloads
- روی دکمه “انتخاب از S3” که در کنار فیلد فایل URL قرار دارد، کلیک کنید.
- ذخیرهسازی S3 خود را با استفاده از ناوبری پوشهها مرور کنید.
- از نوار مسیریاب (breadcrumb) برای رفتن سریع به پوشههای والد استفاده کنید.
- از کادر جستوجوی سربرگ برای فیلتر کردن فایلها بر اساس نام استفاده کنید.
- برای استفاده از یک فایل موجود برای دانلود خود، روی «انتخاب» کلیک کنید.
آپلود فایلهای جدید
- در مرور S3، روی دکمه “آپلود” در ردیف هدر کلیک کنید.
- فرم آپلود در بالای فهرست فایلها نمایش داده میشود.
- فایل خود را انتخاب کنید و روی «آپلود» کلیک کنید.
- پس از آپلود موفق، نشانی فایل (URL) بهصورت خودکار با پیشوند S3 تنظیم میشود.
- دوباره روی دکمه کلیک کنید تا فرم آپلود مخفی شود.
سرویسهای خارجی
این افزونه به سرویس ذخیرهسازی سازگار با S3 که پیکربندی کردهاید متصل میشود تا فایلها را مدیریت کند، لینکهای دانلود ایجاد کند و انتقال فایلها را انجام دهد.
این سیستم امضاهای احراز هویت لازم و درخواستهای مربوط به فایل را به سرورهای ارائهدهندهٔ S3 شما ارسال میکند. این فرایند زمانی انجام میشود که شما فایلهای S3 خود را در داشبورد مرور میکنید، فایل جدیدی آپلود میکنید، یا زمانی که یک مشتری فایلی را دانلود میکند.
- سرویس: ارائهدهندهٔ سازگار با S3 شما (مانند AWS S3، DigitalOcean Spaces و غیره).
- موارد استفاده: مرور فایلها، آپلود فایلها و ایجاد لینکهای دانلود امن.
- دادههای ارسالی: هدرهای احراز هویت (Signature V4)، متادیتای فایل، محتوای فایل (در هنگام آپلود).
- نشانیها (URLs): توسط کاربر در تنظیمات افزونه پیکربندی میشوند (نشانی Endpoint).
- حقوقی: به شرایط استفاده از خدمات و سیاست حفظ حریم خصوصی ارائهدهندهٔ سازگار با S3 خود مراجعه کنید.
پشتیبانی
برای دریافت پشتیبانی و گزارش باگها، لطفا از انجمن پشتیبانی افزونه در WordPress.org استفاده کنید.
اگر این افزونه را مفید میدانید، لطفا نوشتن یک نقد و بررسی در WordPress.org را در نظر داشته باشید.
سایر ارائه دهندگان ذخیره سازی
به دنبال یک ارائه دهنده فضای ذخیره سازی متفاوت هستید؟ افزونه های دیگر ما را بررسی کنید:
- فضای ذخیرهسازی Box برای EDD – از Box برای ذخیرهسازی محصولات دیجیتال خود استفاده کنید.
- فضای ذخیرهسازی Dropbox برای EDD – از Dropbox برای ذخیرهسازی محصولات دیجیتال خود استفاده کنید.
- فضای ذخیرهسازی OneDrive برای EDD – از OneDrive برای ذخیرهسازی محصولات دیجیتال خود استفاده کنید.
قوانین حریم خصوصی
این افزونه هیچگونه داده شخصی را جمعآوری یا ذخیره نمیکند. تمامی ذخیرهسازی و ارسال فایلها از طریق سرویس ذخیرهسازی سازگار با S3 که شما تنظیم کردهاید، انجام میشود.
عکسهای صفحه
نصب
- فایلهای افزونه را در مسیر `
/wp-content/plugins/storage-for-edd-via-s3-compatible` آپلود کنید، یا افزونه را مستقیماً از طریق صفحه افزونههای وردپرس نصب نمایید. - اطمینان حاصل کنید که افزونه Easy Digital Downloads نصب و فعال شده است.
- اگر افزونه را از سورس نصب میکنید، در پوشه افزونه دستور `
composer install` را اجرا کنید (این مرحله برای نسخههای منتشر شده لازم نیست). - افزونه را از طریق صفحه «افزونهها» در وردپرس فعال کنید.
- به مسیر 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-myprefix://'; // 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');
نقد و بررسیها
توسعه دهندگان و همکاران
“فضای ذخیرهسازی سازگار با S3 برای EDD” نرم افزار متن باز است. افراد زیر در این افزونه مشارکت کردهاند.
مشارکت کنندگان“فضای ذخیرهسازی سازگار با S3 برای EDD” به 2 زبان ترجمه شده است. با تشکر از مترجمین برای همکاری و کمکهایشان.
ترجمه “فضای ذخیرهسازی سازگار با S3 برای EDD” به زبان شما.
علاقه مند به توسعه هستید؟
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
گزارش تغییرات
1.2.0
- Major Refactor: Replaced legacy iframe browser with modern AJAX implementation for improved performance.
- Fixed: Critical issue where S3 uploads were considered successful despite 4xx/5xx HTTP errors.
- Fixed: Signature mismatch in download presigned URLs for files with special characters or spaces.
- Added: Strict pre-upload file validation (hash, size, and stream) for enhanced reliability.
- Security: Sanitized
response-content-dispositionheader in download links to prevent header injection.
1.1.10
- Improved: UI styles and enhanced layout consistency for better harmony.
- Improved: Comprehensive code improvements and stability optimizations.
- Added: Skeleton loader with shimmer animation for better UX while loading S3 browser modal.
1.1.9
- Updated: Guzzle HTTP library to version 7.10.0 for PHP 8.5 compatibility.
1.1.8
- Use wp_enqueue commands: Replaced inline and in includes/class-media-library.php (admin media library)
1.1.7
- Added: New “Browse” button next to file inputs for easier file selection.
- Improved: Modernized file browser UI with a dedicated modal window.
- Improved: File browser is now context-aware, opening directly to the selected file’s folder.
- Improved: Browse button is automatically hidden if the plugin is not configured.
- Improved: Removed legacy “S3 Library” tab from the standard WordPress media uploader for a cleaner interface.
1.1.6
- Added: Native search input type with clear (“X”) icon support for a cleaner UI.
- Improved: Mobile breadcrumb navigation with path wrapping for long directory names.
- Improved: Reduced separator spacing in breadcrumbs on mobile devices.
- Improved: Standardized header row spacing and title font sizes for UI consistency.
- Improved: Enhanced notice detail styling for better error/success message readability.
- Security: Standardized use of wp_json_encode() for client-side data.
- Cleaned: Removed unused “Owner” metadata logic and legacy CSS rules.
1.1.5
- Improved: Media library table styling for more consistent file and folder display.
- Improved: Redesigned folder rows with better icons and refined hover effects.
- Improved: Enhanced mobile responsiveness for the file browser table.
- Fixed: Corrected file name and path display order in the media library.
1.1.4
- Added: Breadcrumb navigation in file browser – click any folder in the path to navigate directly.
- Improved: Integrated search functionality directly into the breadcrumb navigation bar for a cleaner UI.
- Improved: Better navigation experience without needing the Back button.
- Improved: Enhanced styling for search inputs and buttons, including compact padding.
- Fixed: RTL layout issues for breadcrumbs and navigation buttons.
- Cleaned: Removed legacy CSS and unused search container elements.
1.1.3
- Changed: Merged Upload tab into Library tab for a unified experience.
- Improved: Upload form toggles with a button in the header row.
- Improved: Back button moved to header row with new styling (orange for Upload, blue for Back).
- Improved: Success notice no longer persists after navigating back in the media library.
- Fixed: Critical issue with S3 uploads to folders with spaces in their names (AWS Signature V4 mismatch).
- Improved: Better RTL support for styling and layout.
1.1.2
- Fixed: Removed non-prefixed global variable to comply with WordPress coding standards.
- Improved: Optimized admin settings to only fetch bucket list when viewing the S3 settings section, preventing unnecessary API calls on other EDD settings pages.
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_prefixfilter) 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
makeRequestWithoutAuthmethod 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
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::localizeerror by usingwp_add_inline_script()for non-array values. - Separated all inline JavaScript into dedicated
.jsfiles for better maintainability and performance. - Separated inline CSS into dedicated
.cssfiles.
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




