친구와 파일을 공유하는 게 그렇게 어려워야 하나요?

완전한 파일 관리자, 슬라이드 쇼 뷰어, 미디어 서버로 성장한 작은 안드로이드 서버, Pafera File Server를 소개합니다.
2023-04-17 22:41:37
👁️ 837
💬 0

내용물

  1. 소개
  2. 후보자들
  3. 해결책
  4. 그러면 어떻게 작동할까요?
  5. 서버 설치
  6. 파일 탐색
  7. 시스템 메뉴
  8. 파일 메뉴
  9. 슬라이드 쇼 사용
  10. 구성
  11. 미래 계획

소개

와! 정말 멋지네요. 공유해 주실 수 있나요?

저는 끊임없이 새로운 가젯과 앱을 출시하는 기술 전문가이기 때문에 파티나 회의에서 또는 심지어 지하철을 기다릴 때 위와 같은 문구를 몇 번이나 들었는지 기억이 나지 않습니다.

하지만 저는 우리가 다음과 같은 대화를 나눈 적이 몇 번인지 분명히 기억합니다.

물론이죠! 무엇을 사용하시나요?
친구 음, 저는 앱 A를 가지고 있어요.
음... 저는 그게 없어요. B 앱이 있나요?
친구 아니요, 그것도 없어요. 방법 C가 있나요?
좋아요. 시도해 봅시다. 음... 연결이 안 돼요. 방법 D를 사용해 볼까요?
친구 그것도 효과가 없습니다.

파일을 공유하는 것은 컴퓨터가 암흑기에 등장한 이래로 흔한 작업이었습니다. 처음에는 열성적인 프로그래머들이 서로의 인쇄물을 기쁘게 바라보았고, 그 다음에는 펀치 카드를 복사하는 것이 되었습니다. 그 후, 자기 디스크가 새로운 인기 트렌드가 되었고, 그 기술은 광 디스크, 플라스크 드라이브, 무선 전송으로 옮겨갔습니다.

하지만 70년이 지난 지금도 귀여운 시바견 동영상을 쉽게 공유하려면 어려운 과정을 거치거나, 이상한 앱을 다운로드하거나, 느린 무선 전송을 이용해야 하는 것 같습니다.

뭔가 다른 것을 시도해 보는 건 어떨까요?

후보자들

하지만 짐, 나는 매일 아무 문제 없이 파일을 공유한다고요?

그럼, 사람들이 파일을 전송하는 데 사용하는 일반적인 방법을 살펴보겠습니다.

방법 실패하다
1. 에어드롭 안드로이드 폰에 AirDrop을 할 수 있나요? 그럼 좋아요!
2. NearBy 공유 NearBy로 파일을 iPhone에 공유할 수 있나요? 음...
3. AirDroid, SHAREit, Resilio Sync, Send Anywhere 등... 버스 정류장에서 누군가에게 파일을 받기 위해 당신과 같은 앱을 빨리 설치하라고 말할 건가요? 그럼 좋아요!
4. 채팅 프로그램 많은 채팅 프로그램은 보낼 수 있는 파일 유형을 제한하고, HD 비디오를 재압축하며, 파일이 천천히 업로드되고 친구의 기기에 다운로드될 때까지 기다려야 합니다. 또한 파일을 전송하려면 동일한 채팅 프로그램을 설치해야 하는 방법 3의 문제에 부딪힙니다.
5. 블루투스 Bluetooth 5를 사용하더라도 700MiB HD 비디오를 전송하는 것은 습한 플로리다 날씨에서 페인트가 마르는 것을 지켜보는 것과 같습니다.
6. 이메일 대부분 이메일 서비스는 첨부 파일 크기에 제한이 있고, 채팅 프로그램을 통해 전송하는 것보다 더 느립니다. 하지만 저는 iPhone 사용자가 문서를 인쇄하기 위해 자신에게 파일을 이메일로 보내는 이야기를 항상 재밌게 생각했습니다. ;)
7. DropBox, OneDrive 등... 방법 3과 4와 동일한 업로드/다운로드 문제가 발생합니다.
8. USB 플래시 드라이브 실제로 꽤 가능하고 빠르지만, 하나를 가지고 다녀야 하고 친구의 기기와 인터페이스할 수 있는 적절한 어댑터도 가져야 한다는 것을 기억해야 합니다. 저는 항상 주머니에 하나를 넣고 다니지만, 함께 공유하는 사람의 기기가 귀하의 드라이브를 지원할지 여부는 엉뚱한 경우가 많습니다.
9. 친구에게 휴대전화 카메라로 당신의 휴대전화 화면 사진/비디오를 찍으라고 하세요! 품질이 좋지 않은 데이터 전송 성공률은 100%입니다!
공유가 작동하지 않으면 어떻게 되나요?

요즘은 우리에게 별로 좋은 상황이 아닌 것 같죠?

해결책

간단히 말해서 효율적이고 보편적인 솔루션이 되기 위해서는 다음과 같은 것이 필요합니다.

  1. 모든 기기에서 사용 가능
  2. 서버에 업로드하거나 다시 업로드하지 않고도 직접 WiFi 전송을 지원합니다.
  3. 4K 비디오를 480p로 다시 압축하지 않습니다.
  4. 전화 신호가 잡히지 않는 곳에서도 작동합니다.

이제 모든 기기에 미리 설치되어 있고, 일반적으로 허용되는 프로토콜을 사용하여 다른 컴퓨터에 접속할 수 있고, 파일을 업로드/다운로드할 수 있는 기능이 있다면 좋을 텐데요...

무엇...

좋다...

에이...

웹 브라우저!

Windows CE가 HTML 5를 지원하나요? 멋지죠!

그럼 어떻게 작동할까요?

그렇다면 웹 브라우저는 어떻게 파일을 전송하는가?

기본 단계는 3가지입니다.

  1. 두 장치를 동일한 무선 네트워크/핫스팟에 연결합니다.
  2. 친구가 브라우저에 귀하의 장치 주소를 입력하도록 하세요.
  3. 원하는 만큼 탐색, 보기, 다운로드 및 업로드하세요
2023년에도 여전히 휴대폰의 핫스팟을 사용하는 것이 파일을 전송하는 가장 빠른 방법입니다. 특히 산을 하이킹하는 경우 더욱 그렇습니다!

이 접근 방식의 장점은 다음과 같습니다.

  1. 웹 브라우저가 있는 모든 기기에서 작동합니다(오늘날의 거의 모든 기기).
  2. 모든 파일을 개별적으로 클릭하거나 보내기를 누르고 친구가 수락할 때까지 기다릴 필요가 없습니다. 친구는 원하는 것을 보고 직접 파일을 다운로드할 수 있습니다.
  3. 한 사람씩이 아니라 여러 사람이 동시에 탐색할 수도 있습니다.

물론, 이 서버는 iPhone과 iPad에서는 실행되지 않습니다. Apple이 iOS 기기의 파일 시스템에 대한 접근을 제한할 뿐만 아니라 Cydia로 루팅하지 않으면 Linux 프로그램을 실행할 수 없기 때문입니다.

다행히도 서버를 실행하려면 *하나*의 기기만 있으면 되므로 Apple 친구들은 여전히 문제 없이 Android 휴대전화에 연결하여 파일을 다운로드하고 업로드할 수 있습니다. 게다가 AirDrop은 Apple 기기에서만 작동하기 때문에 다른 시스템을 사용할 수 없다는 데 이미 익숙해져 있습니다. ;)

서버 설치

속도와 효율성을 위해 Pafera File Server는 Rust로 작성된 Linux/Windows 앱이므로 불행히도 앱 스토어에서 그냥 다운로드할 수 없습니다. 나중에 누군가가 저에게 돈을 지불할 의향이 있다면 Kotlin으로 앱 스토어 버전을 만들 수도 있지만, Jerry Maguire가 아니라면 지금은 Rust 버전으로 만족해야 할 것입니다.

다행히도 저보다 훨씬 똑똑한 많은 오픈소스 프로그래머들이 모여서 Android 휴대폰에서 Linux 프로그램을 실행할 수 있는 앱을 만들었고, 그 성공률은 다양했습니다.

따라서 해야 할 일은 휴대폰에 Termux를 설치하고 두 개의 명령을 복사하여 붙여넣고 Enter를 두 번 누르는 것뿐입니다. 한 번의 클릭으로 설치되는 것은 아니지만 SpaceX가 StarShip을 만드는 것도 아니며, 멋진 프로그램으로 가득한 완전히 다른 생태계에 액세스할 수 있습니다.

이건 약물에 취한 뇌예요... 어... Termux에 중독된 휴대전화예요.

설치는 다음과 같습니다.

  1. Termux 앱을 다운로드하세요 F-Droid에서 또는 Codeberg에서
  2. 앱 시작
  3. 다음을 복사하여 터미널에 붙여넣고 Enter를 누르세요.

    curl -O https://pafera.com/installfileserver.sh
    
  4. 터미널에 명령 하나를 더 복사하여 붙여넣고 Enter를 누릅니다.

    bash installfileserver.sh
    
  5. 패키지 업그레이드 과정 중에 메시지가 나타나면 키보드의 Enter 키를 누르세요.
  6. 화면에 표시된 URL을 친구에게 입력하세요.

    디스플레이 중 URL 찾기

이제 서버를 설치한 후에는 언제든지 Termux 세션을 종료하여 종료할 수 있습니다.

그리고 변경을 허용하는 비밀번호로 서버를 다시 시작하려면 다음을 입력하십시오.

./paferafileserver password=yourpasswordhere

Termux로 들어가거나, 위쪽 화살표를 눌러 이전에 입력한 명령을 선택하세요.

알림을 끌어내리고 "근처 공유"를 탭하는 것만큼 쉽지는 않지만 실수로 서버를 실행하지도 않고, 귀찮은 일을 해결할 수 있는 더 많은 기능을 얻을 수 있습니다.

만약 당신이 Rust 프로그래머라면 설치가 훨씬 쉬울 것입니다.

당신이 해야 할 일은 단지 타이핑하는 것입니다

cargo install paferafileserver

화물이 제 역할을 할 때까지 기다리면, 짜잔! 끝났어요!

Windows 또는 Linux에서 Pafera 파일 서버를 실행하려면 아래에서 미리 빌드된 바이너리를 사용할 수 있습니다. 7-집 기록 보관소.

  1. 리눅스(amd64)
  2. Android 7+에서 Termux
  3. Linux(Userland의 Debian용 armv7h - Android 5 및 6)
  4. 윈도우 독립 실행형 exe
  5. Windows 전체(FFmpeg 및 ImageMagick 포함)

파일 탐색

친구가 귀하의 서버 URL을 브라우저에 입력하면 휴대폰은 이와 비슷하게 보일 것입니다.

Pafera 파일 서버 홈페이지

아무 파일도 보이지 않으면 친구가 JavaScript를 활성화했는지 확인하세요. 저희는 스크립팅을 사용하여 파일을 정렬하고 표시합니다.

간단히 설명드리자면, 왼쪽 상단부터 시스템 메뉴 버튼, 최근 파일 버튼, 홈 디렉토리 버튼입니다.

파일 클릭하기

이미지 섬네일을 클릭하면 슬라이드 쇼가 시작되고, 파일 이름을 클릭하면 파일이 다운로드됩니다.

파일의 메뉴 버튼을 클릭하면 해당 파일의 작업 메뉴가 열리고, 그 아래의 사각형을 클릭하면 파일이 선택됩니다.

여러 파일을 빠르게 선택하려면 첫 번째 파일의 선택 버튼을 클릭한 다음, 마지막 파일의 메뉴 버튼을 클릭하고 "여기까지 선택"을 선택하세요.

시스템 메뉴

시스템 메뉴 팝업

검색 및 심층 검색(단축키 t, f)을 사용하면 몇 글자를 입력하면 해당 글자가 포함된 모든 파일을 볼 수 있습니다.

차이점은 일반 검색은 현재 폴더에 있는 파일만 검색하는 반면 심층 검색은 해당 폴더 내의 모든 폴더도 검색한다는 것입니다.

슬라이드 쇼와 딥 슬라이드 쇼(단축키 z와 x)는 동일한 논리를 따릅니다. 이 폴더 내의 모든 폴더에 이미지를 포함할지 여부에 따라 원하는 것을 선택합니다.

보기 전환(단축키 v)을 사용하면 일반 세부 정보 보기에서 이 폴더 내의 모든 이미지와 비디오의 아이콘 보기로 변경됩니다.

정렬(단축키 s)을 사용하면 파일을 정렬하는 방법을 선택할 수 있습니다. 파일 이름, 크기, 날짜 및 시간 차이를 사용하여 파일을 정렬할 수 있습니다. 저는 개인적으로 시간 차이 보기를 선호하는데, "5분 전"이 "14:55"보다 훨씬 더 유용하기 때문입니다.

최근 파일 보기(단축키 e)는 현재 폴더와 이 폴더 내의 모든 폴더에서 가장 최근에 변경된 512개 파일을 보여줍니다. 홈 폴더에서 이 보기를 사용할 때는 조심하세요. 검사할 작은 파일이 수십만 개라면 모든 파일을 확인하는 데 시간이 걸릴 수 있습니다.

비밀번호 설정(단축키 w)을 사용하면 친구가 비밀번호를 입력하여 파일을 수정, 업로드 및 삭제할 수 있습니다. 이 비밀번호가 없으면 아무도 휴대폰에서 아무것도 변경할 수 없으므로 안전하게 보관하세요. 명령줄에서 다음을 입력하여 설정할 수 있습니다. password=yaddayaddayadda 또는 paferafileserver.cfg에서 다음 형식을 사용합니다.

{
  "password":"yaddayaddayadda"
}

새 폴더(단축키 o)를 누르면 현재 폴더 내에 만들 새 폴더의 이름을 입력하라는 메시지가 표시됩니다.

숨겨진 파일 표시(단축키 i)는 마침표로 시작하여 파일과 폴더를 표시하고 숨깁니다. 이는 Unix에서 이러한 파일이 일반적으로 사용자에게 표시되지 않아야 함을 나타내는 데 사용하는 기호입니다.

원 클릭 다운로드(단축키 k)를 켜면 브라우저에 파일을 표시하는 대신 파일을 클릭하면 즉시 다운로드할 수 있습니다.

단축키 표시(단축키 h)는 폴더 보기와 슬라이드 쇼 보기에서 모두 사용할 수 있는 키를 보여줍니다.

확대(단축키 .) 및 축소(단축키 ,)는 화면의 모든 항목의 크기를 변경합니다. 시스템의 기본 크기가 마음에 들지 않으면 이를 사용하여 페이지를 사용자 지정하세요.

파일 메뉴

파일 메뉴 팝업

여기를 선택하면 이전에 선택한 파일과 이번 파일 사이에 있는 모든 파일을 선택할 수 있습니다. 데스크톱과 모바일 모두에서 링크를 복사하기 위해 마우스 오른쪽 버튼 메뉴를 대체하는 것을 피하는 대체 수단으로 매우 편리합니다.

모두 선택(단축키 a)과 선택 안 함(단축키 n)은 자명합니다. 이를 사용하여 모든 파일을 삭제할 때는 조심하세요. 정말 모든 파일을 삭제하고 싶습니다.

보내기(단축키 g)를 누르면 네트워크에서 Pafera 파일 서버를 실행하는 다른 모든 장치를 볼 수 있는 검사 창이 열립니다.

다른 서버로 파일 보내기

모든 기기는 동일한 서브넷에 있어야 하며 동일한 포트에서 실행되어야 하므로 192.168.0.100에 있고 보내려는 기기가 192.168.1.100에 있는 경우 스캐너는 다른 기기를 감지하지 못합니다. 물론, 해당 기기의 서버에 로그인하여 브라우저를 사용하여 파일을 업로드할 수도 있습니다.

간단하게 말해서, 다른 기기로 보내는 모든 파일은 서버 루트 아래의 "Received"라는 폴더에 수집됩니다. 나중에 바꿀 수도 있지만, 지금은 모든 새 파일이 같은 폴더에 나타나서 나중에 적절한 위치로 옮길 수 있도록 하는 것이 편리합니다.

받은 폴더의 새 파일

다운로드(단축키 l), 이름 바꾸기(단축키 r), 이동(단축키 m), 복사(단축키 c), 삭제(단축키 d), 영구 삭제(p)는 모두 모바일 브라우저에서 다운로드를 제외하고 동시에 여러 파일을 작업할 수 있습니다. 모바일 브라우저에서는 한 번에 하나의 파일만 다운로드할 수 있습니다. 영구 삭제는 실제로 다음을 의미하므로 조심하세요. 영구적인 삭제. 삭제 버튼을 터치하기 전에 항상 다른 장치에 중요한 파일의 사본을 저장하세요.

삭제 취소(단축키 u)는 한 번 삭제되어 ".deleted" 확장자가 붙은 파일에만 사용됩니다. 할 수 없다 영구적으로 삭제된 파일을 다시 가져옵니다. 그것들은 pining이 아닙니다. 그들은 지나갔습니다. 그 파일들은 더 이상 없습니다. 그들은 ex-files입니다.

슬라이드 쇼 사용

슬라이드 쇼 인터페이스. 하단의 모든 것은 클릭 가능합니다.

사람들이 파일 브라우저에서 항상 요구하는 최고의 기능 중 하나는 좋은 슬라이드 쇼입니다. 아들의 사진을 6,000장 정도 휴대폰에 담아서 낯선 사람들에게 보여주면 그 이유를 알기 어렵지 않습니다. ;) 대부분의 SMB 클라이언트는 이미지 미리보기나 슬라이드 쇼가 없으므로 iPhone 파일 앱을 사용하여 특정 이미지 하나를 찾으려고 하면 사용하기가 매우 답답합니다.

Pafera File Server의 슬라이드 쇼 기능은 여러 가지 방법으로 활성화할 수 있습니다.

  1. 이미지의 썸네일을 클릭하세요.
  2. 시스템 메뉴에서 "슬라이드 쇼"를 선택하세요.
  3. 시스템 메뉴에서 "딥 슬라이드 쇼"를 선택하세요.
  4. 검색이나 심층 검색을 통해 보여주고 싶은 파일을 선택하고, 그 다음에 첫 번째 이미지의 썸네일을 클릭하세요.

슬라이드 쇼를 시작하는 방법에 관계없이, 맨 위에 현재 이미지의 이름이 있는 삭제 버튼이 있고, 맨 아래에는 무작위, 회전, 종료, 앞으로, 뒤로 기능이 있는 도구 모음이 있습니다.

특정 이미지 번호로 이동하려면 도구 모음에서 이미지 위치를 클릭하고 원하는 번호를 입력한 후 이동하면 됩니다.

갈 번호 선택

슬라이드 쇼는 스와이프 제스처를 지원하는데, 사실 제가 휴대전화에서 탐색하는 데 선호하는 방법입니다. 이전 이미지로 가려면 엄지를 살짝 왼쪽으로 스와이프하고, 다음 이미지로 가려면 오른쪽으로 스와이프하고, 현재 이미지를 삭제하려면 위로 스와이프하고, 슬라이드 쇼를 종료하려면 아래로 스와이프하기만 하면 됩니다.

노트북을 사용하거나 블루투스 키보드를 휴대폰에 연결했다면 슬라이드 쇼를 사용하는 것이 더 쉬워집니다.

왼쪽 화살표 이전 이미지
오른쪽 화살표 다음 이미지
위쪽 화살표 이미지 삭제
아래쪽 화살표/Escape 슬라이드 쇼 종료
아르 자형 랜덤 이미지
g 이미지 번호로 이동
시계 반대 방향으로 90도 회전
이자형 시계방향으로 90도 회전

구성

Pafera File Server는 같은 폴더의 paferafileserver.cfg라는 JSON 파일에서 구성하거나, key=value 형태의 명령줄 인수에서 구성할 수 있습니다. 둘 다 지정하면 명령줄 인수가 구성 파일 설정을 재정의합니다.

일반적인 명령줄은 다음과 같습니다.

paferafileserver [hostname=localhost] [serverroot=/home/jim] [password=password] [ip=0.0.0.0] [port=9999]

따라서 포트 5000의 모든 방문자에게 Jim의 사진 디렉토리를 제공하려면 다음을 사용합니다.

paferafileserver serverroot=/home/jim/Pictures port=5000

serverroot를 지정하지 않으면 기본적으로 홈 디렉토리가 사용됩니다.

IP와 포트를 지정하지 않으면 기본값인 0.0.0.0:9999로 설정됩니다.

또한, 다음 옵션을 명령줄에 입력하여 사용자가 올바른 비밀번호를 가지고 있더라도 특정 기능을 비활성화할 수 있습니다.

disabledelete
disablerename
disablemove
disablecopy
disablenewfolder
disabledelete
disablepermanentdelete
disablesend
disableupload

모든 명령줄 인수는 현재 폴더의 paferafileserver.cfg라는 JSON 파일에 지정할 수도 있습니다.

{
  "hostname":               "JimsLaptop",
  "password":               "SecretPassword12345",
  "disabledelete":          1,
  "disablepermanentdelete": 1
}

여러분에게 가장 적합한 방법을 선택하시면 됩니다.

Windows의 경우 실행 파일의 바로 가기를 만들고 바로 가기에 인수를 지정하는 것이 가장 쉬운 방법입니다.

Android용 Termux의 경우, 실행 파일을 시작하는 가장 쉬운 방법은 F-Droid에서 Termux 위젯 앱을 설치하고 위젯 스크립트 내에서 명령줄을 구성하는 것입니다.

미래 계획

이것은 단지 Rust를 가지고 놀기 위한 재미있는 소개 프로젝트였기 때문에 현재로서는 더 이상의 변경은 계획되어 있지 않지만 다른 누군가가

  1. 앱 스토어에 올리기 위해 Kotlin/Swift 버전을 작성하세요.
  2. 이 앱을 여러 언어로 번역하세요
  3. 다양한 CSS 테마 만들기
  4. 백업 및 복원을 위한 rsync와 같은 알고리즘 구현
  5. 또는 당신이 생각할 수 있는 다른 것이 있다면

저는 이 간단한 프로젝트에 어떤 추가 사항이라도 기꺼이 환영할 것입니다.

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

저자 소개

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