אחסון S3 מרכזי למדיה של Bitrix

הגדרת אחסון מדיה S3 מרכזי עבור 1C-Bitrix ## כשיש לך מספר שרתים בקלאסטר של Bitrix או סביבות שונות (prod, staging, dev), קבצי המדיה מתיקיית `/upload/` נשמרים מקומית על כל צומת? בעיה טיפוסית: העלה תמונת מוצר על מכונה אחת — היא זמינה רק ב
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
אחסון S3 מרכזי למדיה של Bitrix
פשוט
~1 יום

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1458
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    פיתוח אתר לחברת FIXPER
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    761
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    880
  • image_crm_dolbimby_434_0.webp
    פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    804
  • image_crm_technotorgcomplex_453_0.webp
    פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    1162

הגדרת אחסון מדיה S3 מרכזי עבור 1C-Bitrix

כשיש לך מספר שרתים בקלאסטר Bitrix או סביבות שונות (prod, staging, dev), קבצי מדיה מ-/upload/ נשמרים מקומית על כל צומת?

בעיה טיפוסית: העלאת תמונת מוצר על מכונה אחת — היא זמינה רק שם; על אחרות — 404. אנו רואים זאת בכל פרויקט עם סקיילינג אופקי. בעבר, רבים השתמשו ב-NFS לשיתוף קבצים, אך זה יוצר נקודת כשל יחידה: אם שרת ה-NFS נופל, כל האתר מאבד תמונות. הפתרון המודרני הוא אחסון מרכזי המבוסס על אחסון אובייקטים תואם S3. יישמנו גישה זו בעשרות פרויקטים, והיא מציעה סובלנות לתקלות (עד 99.99%), סקיילינג קל, ועצמאות מתצורת חומרה. יתרה מכך, החיסכון באחסון מגיע ל-60% — עבור אתר עם 500 GB של מדיה, מדובר בכ-$450–650 לחודש.

בעיות שאנו פותרים

  • נקודת כשל יחידה עם NFS — אם השיתוף ברשת נופל, כל האתר מאבד מדיה.
  • אי-התאמות קבצים בין צמתים: בעת העלאה דרך פאנל הניהול, הקובץ נשמר על צומת ספציפי, לא על פני הקלאסטר.
  • מורכבות גיבוי: יש צורך להעתיק קבצים מכל צומת במקום ממיקום יחיד.
  • טעינה איטית על שרתים מרוחקים: בארכיטקטורות מבוזרות גיאוגרפית, זמן האחזור גדל.

אחסון S3 פותר בעיות אלה: נתונים נשמרים מרכזית, נגישים מכל מקום, משוכפלים בקלות, עם מנגנוני גיבוי והגנה מובנים.

למה לבחור באחסון S3 עבור Bitrix?

אחסוני אובייקטים (S3) הם סטנדרט לפרויקטי ווב מודרניים. הם מציעים סובלנות גבוהה לתקלות (עד 99.99%), סקיילינג קל ללא ניהול ידני, ו-CDN מובנה להעברת תוכן מהירה למשתמשים. עבור Bitrix, האינטגרציה שקופה: קבצים מועלים דרך API, ובצד הלקוח הם מוגשים דרך פרוקסי או קישורים ישירים. בהשוואה ל-NFS, S3 מפחית זמן אחזור ב-40% ואינו דורש שרת יחיד. אחסון S3 אמין פי שניים מ-NFS (99.99% לעומת 99.9%).

ספק סוג אירוח עמידה ב-152-FZ מודל תשלום
Yandex Object Storage ענן S3 כן תשלום לפי שימוש
AWS S3 ענן S3 לא (נתונים בחו"ל) תשלום לפי שימוש
MinIO S3 באירוח עצמי כן (שרת עצמי) חינם (משאבים עצמיים)
Selectel Object Storage ענן S3 כן לפי נפח

כל האפשרויות עובדות דרך API S3 אחיד, כך שקוד האינטגרציה הוא סטנדרטי.

מודול אחסון הענן של Bitrix

ל-Bitrix יש מודול מובנה bitrix.cloud לאחסון ענן. הגדרה דרך פאנל הניהול: Настройки → Облачное хранилище. מחוץ לקופסה, הוא תומך ב-Amazon S3 וב-Azure Blob Storage. עבור Yandex Object Storage, נדרש endpoint מותאם אישית. מגבלה: לא כל סוגי הקבצים מועברים כראוי (לדוגמה, מטמון שונה גודל). אנו ממליצים לבדוק על עותק staging. תיעוד רשמי של Bitrix על אחסון ענן

אינטגרציה ישירה דרך AWS SDK

גישה גמישה יותר היא אינטגרציה דרך AWS SDK. התקן את החבילה:

composer require aws/aws-sdk-php 

ויישם מחלקה לעבודה עם S3:

// /local/lib/Storage/S3Storage.php namespace Local\Storage; use Aws\S3\S3Client; class S3Storage { private static ?S3Client $client = null; public static function getClient(): S3Client { if (!self::$client) { $config = \Bitrix\Main\Config\Configuration::getValue('s3_storage'); self::$client = new S3Client([ 'version' => 'latest', 'region' => $config['region'], 'endpoint' => $config['endpoint'], // для Yandex: storage.yandexcloud.net 'use_path_style_endpoint' => true, 'credentials' => [ 'key' => $config['access_key'], 'secret' => $config['secret_key'], ], ]); } return self::$client; } public static function upload(string $localPath, string $s3Key): string { $bucket = \Bitrix\Main\Config\Configuration::getValue('s3_storage')['bucket']; self::getClient()->putObject([ 'Bucket' => $bucket, 'Key' => $s3Key, 'SourceFile' => $localPath, 'ACL' => 'public-read', 'ContentType' => mime_content_type($localPath), ]); return 'https://' . $bucket . '.storage.yandexcloud.net/' . $s3Key; } } 

הגדרה ב-composer require aws/aws-sdk-php :

's3_storage' => [ 'value' => [ 'access_key' => 'YCAJExxxx', 'secret_key' => 'YCPxxx', 'bucket' => 'my-shop-media', 'region' => 'ru-central1', 'endpoint' => 'https://storage.yandexcloud.net', ], ], 

כדי להעלות קבצים אוטומטית ל-S3, חבר handler לאירוע // /local/lib/Storage/S3Storage.php namespace Local\Storage; use Aws\S3\S3Client; class S3Storage { private static ?S3Client $client = null; public static function getClient(): S3Client { if (!self::$client) { $config = \Bitrix\Main\Config\Configuration::getValue('s3_storage'); self::$client = new S3Client([ 'version' => 'latest', 'region' => $config['region'], 'endpoint' => $config['endpoint'], // для Yandex: storage.yandexcloud.net 'use_path_style_endpoint' => true, 'credentials' => [ 'key' => $config['access_key'], 'secret' => $config['secret_key'], ], ]); } return self::$client; } public static function upload(string $localPath, string $s3Key): string { $bucket = \Bitrix\Main\Config\Configuration::getValue('s3_storage')['bucket']; self::getClient()->putObject([ 'Bucket' => $bucket, 'Key' => $s3Key, 'SourceFile' => $localPath, 'ACL' => 'public-read', 'ContentType' => mime_content_type($localPath), ]); return 'https://' . $bucket . '.storage.yandexcloud.net/' . $s3Key; } } שקורא ל-/bitrix/.settings.php. לאחר ההגדרה, כל הקבצים החדשים נכנסים מיד לענן.

איך להגדיר הגשת קבצים דרך nginx?

כדי להגיש קבצים, הגדר את nginx כפרוקסי 's3_storage' => [ 'value' => [ 'access_key' => 'YCAJExxxx', 'secret_key' => 'YCPxxx', 'bucket' => 'my-shop-media', 'region' => 'ru-central1', 'endpoint' => 'https://storage.yandexcloud.net', ], ], ל-S3 עם מטמון:

location /upload/ { proxy_pass https://my-shop-media.storage.yandexcloud.net/upload/; proxy_cache_valid 200 7d; add_header Cache-Control "public, max-age=604800"; } 

זה מאפשר שימוש במטמון nginx מקומי כדי להאיץ טעינה.

איך לבצע אינטגרציית S3 ב-5 שלבים

  1. בחר ספק S3 (Yandex Object Storage, AWS S3, או MinIO).
  2. הגדר חשבון וקבל מפתחות גישה.
  3. התקן את מודול OnAfterFileSave או בצע אינטגרציה ישירה דרך AWS SDK.
  4. הגדר העלאה אוטומטית של קבצים דרך אירוע S3Storage::upload().
  5. העבר קבצים קיימים באמצעות AWS CLI עם הפקודה /upload/.

העברת קבצים קיימים

העברת ה-location /upload/ { proxy_pass https://my-shop-media.storage.yandexcloud.net/upload/; proxy_cache_valid 200 7d; add_header Cache-Control "public, max-age=604800"; } הנוכחי ל-S3 היא פעולה נפרדת. השתמש ב-AWS CLI:

aws s3 sync /var/www/bitrix/upload/ s3://my-shop-media/upload/ \ --endpoint-url https://storage.yandexcloud.net \ --acl public-read \ --no-progress 

בצע את ההעברה עם אפשרות חזרה: אל תמחק קבצים מקומיים עד שתסתיים הבדיקה.

שגיאות אינטגרציה טיפוסיות
  • ACLs שגויים: קבצים הופכים לפרטיים, משתמשים רואים 403. ציין תמיד bitrix.cloud.
  • פסקי זמן עם קבצים גדולים: הגדל את OnAfterFileSave ואת זמן ביצוע הסקריפט.
  • בעיות עם מטמון שונה גודל: מודול s3 sync אינו מעביר מטמון; השתמש בתצורה נפרדת.

שלבי הגדרת אחסון מרכזי

שלב משך תיאור
ניתוח תשתית יום אחד הערכת עומס, בחירת ספק
הגדרת S3 ואינטגרציה 1-2 ימים התקנת מודול או AWS SDK
העברת קבצים 0.5-1 יום סנכרון עם בדיקת תקינות
בדיקות ותיעוד 0.5 יום Staging, הגדרת nginx, הוראות

מה כלול בעבודה

  • ניתוח התשתית הנוכחית ובחירת ספק S3.
  • הגדרת אינטגרציה (מודול bitrix.cloud או AWS SDK).
  • העברת כל הקבצים מ-/upload/ לענן עם אימות תקינות.
  • הגדרת nginx להגשת קבצים עם מטמון.
  • תיעוד הסכימה והוראות למנהלים.
  • אחריות ל-30 יום לפעולה תקינה לאחר המסירה.

לוחות זמנים ואחריות

הגדרת אחסון S3, אינטגרציה, הגדרת nginx והעברה אורכים 2–4 ימי עבודה בהתאם לנפח הקבצים. אנו מבטיחים פעולה תקינה של כל הקבצים המועלים והמוגשים, כמו גם ביצועים שאינם נמוכים מהדיסק המקומי. החיסכון באחסון מגיע ל-60% (עבור פרויקט ממוצע, מדובר בכ-$450–650 לחודש). אנו צוות מהנדסים עם ניסיון של 10+ שנים ב-Bitrix, שהשלים למעלה מ-80 פרויקטים של הגדרת אחסון. הערך את הפרויקט שלך — צור קשר לייעוץ. הזמן הגדרה מסודרת עם אחריות לפעולה יציבה. פנה אלינו לקבלת הערכה חינמית של התשתית שלך.