2012年4月21日 星期六

Mac OSX 獨家傳檔服務 -- AirDrop


去年問世的 Mac OSX 10.7 Lion 帶來一系列的新功能,雖然號稱 "Back to the Mac",強調 "將 iOS 的使用習慣及部分功能帶回 Mac OSX",但我認為 Lion 的改變不只是增加些許功能,而是從系統核心到 Cocoa framework 整體的大改版,此舉的缺點是犧牲了很多軟體的向下相容性 (甚至連向上相容性都損失不少),但優點是 ... 使用者可以享受更新更方便的技術,而且藉由 Apple 的調教及設計,使用者在享受這些新科技的時候是完全無痛的。

在眾多新功能裡,AirDrop 算是比較低調的一個,雖然在 Lion 的簡介影片中有特別介紹,但我相信它的使用率應該不是很高,甚至有不少人至今從未有機會用過。不過,AirDrop 的出現是有著象徵性的意義的,也就是點對點的無線檔案傳輸,聽起來沒什麼,可是這種看似理所當然的事情至今仍未有一個完美的解法。試想,當我們想把檔案從一個裝置傳至另一個裝置時,以往我們都是怎麼做的?
  1. 用隨身碟 "手動傳輸"
  2. 利用 Bluetooth 配對傳檔
  3. 寄到自己 (或他人) 的電子郵件信箱,再到另一個裝置裡收信
  4. 上傳到免費空間 (包括 Dripbox 或 Skydrive),再到另一個裝置裡下載
  5. 用 IM 軟體傳檔
  6. 使用檔案分享軟體 (例如 HFS)
我想我上面舉的六種方法應該已經涵蓋了九成九的使用情境了,但是每一種都很麻煩、限制又多,且不夠直覺。比如說,除了前兩點之外,其餘都必須連線至網際網路!而 Bluetooth 速度慢、距離短,始終為其詬病所在,更別提多桌機根本就沒有安裝 Bluetooth 套件!那麼,使用隨身碟似乎還是最可靠的?傳大檔也方便 ... 可是越來越多行動裝置不能接 USB 隨身碟,而且隨身碟病毒這麼多 ..... 所以,隨著科技的進步,我們是不是該找一個更新更好的方式去解決這個問題?

對於龜毛的 Apple 來說,特別是 "很討厭線" 的 Steve Jobs,當然會要求這件事要以 "無線" 完成,此外,它不僅傳輸速度要夠快,而且不需要輸入帳號密碼等討厭的步驟,更重要的是,不需要有網際網路的連結!於是,他們給出的答案就是 AirDrop。


AirDrop 有以下幾個特色:
  1. 點對點傳輸,不需網際網路連線
  2. 向其他支援 AirDrop 的 Mac 廣播自己的存在,並接受傳檔服務
  3. 不需任何登入手續,有在 AirDrop 視窗裡的電腦都可以直接傳檔
  4. 使用 WiFi 網路傳輸,並以 WPA2 加密
看完上述幾項特點,如果你是個老 Apple 用戶,應該會想起一個被遺忘已久的功能 -- Bonjour (圖示如右圖)。Bonjour 是 Apple 開發的獨家功能 [1],在 Mac OSX 10.2 之前稱為 Rendezvous,特點是 "Zero Configuration Networking",也就是一開啟它,它就能主動跟其他開啟 Bonjour 的電腦連線,進而分享檔案或互傳文字訊息,而不需要做任何設定!比如說 iChat 搜尋鄰近好友、iTunes 的音樂分享功能,以及在 iOS 4.2 裡登場的 AirPrint 都是使用 Bonjour,而最近發表的 iPhoto for iOS 裡面有著一個照片分享的功能 "Beam" 也是使用 Bonjour [2]。可是,Bonjour 需要有網際網路連線 ..... 或者正確地說,是各個裝置必須存在於同一個網段內,也就是它們不是直接點對點互連,而是要透過路由器或代理伺服器 (proxy) 去溝通彼此。現在,AirDrop 克服了網路連線的問題,讓 Mac 們可以直接地互連,不用考慮所在之處是否有網路可用,表面上只是一個不起眼的功能,實際上已是一大突破,綜合前一篇文章 "淺談點對點傳輸技術 WiFi Direcr" 的結論,我認為 AirDrop 是:

AirDrop = WiFi Direct + Bonjour

在點對點連線方面,AirDrop 取用 WiFi Direct 的技術 [3],但 WiFi Direct 僅僅讓裝置相連,缺乏客戶端的使用介面,而 Bonjour 則扮演與其他應用程式整合的角色,讓這一系列的新技術能夠更簡單易用。然而,由於 AirDrop 使用 WiFi Direct 技術,所以它就不支援較舊的無線網卡了,而 Apple 也在官網上公布了支援 AirDrop 的 Mac 機種及如何檢查是否支援 (其實一看 Finder 側邊欄就知道了)。

在 Apple 公布 "不支援名單" 之後,想當然耳,網路上就開始流傳一些 "撇步",硬是讓自己的獅子 (Lion) 能夠支援空投 (AirDrop),除了更換網卡之外,最有名的應該是這個網頁所提及的 default write 系統設定值修改方法:

defaults write com.apple.NetworkBrowser BrowseAllInterfaces 1 (請連成一行)
killall Finder

看起來很神奇,不是嗎?坦白說我並不是很清楚這個預設被關閉的功能到底是什麼,但非常有趣,只是傳檔的兩者都必須調整此設定,而且作業系統都必須要是 Mac OSX 10.7 才行 (廢話)。

(20120828 Update :補充一下,依此法所開啟的 AirDrop 欠缺了兩項功能:1. 它並不提供加密傳輸;2. 它不提供點對點互連,兩台 Mac 必須要處於同一個區域網路下。)

不過呢 ... 如果只是要做簡單的檔案分享,我倒是可以提供一個小技巧,它不僅支援較舊版本的 Mac OSX,嚴格說起來還是跨平台的喔!還有,它也不需要連線至網際網路,只要用 WiFi 直接相連兩個裝置即可,來看看怎麼做吧~
  1. 啟動 WiFi (AirPort)
  2. 選擇 "建立網路 ..." (如右下圖)
  3. 建立一個無線網路,名字可隨便取
  4. 開啟其他裝置的 WiFi,搜尋你剛建立的無線網路,並直接連上該台 Mac
  5. 掛載網路硬碟或是利用其他第三方軟體互傳檔案
相當簡單,不是嗎?其實就是把自己的 Mac 變成基地台而已 [4],我家的 G4 Mac mini 也能使用,如果是用 Windows 或 Linux 應該也有類似的方法,只是我沒有親自測試過就是了。不過呢,iOS device 不支援這招,因為它們不能 "建立" 網路,只能 "接收" 網路,所以 .... 要馬使用 Bluetooth 傳檔 (可用 Mover+,雖然這玩意最近都是負評),不然就是開啟 Personal Hotspot 吧~這樣就是個名符其實的基地台了。

另外,AirDrop 之所以優秀,是因為它提供一個非常簡單好用的客戶端使用介面,不然兩裝置相連之後也不知道該怎麼辦。關於傳檔軟體有很多種選擇,以桌面系統為例,可以直接將連結上的電腦當作是網路磁碟掛載,或使用 HFS 之類的檔案伺服器軟體來分享檔案 [5];至於行動裝置則必須使用專門的 App,例如有點貴的 FileBrowser (這玩意就是貴在它能掛載眾多網路磁碟),或是我之前提過的 AirDrive 都是不錯的解決方案,有興趣的人可以多試用幾套看看。

=================

就我的猜測,Lion 的 AirDrop 只是個開端,點對點傳輸的功能將來勢必會被 Apple 延伸到其他行動裝置上,到時候 Apple 產品的生態圈會更加完整,傳檔也會變成更簡單直覺的事,讓我們拭目以待吧~


附註
1. 雖然 Bonjour 後來也有 Windows 版,不過應該沒啥人用吧?它內建在 iTunes for Windows 中。
2. 其實 iPhoto for Mac 也有照片分享的功能,但我想 iOS 版的知名度應該比較高 ... sigh ....
3. 依照 Macworld 的文章,AirDrop 的確使用 WiFi Direct 技術,但有經過修改,故不算完整的 WiFi Direct (正確地說,AirDrop 沒有完全符合 WiFi Direct 的標準)。
4. 不知道修改設定值的方法是不是用類似的原理 ..... 所以跟網卡新不新沒關。
5. Mac OSX 10.5 之後可以用內建的 Python 去開啟簡易的檔案伺服器,指令為:

python -m SimpleHTTPServer [portnumber] 

上面的指令有限制字母大小寫都要相同才行,而 portnumber 可以隨便取,預設是 8000,不要跟其他連線服務用到的 portnumber 相同即可,另外,使用前請先將系統防火牆關閉。如果是 10.3 及 10.4,其 Python 的版本太舊故沒有包含 SimpleHTTPServer,至 Python 官網下載新版即可。

8 則留言:

  1. 我也覺得AirDrop是Lion的重點功能之一XD
    像我這樣朋友幾乎都用Mac時,就超級方便的,傳大型檔案也很快!
    一直很想買FileBrowser,可是卻不知道要怎麼用,我沒有NAS

    回覆刪除
  2. 將 Mac 與 iOS device 以 WiFi 相連後 (不管是不是直接相連,透過路由器也可以),就可以將 Mac 當作網路磁碟掛載,以存取特定資料夾的檔案。

    回覆刪除
  3. 如你所猜的Airdrop在一年多後被放到iOS上。而以iDevice的盛行率,相信他會比起OS X版的Airdrop更受歡迎。

    回覆刪除
    回覆
    1. 其實並不是 "更受歡迎",而是 "更多人用",因為 Mac 用戶少,周圍沒有人用 Mac (還要是 Lion 以上的作業系統及支援 AirDrop) 也是孤掌難鳴,事實上用過 AirDrop for Mac 的人都給其不錯的評價,但時常 "沒辦法用",而 iOS 就沒有這個問題。

      雖然我覺得 Instashare 應該哭哭了,但 AirDrop for iOS 的支援度有不少限制,連我的 iPhone 4S 都不支援,所以這個功能還是離我很遠,哈哈哈~ (我猜八成又是像 AirPlay Mirroring 的相容性取捨,把某些 "Apple 認為" 不夠強的硬體排除在外 ...)

      Instashare
      http://instashareapp.com

      刪除
  4. iOS並的檔案系統是各自獨立不互通的,所以「檔案互相傳遞」的功能搬到手機上,不知道除了照片與自拍影片之外,會不會包括像MP3,Word, Excel之類的檔案能在手機間互相傳遞,頗令人好奇。

    技術上在WiFi網路內,利用Bonjour互相搜尋,然後把「檔案」傳給另一個iOS設備的這個功能,iOS 7的AirDrop並非首創,基本上是Bonjour再加上在iOS上跑個像是網站伺服器Apache般的所謂TCP Daemon。以傳相片這個領域而言,最早有AirFrame利用AirPlay的技術在iOS之間傳照片,技術上AirFrame「假裝」自己是AppleTV「誘拐」其他iOS,讓相本App以為自己是把照片傳給AppleTV,後來Apple在Bonjour功能上動手腳,把AirFrame作掉。

    以AirFrame的方法而言,只要有一方安裝AirFrame就可以,另一方是iOS自帶的相本App,但自從Bonjour被動手腳之後,必須雙方都安裝相同的App,現在你可以在App Store上找到我開發的 CoViewer,如果雙方都安裝CoView互傳照片就很方便,這已經是非Apple所能做到的極致了。自從AirFrame陣亡之後,想這麼幹的人大概元氣大上,目前除了CoViewer之外似乎沒有其他App利用這樣的技術。現在AirDrop來宣示主權,我的CoViewer頓時灰頭土臉,不過還是比AirFrame直接被幹掉好多了。那些AirDrop沒有支援的手機也許可試試CoViewer(AirDrop不支援iPhone 4S?這太意外了)。因為CoViewer同時提供Web版,所以Android也能直接以WiFi下載iOS裡面的照片。這點肯定是AirDrop不會有的功能。

    回覆刪除
    回覆
    1. 你好,首先感謝您提供的情報,而且我實際安裝了 CoViewer,試用過後有幾點感想,不過我想先依段落回應你的留言。

      ====

      1. 如果你有看完發表會中 AirDrop for iOS 的片段,就會知道它是內建於 share sheet 之中,所以理論上是任何類型的檔案都支援。

      2. 你的 CoViewer 及 AirFrame 都是專注於照片分享及 "展示",但 AirDrop 不只如此,它的價值有三:

      a. 任何檔案都支援。
      b. 不用設定網路,只需選擇聯繫人。
      c. 點對點傳輸,不用連結網際網路。

      相較之下,若只是架一個小的照片伺服器,丟給朋友一個網址,這種功能的 App 在 App store 上一大堆,而且也不只支援照片。

      所以你說 AirDrop 把你打得灰頭土臉?我看不是吧,CoViewer 的核心價值在於 "照片同步展示",跟 AirDrop 的取向根本是兩回事,若要比檔案傳輸,別說 AirDrop 了,其他檔案管理 (如 Good Reader 或 Phone Drive 等) App 就能把 CoViewer 打趴在地。所以,我認為你應該以 "照片展示" 為賣點宣傳,這才是 CoViewer 獨一無二無法取代的價值所在。


      Phone Drive
      https://itunes.apple.com/tw/app/id431033044?mt=8

      刪除
  5. 給克里斯
    Airdrop是用Wi-Fi不是藍芽
    不信你把藍芽開著,Wi-Fi關掉
    Finder/Airdrop會叫你開Wi-Fi

    回覆刪除
    回覆
    1. Josh,我文章裡從來沒有說過 AirDrop 用藍芽,那是 Bonjour,不是 Bluetooth。

      刪除