انتقل إلى المحتوى
بث في الوقت الحقيقي
لا تخزين
256 مستقبل
PUT · POST · GET
أصيل لـ CURL
توزيع
تقدم SSE
جاهز للتشفير من طرف إلى طرف
بث في الوقت الحقيقي
لا تخزين
256 مستقبل
PUT · POST · GET
أصيل لـ CURL
توزيع
تقدم SSE
جاهز للتشفير من طرف إلى طرف
بث في الوقت الحقيقي
لا تخزين
256 مستقبل
PUT · POST · GET
أصيل لـ CURL
توزيع
تقدم SSE
جاهز للتشفير من طرف إلى طرف
بث في الوقت الحقيقي
لا تخزين
256 مستقبل
PUT · POST · GET
أصيل لـ CURL
توزيع
تقدم SSE
جاهز للتشفير من طرف إلى طرف
PipeHOODY PIPE

أنابيب مسمّاة عبر الإنترنت

أرسل POST إلى مسار. أرسل GET من نفس المسار. البيانات تتدفق مباشرة من المُرسِل إلى المستقبل — لا bucket، لا S3، لا تخزين.

pipe · نقل حي

الطرفية A — المرسِل

$ curl -T report.pdf \

https://abc123-def456-pipe-1.node-us-1.containers.hoody.com/api/v1/pipe/report

[INFO] في انتظار المستقبِل...

[INFO] بثّ إلى 1 مستقبِل...

[INFO] اكتمل النقل.

الطرفية B — المستقبِل

$ curl https://abc123-def456-pipe-1.node-us-1.containers.hoody.com/api/v1/pipe/report \

-o report.pdf

% Total report.pdf

100 2.4M 100 2.4M 0 0 1.8M

صفر تخزين·بثّ في الوقت الحقيقي·حتى 256 مستقبِلاً·TTL 5 دقائق
كيف يعمل

البيانات تتدفق خلاله، لا إليه

كل بايت ترسله يصل إلى المستقبلين في الوقت الحقيقي. الخادم سلك، لا مستودع.

المصدر

مُرسل

PUT / POST/pipe/{path}

خادم PIPE

تخزين صفري · حتى 256 مستقبل

GET/pipe/{path}

المستقبل

مُستقبِل

01

المُرسِل يفتح

المُرسِل يرسل POST أو PUT إلى أي مسار. الخادم ينتظر — حتى 5 دقائق — حتى يتصل مستقبل.

02

البايتات تتدفق

البيانات تتدفق بايت بايت عبر الشبكة. لا تخزين مؤقت. لا ملفات مؤقتة. لا خطوة رفع.

03

المستقبلون يتصلون

المستقبلون يرسلون GET إلى نفس المسار ويسحبون البث الحي. حتى 256 مستقبل يمكنهم التوزيع.

وصفات

تركيبات Pipe الشائعة

معظم الوصفات أمرا curl — أحدهما للإرسال والآخر للاستقبال.

#1

نقل الملف

تسليم نظير-لنظير، لا تخزين وسيط.

مُرسل ← مستقبِل

$ curl -T report.pdf …/pipe/report

# curl …/pipe/report -o report.pdf

#2

تدفق سجل حي

تتبع سجلات الحاوية في الوقت الحقيقي من أي طرفية.

مُرسل ← مستقبِل

$ tail -f app.log | curl -T - …/pipe/logs

# curl …/pipe/logs

#3

مشاركة الشاشة

بث سطح المكتب لما يصل إلى 10 مشاهدين. بدون WebRTC.

مُرسل ← مستقبِل

$ ffmpeg … | curl -T - …/pipe/screen?n=10

# browser: …/pipe/screen?n=10&video

#4

مزامنة المجلد

ضغط ونقل وفك ضغط شجرة مجلد في خط أنابيب واحد.

مُرسل ← مستقبِل

$ tar czf - ./project | curl -T - …/pipe/proj

# curl …/pipe/proj | tar xzf -

#5

النقل المشفّر

مشفّر من طرف إلى طرف — الخادم لا يرى نصاً واضحاً أبداً.

مُرسل ← مستقبِل

$ openssl enc … < secret.doc | curl -T - …/pipe/enc

# curl …/pipe/enc | openssl enc -d …

#6

بث التوزيع

وزّع قطعة البناء على 3 مستهلكين بالضبط في آنٍ واحد.

مُرسل ← مستقبِل

$ curl -T build.zip …/pipe/release?n=3

# curl …/pipe/release?n=3 (×3 receivers)

#7

مشاهدة التقدم (ثلاثي الأطراف)

راقب السرعة والوقت المتبقي والبايتات دون استهلاك موضع مستقبل.

مُرسل ← مستقبِل

$ curl -T dataset.tar.gz …/pipe/ds (sender)

# curl …/pipe/ds + browser: …/pipe/ds?progress

البروتوكولات والمحتوى

ما يمكن تدفقه عبر أنبوب

أي نوع محتوى لا يمكن تنفيذه كسكربت يتدفق كما هو. أنواع MIME الخطرة تُعاد كتابتها.

application/octet-streamPUT ← GET

ملفات ثنائية وأرشيفات وصور

/api/v1/pipe/{path}
text/plainPOST ← GET

سجلات ومدخلات قياسية وإعداد وتدفقات مخرجات قياسية

/api/v1/pipe/{path}
multipart/form-dataPOST ← GET

رفع ملف من المتصفح (الجزء الأول فقط)

/api/v1/pipe/{path}
video/webm، video/mp4PUT ← متصفح

مشاركة الشاشة، فيديو مسجّل

/api/v1/pipe/{path}?video
text/event-stream (SSE)GET متفرج

رصد التقدم، السرعة/الوقت المتبقي/الحالة

/api/v1/pipe/{path}?progress
text/html (معاد كتابته)PUT ← GET

يُعاد كتابته إلى text/plain قبل الإعادة — XSS مُمنَع، البيانات لا تُفقَد

/api/v1/pipe/{path}
ترويسات مخصصةPUT ← GET

X-Hoody-Pipe وبيانات X-Piping تُعاد إعادة توجيه

/api/v1/pipe/{path}

جميع نقاط النهاية على /api/v1/pipe/[path]. الاتجاه يصف من يكتب ومن يقرأ.

الحدود

مبني للحجم

حدود صارمة مفروضة لكل خادم. HTTP 429 عند امتلاء السعة، HTTP 414 عندما تكون المسارات طويلة جداً.

#1

256

الحد الأقصى للمستقبلين على مسار واحد

#2

1,000

الاتصالات المعلّقة غير المُنشأة

#3

1,000

البثوث المتزامنة الجارية

#4

5 دقائق

TTL قبل طرد HTTP 408

#5

1,024

الحد الأقصى لطول المسار بالأحرف

API

9 نقاط نهاية، أمران مهمان

POST أو PUT للإرسال. GET للاستقبال. كل شيء آخر هو رصد.

الرصد وواجهة المستخدم

6 نقاط نهاية

GET /api/v1/pipe/health 200 { status, service, built, started, memory, … }

GET
/api/v1/pipe/healthJSON: status و version و activePipes
GET
/api/v1/pipe/versionسلسلة إصدار نصية بسيطة
GET
/api/v1/pipe/helpأمثلة curl ذاتية الاستضافة
GET
/api/v1/pipeواجهة ويب للمتصفح للرفع بلا كود
GET
/api/v1/pipe/noscriptواجهة احتياطية لمتصفحات بلا JS
OPTIONS
/api/v1/pipe/{path}طلب CORS التمهيدي (preflight)

نقل البيانات

3 نقاط نهاية

POST أو PUT للإرسال · GET للاستقبال

POST
/api/v1/pipe/{path}أرسل البيانات؛ يبثّ حالة [INFO] إلى المرسِل
PUT
/api/v1/pipe/{path}اسم بديل لـ POST؛ طبيعي لـ curl -T file
GET
/api/v1/pipe/{path}استقبل البيانات؛ يحجب حتى يتصل المرسِل

أمرا curl وتنتهي

لا SDK. لا إعداد مصادقة. لا حدود لحجم الملف. أطلق حاوية Pipe وابدأ النقل.

اقرأ التوثيق