🛠️ابزار و CLIسال: ۱۴۰۴تکمیل‌شده

Transfer

با باز کردن یک صفحهٔ وب، فایل بفرست بین دستگاه‌های خانه — بدون فضای ابری، بدون حساب، بدون کابل

Transfer cover
PythonFlaskWebSocketSQLitePyInstallerInno Setup

مسئله: بردن یک فایل از لپ‌تاپم به گوشیم. راه‌حل‌ها: یک کابل، یا آپلود چیزی خصوصی روی سروری که در اختیارم نیست.

Transfer راه سوم را برمی‌گزیند — سرور روی شبکهٔ خودم می‌ماند، و رابط کاربری یک صفحهٔ وب است.

چیست

یک‌بار روی یک کامپیوتر اجرا کن. یک آدرس چاپ می‌کند. هر گوشی، لپ‌تاپ و دسکتاپ روی همان وای‌فای می‌تواند آن آدرس را در مرورگر باز کند و فایل جابه‌جا کند. بدون حساب، بدون فضای ابری، هیچ‌چیز از خانه بیرون نمی‌رود.

بخش بدِ هر ابزار سرور محلی، لحظه‌ای است که کسی باید آدرس IP تایپ کند. برای همین به‌جایش روی صفحه کد QR هست — دوربین گوشی را بگیر، و همان‌جا وصل شده‌ای.

چه کار می‌کند

  • فایل و پوشهٔ کامل، در هر دو جهت، با drag & drop و دانلود ZIP چندفایلی.
  • جفت‌سازی QR، تا کسی آدرس تایپ نکند.
  • HTTPS با گواهی که در اولین اجرا ساخته می‌شود، تا مرورگر گوشی بابت هشدار با شما دعوا نکند.
  • دستگاه‌ها خودشان را روی شبکه پیدا می‌کنند، تا مجبور نباشی دنبال دستگاه درست بگردی.
  • پیشرفت زنده روی WebSocket — فایل‌ها حین انتقال دیده می‌شوند، نه بعدش.
  • لینک‌های اشتراک با انقضا، جستجوی فایل، مرتب‌سازی، و تشخیص تکراری.
  • دوزبانه انگلیسی/فارسی، پنج تم، و روی گوشی مثل اپ بومی نصب می‌شود.
  • محدودیت سرعت هر سشن، تا کل وای‌فای هتل را اشغال نکند.

اعداد

۲ رابط: سرور، و یک CLI برای انتقال اسکریپتی
۵ تم به‌علاوهٔ دنبال کردن خودکار تم سیستم
۰ حساب کاربری، ۰ بایت ارسال به سرور بیرونی

چرا ارزش دیدن دارد

کار امنیتی اینجا مادهٔ اصلی است. سروری که از هر چیزی روی شبکه آپلود می‌پذیرد، سروری است که باید با آن محتاط بود: هر نام فایلی که وارد می‌شود فرصتی است برای نوشتن بیرون از پوشهٔ موردنظر، هر نام فایلی که رندر می‌شود فرصتی است برای تزریق اسکریپت، و هر درخواست تغییردهندهٔ وضعیت فرصتی است برای فراخوانی از صفحه‌ای که باز می‌کنی. محافظت از مسیر، escape کردن خروجی و محافظت CSRF قابلیت‌هایی نیستند که بعداً اضافه شده باشند — دلیل امن بودن چیزی است که می‌شود روشن رهایش کرد.

همچنین باید دربارهٔ دامنه‌اش صادق باشد: برای شبکهٔ خانگی یا اداری طراحی شده و نباید در معرض اینترنت قرار گیرد. README هم همین را می‌گوید، و مدل امنیتی بر همین فرض ساخته شده نه با وانمود که یک سرویس عمومی است.

وضعیت فعلی

  • مشاهدهٔ دوربین و صفحهٔ از راه دور به HTTPS نیاز دارند و کم‌استفاده‌ترین قابلیت‌ها هستند.
  • همگام‌سازی پوشه آزمایشی است و روی آن حساب نکنید.

پروژه‌های بیشتر