تعذر الاتصال بـ n8n إلى Google Drive من الصين القارية: البحث عن حلول بديلة للحصول على روابط الفيديو لأتمتة وسائل التواصل الاجتماعي في Buffer

أحاول أتمتة نشر الوسائط على Facebook و Instagram و X و YouTube و TikTok باستخدام n8n و Buffer. كانت خطتي الأصلية قراءة الملفات المحلية ومزامنتها مع Google Drive للحصول على رابط عام، ثم تمرير هذا الرابط إلى Buffer. لكنني غير قادر على المصادقة مع Google Drive في n8n، وأتلقى خطأ انتظار اتصال.

Error: connect ETIMEDOUT 74.125.199.95:443

More details

Failed to connect. The window can be closed now.

أشك في أن هذا يرجع إلى قيود الشبكة من البر الرئيسي بالصين؟؟ لكن كل أشيائي الأخرى تعمل بشكل جيد جداً.

كيف يمكنني حل مشكلة الاتصال هذه، أم هناك طرق بديلة أو حلول بديلة لتحقيق نفس الهدف من الحصول على رابط فيديو لـ Buffer دون الاعتماد على Google Drive؟

@Aria

البديل الأكثر قوة وإمكانية وصول للمستخدمين في منطقتك هو Cloudflare R2. وهي خدمة تخزين كائنات متوافقة مع S3 يمكن الوصول إليها بشكل عام بكثير وتوفر طريقة مباشرة لإنشاء عناوين URL عامة.

اتبع هذا الدليل:

١. إعداد Cloudflare R2

١. قم بتسجيل الدخول إلى لوحة معلومات Cloudflare → R2Create Bucket.
٢. أعط دلوك اسماً (على سبيل المثال، social-media-assets).
٣. خطوة حاسمة: انتقل إلى Settings الخاص بالدلو → Public Access.

  • إما أن تفعّل R2.dev subdomain (للاختبار) أو تتصل بـ Custom Domain (موصى به للإنتاج). يمنحك هذا عنوان URL الأساسي (على سبيل المثال، https://pub-aaa.r2.dev أو https://cdn.yourdomain.com).

٢. تكوين عقدة S3 في n8n

نظراً لأن R2 تستخدم بروتوكول S3، استخدم عقدة S3 في n8n:

  • بيانات الاعتماد: أنشئ بيانات اعتماد S3.
    • Access Key ID و Secret Access Key: احصل عليها من صفحة “Manage R2 API Tokens” في Cloudflare.
    • Endpoint: استخدم نقطة نهاية R2 S3 الخاصة بك (على سبيل المثال، https://<accountid>.r2.cloudflarestorage.com).
  • العملية: Upload a File.
  • الدلو: social-media-assets.
  • محتوى الملف: مرر البيانات الثنائية من عقدة قراءة الملف المحلي الخاصة بك.

٣. بناء عنوان URL العام

تحمّل عقدة S3 الملف، لكنها لا “تُرجع” عنوان URL العام تلقائياً. يمكنك بسهولة بناؤه باستخدام عقدة Set أو تعبير: https://your-public-endpoint.com/{{ $json.key }} (حيث {{ $json.key }} هو اسم الملف/المسار المُرجع بواسطة عقدة S3).

٤. تمرير عنوان URL إلى Buffer

الآن، استخدم عقدة HTTP Request لاستدعاء واجهة برمجة التطبيقات الخاصة بـ Buffer:

  • الطريقة: POST
  • عنوان URL: https://api.bufferapp.com/1/updates/create.json
  • المتن (JSON):
{
  "profile_ids": ["YOUR_PROFILE_ID"],
  "text": "Your awesome caption!",
  "media": {
    "photo": "https://your-public-endpoint.com/video.mp4" 
  }
}

يا @Aria المهلة الزمنية هي جدار الحماية العظيم، وليس n8n. 74.125.x.x نطاق تابع لـ Google، وواجهات برمجة تطبيقات Google بما فيها Drive مُحجوبة من البر الرئيسي للصين. من المتوقع أن تفشل نافذة OAuth. العُقد الأخرى لديك تعمل لأنها لا تصل إلى Google.

نهج kjooleng في استخدام R2 سليم من حيث الهندسة المعمارية، لكن هناك شيء يستحق التوضيح قبل أن تستثمر وقتك فيه: Cloudflare ليست طريقة موثوقة للالتفاف حول جدار الحماية. عناوين IP الخاصة بـ Cloudflare تتعرض للتخفيف والإعادة تعيين من قبل جدار الحماية العظيم حسب المحافظة ومزود الخدمة، والنطاق الفرعي العام r2.dev تحديداً لديه سجل بأنه محجوب في البر الرئيسي للصين. إذا اخترت R2، استخدم نطاقاً مخصصاً، وليس r2.dev.

لكن إليك الجزء الذي يهم بالفعل لإعدادك. يجب فقط على جزء واحد من هذا أن يعبر جدار الحماية: صندوق n8n الخاص بك يرفع الملف. Buffer يسحب عنوان URL من خوادمه الخاصة خارج الصين، لذا فإن حجب عنوان URL داخل الصين لا يؤثر على Buffer على الإطلاق. هذا يقلب السؤال. إنه ليس “هل عنوان URL قابل للوصول من الصين”، بل “هل يمكن لمثيل n8n الخاص بي الوصول إلى نقطة التخزين للرفع.”

إذاً قبل الالتزام:

  • اختبر نقطة الرفع من مضيف n8n الخاص بك. بالنسبة لـ R2، هي curl -I https://\ &lt;accountid&gt;.r2.cloudflarestorage.com. إذا تعطلت، فإن الرفع سيتعطل أيضاً.
  • إذا كانت غير مستقرة، تجنب الكفاح واستخدم متجر الكائنات الأصلي في الصين: Alibaba Cloud OSS أو Tencent COS. كلاهما متوافق مع S3، وكلاهما يعطيك عنوان URL عام يمكن لـ Buffer جلبه، وكلاهما لا يعتمد على أن تبقى ظروف جدار الحماية العظيم مستقرة يوماً تلو الآخر. بالنسبة لشخص يعمل داخل البر الرئيسي، هذا عادة ما يكون المسار الأقل متاعب.

نفس النمط في كلا الحالتين: رفع الملف، بناء عنوان URL العام، تمريره إلى Buffer. القرار الوحيد الحقيقي هو أي نقطة تخزين يمكن لصندوق n8n الخاص بك التحدث معها بموثوقية.

Mike

Alibaba OSS أو Tencent COS هو الاتجاه الصحيح إذا كنت داخل الجدار الناري العظيم، لكن اختبر عنوان URL الفعلي من خارج الصين أيضًا قبل دمجه. بعض شبكات توصيل المحتوى الإقليمية تبدو عامة محليًا ثم لا تستطيع خوادم المجدول الوصول إليها، مما يقلب مشكلة الاتصالية ببساطة.

مهما كان التخزين الذي تختاره، يجب أن يبقى عنوان URL عامًا وغير منتهي الصلاحية عندما يجلبه المجدول، ليس فقط عندما تختبره قبل 10 دقائق. انتهاء صلاحية عناوين URL الموقعة قبل النشر هو خطأ شائع جدًا يبدو وكأنه خطأ في المنصة.

واجهت نفس فئة المشاكل عند تشغيل blotato من n8n. كان السبب الجذري هو عنوان URL معاينة/مؤقت بدلاً من ملف عام حقيقي. تشخيص مفيد: أخطاء جلب الوسائط أحيانًا تعرض الحرف الأول من الاستجابة، لذا يمكن لـ “e” أن تشير إلى عنوان URL منتهي الصلاحية. وإذا عادت Google Drive لاحقًا، استخدم تنسيق drive.usercontent.google.com/download مع معرّف الملف. لن يعمل الرابط /view العادي لهذا الغرض.

شكراً لإبلاغنا عن هذا، لقد أنشأنا CV-10 كتذكرة تطوير داخلية للبحث في الموضوع.

لقد ألقينا نظرة على هذه المشكلة وغير قادرين على تأكيد أن هذا عطل، في الوقت الحالي أغلقنا التذكرة الداخلية لكن إذا بدأ يبدو وكأنه عطل، فسيقوم فريق الإشراف الخاص بنا بوضع علامة عليه مرة أخرى.

نهج Cloudflare R2 من kjooleng هو الطريق الصحيح هنا. هناك بعض الأشياء التي يجب ملاحظتها إذا كنت تقوم بتشغيل n8n ذاتي الاستضافة داخل الصين:

  • استضافة n8n خارج الصين: إذا كانت نسخة n8n الخاصة بك داخل جدار الحماية، فإن جميع الاتصالات الصادرة إلى واجهات برمجة تطبيقات Google (وليس فقط Drive) ستواجه نفس خطأ ETIMEDOUT. فكر في نشر n8n على خادم خارج الصين الداخلية (على سبيل المثال، منطقة هونج كونج أو سنغافورة) وجدولة سير العمل من هناك.

  • بديل لعناوين URL الفيديو: إذا كنت تحتاج فقط إلى عنوان URL عام للفيديوهات لتمريره إلى Buffer، يمكنك أيضًا استخدام Alibaba Cloud OSS (aliyuncs) أو Tencent COS — كلاهما موثوق داخل الصين ويدعم عناوين URL ممضاة/عامة. عقدة S3 المتوافقة في n8n تعمل مع كليهما.

  • ملاحظة Buffer API: يقبل Buffer عناوين URL للفيديو مباشرة، لذا فإن أي عنوان URL لشبكة توصيل محتوى عام (R2 أو OSS أو COS) سيعمل طالما كان قابلاً للوصول علنًا.

مرحباً! شكك صحيح تماماً.

عنوان IP 74.125.199.95 يخص Google. خطأ connect ETIMEDOUT يعني أن نموذج n8n الخاص بك يحاول بدء مصافحة TCP مع خوادم API الخاصة بـ Google، لكن الاتصال يتم قطعه تماماً بواسطة جدار الحماية في الشبكة (أمر شائع جداً مع قيود البر الرئيسي للصين).

بما أن هدفك هو فقط الحصول على عنوان URL عام لتمريره إلى Buffer، لديك طريقتان لحل هذه المشكلة:

الخيار 1: نفق حركة n8n عبر وكيل (إذا كان يجب عليك استخدام Google Drive)
إذا كان لديك خادم وكيل يقع خارج المنطقة المقيدة، يمكنك فرض n8n لتوجيه حركة المرور الخاصة به عبره. تحتاج إلى إضافة متغيرات البيئة هذه إلى ملف n8n docker-compose.yml الخاص بك:

environment:
  - HTTP_PROXY=[http://your.proxy.server.ip](http://your.proxy.server.ip):port
  - HTTPS_PROXY=[http://your.proxy.server.ip](http://your.proxy.server.ip):port
  - NO_PROXY=localhost,127.0.0.1 # حاسم حتى لا تمر خطافات n8n المحلية عبر الوكيل

الخيار 2: تخزين سحابي بديل (موصى به بشدة لـ Buffer) إذا كان إعداد وكيل معقداً جداً، فإن أفضل حل بديل هو تجاوز Google تماماً واستخدام خدمة غير محظورة وتتعامل بشكل أفضل مع الوسائط.

  • Cloudinary: هذا صراحة الخيار الأفضل لنشر وسائل التواصل الاجتماعي. يحتوي على عقدة n8n مخصصة، لا يتم استهدافه عادة من خلال الحظر العام، وينشئ عناوين URL عامة محسّنة للصور/الفيديوهات تلقائياً. (سير العمل: قراءة الملف المحلي → تحميل Cloudinary → تمرير عنوان URL الخاص بـ Cloudinary إلى Buffer)

  • AWS S3 / DigitalOcean Spaces / Bunny.net: تخزين الكائنات القياسي. يمكنك تحميل الملف الثنائي هناك (استضافة الحاوية خارج المنطقة المقيدة) وإنشاء عنوان URL عام للقراءة فقط لإرساله إلى Buffer.

التبديل إلى Cloudinary أو S3 سيكون أكثر استقراراً بكثير لخط أنابيب وسائل التواصل الاجتماعي المؤتمتة الخاص بك بدلاً من القتال مع جدار الحماية للحصول على حق الوصول إلى Google Drive. آمل أن يكون هذا مفيداً!