iPhone에서 파일을 쉽게 공유하는 새로운 방법

Pafera 파일 서버를 이제 iOS에서 사용할 수 있습니다!
2024-01-20 16:39:38
👁️ 1048
💬 0

간단한 소개를 원하시나요? 위의 영상을 시청하세요!

내용물

  1. 소개
  2. 새로운 Flutter 파일 공유 앱
  3. 앱 사용
  4. 고급 기능
  5. 모바일에서 비활성화된 기능
  6. 다운로드 및 소스 코드
  7. 베타 테스터로 지원하세요

소개

Android Termux에서 실행되는 Pafera 파일 서버

작년에 저는 다음과 같은 유틸리티를 출시했습니다. Pafera 파일 서버 . Rust로 작성된 콘솔 앱으로, 기기에 웹 기반 파일 관리자를 실행하여 웹 브라우저가 있는 모든 기기에 쉽게 파일을 공유할 수 있으며, 편리한 슬라이드 쇼 기능으로 사진과 시바 아이콘을 보여줄 수 있습니다. 즉, 파티에 가서 200명의 친구가 각자의 시간과 속도에 맞춰 자신의 휴대전화로 최근 휴가 사진을 볼 수 있습니다.

나중에, 친구들과 무작위 인터넷 낯선 사람들로부터 다양한 제안과 사용 패턴이 들어오면서, 저는 점점 더 많은 기능을 추가하기 시작했습니다. 이제 전체 디렉토리 트리를 rsync하고, 미디어 파일을 트랜스코딩하고, 기본 운영 체제 앱으로 파일을 열고, 기기 간에 파일을 자동으로 동기화할 수 있습니다.

그러나 콘솔 앱이기 때문에 모든 기기에 대한 범용 솔루션이 되는 데 방해가 되는 큰 문제가 항상 하나 있었습니다.

콘솔 앱은 iOS에서 실행할 수 없습니다. 즉, iPhone이나 iPad에서 Pafera 파일 서버를 실행할 수 없습니다.

지금까지.

새로운 Flutter 파일 공유 앱

몬테네그로가 휴일을 축하하는 동안 크리스마스 휴가 동안 여유 시간이 있었기 때문에, Flutter/Dart로 멀티플랫폼 컴패니언 앱을 작성해 보았습니다. 이 앱을 사용하면 휴대폰에서 서버를 쉽게 탐색할 수 있습니다. 그렇게 하면 기술에 덜 관심이 있는 친구들은 두 개의 버튼만 누르면 내 서버에 연결할 수 있습니다.

그 과정에서 iOS 기기에서 Dart를 사용하여 웹 서버를 실행할 수 있다는 사실을 알아냈고, 생각이 떠올랐습니다.

안녕하세요! 왜 Dart로 파일 서버를 구현하지 않는 걸까요!

그래서 2주 후에 앱이 출시되었습니다.

iPhone에서 실행되는 Pafera 파일 서버

이제, 성능은 Rust 버전과 비교하면 끔찍하게 느립니다. Rust 서버는 초당 약 40,000개의 요청을 처리할 수 있습니다...

Dart 버전은 약 400명만 수용할 수 있는 반면...

하지만 중요한 것은 그것이 효과가 있다는 것입니다...

아이폰에도 설치 가능해요!

앱 사용

최근 버전의 Flutter에서 PDFx 라이브러리에 버그가 생겨서 모든 버튼에 예쁜 아이콘을 사용하지 않게 되었습니다. 버튼이 보기 흉한 검은 선으로 표시되었기 때문입니다.

하지만 기본적인 작동 방식은 동일합니다.

기본 동작

모두가 동일한 WiFi 네트워크나 휴대전화 핫스팟에 연결되면 앱 아이콘을 클릭하고 공유하려는 폴더를 선택한 후 "서버 시작"을 탭하세요.

그런 다음 QR 코드 버튼을 클릭하고 친구에게 스캔하게 하면 친구들이 각자의 휴대폰에서 폴더를 즐겁게 탐색할 수 있고, 심지어 휴대폰에 저장된 영화를 각자의 휴대폰으로 직접 스트리밍할 수도 있습니다.

친구가 노트북이나 데스크톱 컴퓨터를 사용 중이라면 그것도 문제 없습니다. 그들의 기기에서 QR 코드 위에 표시된 URL을 입력하기만 하면, 그들도 똑같은 일을 할 수 있습니다.

iOS나 Android에서 실행하지 않더라도 문제 없습니다. Flutter 앱은 OSX, Windows, Linux에서 잘 작동하므로 동일한 기능을 얻을 수 있으며, 앱에서 사용할 수 있도록 시스템에 rsync, FFMpeg, ImageMagick을 설치하면 더 많은 기능을 얻을 수 있습니다.

고급 기능

간단한 파일 공유 외에도 꽤 많은 고급 기능이 있으므로 여기서는 간략하게 개요를 설명하겠습니다.

호스트 이름은 다른 기기가 "다른 서버 검색"을 클릭했을 때 표시되는 이름입니다. 여러 기기를 동시에 공유하는 경우 이를 사용하여 한 기기를 다른 기기와 빠르게 구별할 수 있습니다.

폴더는 실제로 공유하는 파일 시스템 폴더입니다. Documents/shared에서 기본값으로 "문서 폴더 사용"을 클릭하거나 "폴더 선택"을 클릭하여 다른 폴더를 선택할 수 있습니다. iOS가 절전 모드에서 다시 시작할 때 앱 설정을 제대로 새로 고치지 않는 경우 "문서 폴더 사용"을 클릭해야 할 수도 있습니다.

현재 IP 사용은 기기의 현재 WiFi IP를 자동으로 감지합니다. "문서 폴더 사용"과 마찬가지로 iOS가 앱을 제대로 새로 고치지 않고 이전 WiFi 네트워크의 IP를 계속 사용하는 경우 사용하세요.

"모든 인터페이스에서 공유"는 공개 IP를 0.0.0.0으로 설정합니다. 즉, 모든 사람 연결된 모든 것에서 서버를 볼 수 있습니다. 두 개 이상의 연결이 있는 데스크톱에서는 편리하지만 공공 장소에서 사용할 때는 조심하세요.

"공유 시작"은 서버를 실행하고 홈페이지를 열어 관리할 수 있도록 합니다. 다시 클릭하면 서버가 중지되고 파일이 안전하게 보관됩니다.

"마지막 설정 로드"와 "현재 설정 저장"은 말 그대로의 기능을 합니다. 설정은 콘솔 Rust 버전과 마찬가지로 Documents/paferafileserver.cfg에 저장됩니다.

고급 옵션

다양한 비밀번호 옵션은 서로 다른 사람들에게 서로 다른 수준의 접근 권한을 제공하기 위해 존재합니다.

일반적으로 모든 사람이 귀하의 서버에 접속하기만 하면 귀하의 파일을 볼 수 있지만, 아래에 있는 "비공개 파일 사용"을 체크하면 읽기 비밀번호 없이는 누구도 귀하의 파일을 볼 수 없습니다.

쓰기 암호는 파일을 업로드, 이동, 복사 또는 삭제하는 데 사용됩니다. 이것이 없으면 다른 사람은 파일을 보는 것 외에는 시스템에 아무것도 할 수 없습니다.

쉘 비밀번호는 모바일 앱에서는 쓸모가 없지만 데스크톱 운영 체제와 Android의 Termux에서는 매우 유용합니다. 임의의 시스템 명령을 실행할 수 있으므로 동시에 매우 강력하고 매우 위험합니다. 이 기능은 기본적으로 비활성화되어 있으며 쉘 비밀번호를 입력해야 합니다. 그리고 사용하려면 아래의 "셸 명령 사용"을 선택하세요.

다양한 활성화 및 비활성화 옵션을 사용하면 다른 사람이 귀하의 시스템에 대해 수행할 수 있는 작업을 선택할 수 있습니다. 심지어 언제라도 그들은 이미 올바른 비밀번호를 가지고 있습니다. 이것들은 다른 모든 옵션을 무시하므로 파일 복사를 비활성화하면 아무도 - 심지어 당신 자신도 - 파일을 복사할 수 없습니다.

특별 옵션 "SSH Keycheck 비활성화"는 저처럼 다른 장치 간에 파일을 동기화하는 동안 끊임없이 돌아다니는 사람들을 위한 것입니다. 일반적으로 SSH는 해당 시스템의 ID가 이미 알려져 있더라도 IP 주소가 변경된 시스템에 연결할 때 확인을 요청합니다. 이 옵션을 사용하면 콘솔로 내려가 SSH 연결을 확인하지 않고도 다른 네트워크의 파일을 자동으로 동기화할 수 있습니다. 직접 제어할 수 없는 네트워크에서는 주의해서 사용하세요.

모바일에서 비활성화된 기능

Termux나 데스크톱 환경에서 실행하는 것과 달리, iOS와 Android 앱은 셸, rsync, ImageMagick, FFMpeg에 액세스할 수 없으므로 모든 고급 동기화 및 트랜스코딩 기능이 비활성화됩니다.

모바일 운영 체제는 언제든지 백그라운드 앱을 종료할 수 있으므로, 시간이 지정된 자동 작업도 비활성화됩니다.

이 모든 측면에 대한 가능한 해결책이 있지만, 이러한 기능을 통합하는 데 필요한 시간은 현재로선 제 의도를 벗어납니다. 누군가 저에게 추가 비용을 지불하는 데 관심이 있다면, 무슨 일이 일어날지 지켜보겠습니다. 😁

다운로드 및 소스 코드

내 모든 프로젝트와 마찬가지로 소스 코드는 Codeberg에 호스팅되며 여기에서 발견 .

미리 컴파일된 바이너리의 경우 다음을 수행할 수 있습니다. 여기에서 릴리스 디렉토리를 탐색하세요 ...

혹은 아래 링크를 클릭해 보세요.

Apple 서명 요구 사항으로 인해, iOS 및 OSX 사용자는 앱이 App Store에 출시될 때까지 기다리거나 소스 코드를 다운로드하여 자신의 기기에 맞는 버전을 컴파일해야 합니다.

베타 테스터로 지원하세요

새로운 릴리스이므로 다양한 시스템에서 버그와 이상한 동작이 많을 것으로 확신합니다. 이 앱을 베타 테스트하고 싶으시다면 기기와 운영 체제 버전을 이메일로 보내주시면 TestFlight에서 설정해드리겠습니다.

Flutter 앱을 배포하는 것은 실제로 Rust 버전보다 훨씬 더 복잡합니다. Rust 버전에서는 실행 파일 하나만 업로드하면 모든 것이 끝나기 때문에 Apple에서 앱을 확인하고 iOS 앱 스토어에 등록하는 데 3주가 걸리더라도 이해해 주시기 바랍니다. EU 규정에 따라 Apple이 타사 앱을 허용해야 할 때는 훨씬 수월할 것입니다.

언제나 그렇듯이, 여러분께서 이 앱을 유용하게 여기셨으면 좋겠고, 여러분이 자신의 목적에 맞게 앱을 사용자 지정하고 싶으시다면, 저는 항상 기술 컨설턴트로 일할 수 있습니다. 재미있게 보내세요!

저자 소개

짐은 90년대에 IBM PS/2를 얻은 이후로 프로그래밍을 해왔습니다. 오늘날까지도 그는 여전히 HTML과 SQL을 손으로 쓰는 것을 선호하며, 작업의 효율성과 정확성에 집중합니다.