Cách mới để dễ dàng chia sẻ tập tin từ iPhone

Pafera File Server hiện đã có trên iOS!
2024-01-20 16:39:38
👁️ 1027
💬 0

Bạn muốn có phần giới thiệu nhanh? Hãy xem video ở trên!

Nội dung

  1. Giới thiệu
  2. Ứng dụng chia sẻ tệp Flutter mới
  3. Sử dụng ứng dụng
  4. Tính năng nâng cao
  5. Tính năng bị vô hiệu hóa trên thiết bị di động
  6. Tải xuống và Mã nguồn
  7. Nộp đơn để trở thành Người thử nghiệm Beta

Giới thiệu

Máy chủ tệp Pafera chạy trong Android Termux

Năm ngoái, tôi đã phát hành một tiện ích có tên là Máy chủ tập tin Pafera . Đây là ứng dụng console được viết bằng Rust chạy trình quản lý tệp dựa trên web cho các thiết bị của bạn, cho phép chia sẻ tệp dễ dàng tới bất kỳ thiết bị nào có trình duyệt web với tính năng trình chiếu tiện dụng để hiển thị ảnh và biểu tượng shiba của bạn. Điều này có nghĩa là bạn có thể đến một bữa tiệc và cho phép 200 người bạn duyệt qua ảnh kỳ nghỉ gần đây của bạn trên điện thoại của họ, theo thời gian và tốc độ của riêng họ.

Sau đó, khi có nhiều đề xuất và mẫu sử dụng khác nhau từ bạn bè và người lạ trên internet, tôi bắt đầu thêm ngày càng nhiều tính năng. Giờ đây, nó có khả năng rsync toàn bộ cây thư mục, chuyển mã tệp phương tiện, mở tệp bằng ứng dụng hệ điều hành gốc và tự động đồng bộ hóa tệp trên các thiết bị của bạn.

Tuy nhiên, vì là một ứng dụng dành cho máy chơi game nên luôn có một vấn đề lớn khiến ứng dụng này không thể trở thành giải pháp chung cho mọi thiết bị:

Các ứng dụng Console không thể chạy trên iOS, nghĩa là bạn không thể chạy Pafera File Server trên iPhone hoặc iPad...

Cho đến bây giờ.

Ứng dụng chia sẻ tệp Flutter mới

Tôi có chút thời gian rảnh rỗi trong kỳ nghỉ Giáng sinh khi Montenegro đang ăn mừng lễ, vì vậy tôi đã thử nghiệm viết một ứng dụng đồng hành đa nền tảng trong Flutter/Dart cho phép bạn dễ dàng duyệt máy chủ từ điện thoại của mình. Theo cách đó, những người bạn ít am hiểu công nghệ của tôi có thể chỉ cần nhấn hai nút và kết nối với máy chủ của tôi.

Trong quá trình thực hiện, tôi phát hiện ra rằng thực ra bạn có thể sử dụng Dart để chạy máy chủ web của riêng mình trên các thiết bị iOS và tôi nghĩ...

Này! Tại sao tôi không triển khai máy chủ tệp trong Dart nhỉ!

Vậy là hai tuần sau, ứng dụng đã có mặt.

Máy chủ tập tin Pafera chạy trên iPhone

Hiện tại, hiệu suất chậm kinh khủng so với phiên bản Rust. Máy chủ Rust có thể phục vụ khoảng 40.000 yêu cầu mỗi giây...

Trong khi phiên bản Dart chỉ có thể phục vụ khoảng 400 người....

Nhưng điều quan trọng là nó có hiệu quả...

và nó có thể cài đặt trên iPhone!

Sử dụng ứng dụng

Do lỗi trong thư viện PDFx ở các phiên bản Flutter gần đây, tôi đã phải ngừng sử dụng các biểu tượng đẹp cho tất cả các nút vì chúng hiển thị dưới dạng các đường đen xấu xí.

Tuy nhiên, hoạt động cơ bản vẫn giữ nguyên.

Hoạt động cơ bản

Khi mọi người đã kết nối với cùng một mạng WiFi hoặc điểm phát sóng trên điện thoại của bạn, chỉ cần nhấp vào biểu tượng ứng dụng, chọn thư mục bạn muốn chia sẻ và chạm vào "Khởi động máy chủ".

Sau đó, nhấp vào nút mã QR, cho bạn bè quét và họ có thể thoải mái duyệt thư mục của bạn trên điện thoại của họ, thậm chí có thể truyền trực tiếp phim từ điện thoại của bạn sang điện thoại của họ.

Nếu bạn của bạn đang sử dụng máy tính xách tay hoặc máy tính để bàn, điều đó cũng không thành vấn đề. Chỉ cần nhập URL hiển thị phía trên mã QR trên thiết bị của họ và họ có thể làm chính xác điều tương tự.

Nếu bạn không chạy trên iOS hoặc Android, điều đó cũng không thành vấn đề. Ứng dụng Flutter hoạt động tốt trên OSX, Windows và Linux, vì vậy bạn sẽ có được chức năng tương tự và thậm chí còn hơn thế nữa nếu bạn cài đặt rsync, FFMpeg và ImageMagick trên hệ thống của mình để ứng dụng sử dụng.

Tính năng nâng cao

Có khá nhiều tính năng nâng cao bên cạnh việc chia sẻ tệp đơn giản, vì vậy tôi sẽ cung cấp một bản tóm tắt nhanh ở đây.

Tên máy chủ là thông tin hiển thị cho các thiết bị khác khi họ nhấp vào "Tìm kiếm máy chủ khác". Bạn có thể sử dụng thông tin này để phân biệt nhanh chóng một thiết bị với thiết bị khác nếu bạn đang chia sẻ một vài thiết bị cùng một lúc.

Thư mục là thư mục hệ thống tệp mà bạn thực sự đang chia sẻ. Bạn có thể nhấp vào "Sử dụng thư mục tài liệu" để làm mặc định trong Tài liệu/chia sẻ hoặc bạn có thể nhấp vào "Chọn thư mục" để chọn một thư mục khác. Bạn cũng có thể cần nhấp vào "Sử dụng thư mục tài liệu" nếu iOS không làm mới đúng cài đặt của ứng dụng khi tiếp tục từ chế độ ngủ.

Sử dụng IP hiện tại sẽ tự động phát hiện IP WiFi hiện tại của thiết bị. Tương tự như "Sử dụng thư mục tài liệu", hãy sử dụng nếu iOS không làm mới ứng dụng đúng cách và ứng dụng vẫn đang sử dụng IP từ mạng WiFi trước đó.

"Chia sẻ trên tất cả các giao diện" đặt IP công khai thành 0.0.0.0, điều đó có nghĩa là mọi người trên bất kỳ thiết bị nào bạn kết nối sẽ có thể thấy máy chủ của bạn. Tiện dụng trên máy tính để bàn có nhiều hơn một kết nối, nhưng hãy cẩn thận khi sử dụng ở nơi công cộng.

"Bắt đầu chia sẻ" sẽ chạy máy chủ và mở trang chủ để bạn quản lý. Nhấp vào đó một lần nữa sẽ dừng máy chủ và giữ an toàn cho các tệp của bạn.

"Tải cài đặt cuối cùng" và "Lưu cài đặt hiện tại" thực hiện chính xác những gì chúng nói. Cài đặt của bạn sẽ được lưu trữ trong Documents/paferafileserver.cfg giống như phiên bản Rust của console.

Tùy chọn nâng cao

Có nhiều tùy chọn mật khẩu khác nhau để cung cấp cho mỗi người những cấp độ truy cập khác nhau.

Thông thường, mọi người đều có thể xem tệp của bạn chỉ bằng cách kết nối với máy chủ của bạn, nhưng nếu bạn chọn "Bật tệp riêng tư" bên dưới, thì không ai có thể xem tệp của bạn nếu không có mật khẩu đọc.

Mật khẩu ghi được sử dụng để tải lên, di chuyển, sao chép hoặc xóa tệp. Nếu không có mật khẩu này, không ai khác có thể làm gì với hệ thống của bạn ngoài việc xem tệp của bạn.

Mật khẩu shell vô dụng trên ứng dụng di động, nhưng rất hữu ích trên hệ điều hành máy tính để bàn và Termux trên Android. Nó cho phép bạn chạy các lệnh hệ thống tùy ý, khiến nó trở nên rất mạnh mẽ và rất nguy hiểm cùng một lúc. Tính năng này bị tắt theo mặc định và bạn phải nhập cả mật khẩu shell kiểm tra "Bật lệnh shell" bên dưới để sử dụng.

Các tùy chọn bật và tắt khác nhau cho phép bạn chọn những gì người khác có thể làm với hệ thống của bạn ngay cả khi họ đã có đúng mật khẩu. Những mật khẩu này sẽ ghi đè lên tất cả các tùy chọn khác, vì vậy nếu bạn vô hiệu hóa việc sao chép tệp, không ai - kể cả bạn - có thể sao chép tệp.

Tùy chọn đặc biệt "Tắt SSH Keycheck" dành cho những người như tôi, những người liên tục di chuyển trong khi đồng bộ hóa các tệp qua lại giữa các thiết bị khác nhau. Thông thường, SSH sẽ yêu cầu xác nhận khi kết nối với hệ thống có địa chỉ IP đã thay đổi, ngay cả khi danh tính của hệ thống đó đã được biết. Tùy chọn này sẽ cho phép bạn tự động đồng bộ hóa các tệp trên các mạng khác nhau mà không cần phải chuyển xuống bảng điều khiển để xác nhận kết nối SSH. Hãy sử dụng cẩn thận khi ở trên các mạng mà bạn không tự kiểm soát.

Tính năng bị vô hiệu hóa trên thiết bị di động

Không giống như chạy trong Termux hoặc môi trường máy tính để bàn, ứng dụng iOS và Android không có quyền truy cập vào shell, rsync, ImageMagick hoặc FFMpeg, do đó tất cả các tính năng đồng bộ hóa và chuyển mã nâng cao đều bị vô hiệu hóa.

Vì hệ điều hành di động có thể tắt các ứng dụng nền bất cứ lúc nào nên các tác vụ tự động theo thời gian cũng bị vô hiệu hóa.

Có những giải pháp khả thi cho tất cả các khía cạnh này, nhưng thời gian cần thiết để tích hợp các tính năng này nằm ngoài ý định của tôi tại thời điểm này. Nếu ai đó quan tâm đến việc trả tiền cho tôi để thêm chúng, thì chúng ta sẽ xem điều gì xảy ra. 😁

Tải xuống và Mã nguồn

Như với tất cả các dự án của tôi, mã nguồn được lưu trữ trên Codeberg và có thể được tìm thấy ở đây .

Đối với các tệp nhị phân được biên dịch trước, bạn có thể duyệt thư mục phát hành ở đây ...

Hoặc chỉ cần nhấp vào các liên kết bên dưới:

Do yêu cầu ký kết của Apple, người dùng iOS và OSX phải đợi ứng dụng có sẵn trên App Store hoặc tải xuống mã nguồn và biên dịch phiên bản riêng cho thiết bị của bạn.

Nộp đơn để trở thành Người thử nghiệm Beta

Vì đây là bản phát hành mới, tôi chắc chắn rằng sẽ có rất nhiều lỗi và hành vi lạ trên nhiều hệ thống khác nhau. Nếu bạn muốn thử nghiệm ứng dụng này cho tôi, vui lòng gửi cho tôi email với thiết bị và phiên bản hệ điều hành của bạn và tôi sẽ thiết lập cho bạn trên TestFlight.

Phân phối ứng dụng Flutter thực sự phức tạp hơn nhiều so với phiên bản Rust, nơi tôi chỉ cần tải lên một tệp thực thi duy nhất và hoàn thành toàn bộ, vì vậy hãy thông cảm khi phải mất ba tuần để Apple kiểm tra ứng dụng của tôi và cho phép nó vào iOS App Store. Mọi thứ sẽ dễ dàng hơn nhiều khi Apple được yêu cầu cho phép các ứng dụng của bên thứ ba theo phán quyết của EU.

Như thường lệ, tôi hy vọng các bạn thấy ứng dụng này hữu ích và nếu bạn muốn tùy chỉnh nó cho mục đích của riêng mình, tôi luôn sẵn sàng làm cố vấn kỹ thuật. Chúc vui vẻ!

Về tác giả

Jim đã lập trình kể từ khi anh có một chiếc IBM PS/2 vào những năm 90. Cho đến ngày nay, anh vẫn thích viết HTML và SQL bằng tay và tập trung vào hiệu quả và tính chính xác trong công việc của mình.