iOS 8向けTransmitはどこでもファイル転送を実現

iOS 8向けTransmitはどこでもファイル転送を実現

Box、Dropbox、その他数多くのクラウドベースのファイル同期サービスが存在するにもかかわらず、多くの人はファイルを従来型のインターネットファイルサーバーに散りばめています。Webサーバーでは、HTMLページから参照される添付ファイルをアップロードするためにSFTPが必要になるかもしれません。AmazonのCloudFrontコンテンツ配信ネットワークを通じて配信されるアセットを扱うために、AmazonのSimple Storage Service(S3)を使用しているかもしれません。あるいは、iOSアプリからアクセスするためにWebDAVサーバー上のファイルを管理する必要があるかもしれません。

Mac OS Xでは、ここ数年間、Transmitが私のお気に入りのファイル転送アプリでした。高度な機能を備え、特にAmazon S3の多くの特殊機能への対応が進み、時とともに進化してきました(「Transmit 4、ファイル転送を強化」2011年1月21日の記事参照)。例えば、Content-Typeヘッダーを送信せずにCSSファイルをS3にアップロードするとtext/css、Webブラウザに正しく送信されない可能性があります。Transmitは数年前にこの問題に対処する機能を追加しました。

TransmitがiOSに登場と聞いた時、最​​初はちょっとおふざけかもしれないと思いました。開発元のPanicはユーモアで知られているからです。iOSには既に様々な種類のサーバーアクセスアプリが数多く存在し、MacにおけるTransmitの強みは、ファイル転送の接着剤としての役割が大きく、様々なリモートサーバーに保存されているファイルをプレビュー、表示、編集、管理できるという点にあります。しかし、iOS 8で拡張機能のサポートが追加されたことで、他のアプリ開発者による明示的な統合なしに、Transmitの機能がiOS全体で利用できるようになることにすぐに気づきました。

Transmit iOS(App Storeで9.99ドル)は、iOSアプリ内でリモートファイルにアクセスする必要があり、これまでファイルの移動やアクセスのための回避策に膨大な時間を費やしてきた人にとって、強力なツールです。(Transmitには、多くのiOSアプリに直接統合されているDropboxのサポートは含まれていません。)

サービスとしてのファイル— 私は古い人間なので、サーバーとの間でファイルをやり取りする唯一の手段が FTP (File Transfer Protocol) だった時代を覚えています。その後、多くのプロトコルが加わりましたが、今でも驚くほど広く使われています。Mac 版 Transmit と同様に、iOS 版は暗号化されていないプレーン FTP (これは最悪です! ホストにアップグレードを促しましょう!) と、2 種類のセキュア FTP をサポートしています。1 つは現在では非推奨となった暗黙的 SSL で、別のポートを使用し、TLS/SSL 証明書ベースの鍵交換と暗号化を使用してすべてを暗号化します。もう 1 つは明示的 SSL とも呼ばれる TLS/SSL を使用した FTP で、通常の FTP
接続と同じポートを使用します。

Transmit は、暗号化に SSH を使用する、広く普及している SFTP (Secure FTP)、やり取りに HTTP を使用するオープン バージョンとセキュア バージョンの両方を備えたファイル サービス標準の WebDAV、オンライン小売業者の巨大なストレージ ファームである Amazon S3、および DreamHost の S3 互換 DreamObjects サービスとの接続も作成できます。


接続は手動で追加することも、Mac OS X版Transmitから設定をインポートすることもできます。Panic社は独自の同期機能「Panic Sync」を開発しており、既にTransmit iOSに組み込まれていますが、Mac版はまだアップデートされていません。(TransmitのWebサイトでは、Panic Syncにおけるデータの所有権と暗号化キーの取り扱いについて詳細に説明しています。)Mac版Transmit 5がリリースされると、すべての接続とその他の設定を
簡単に最新の状態に保つことができます。現在、複数のiOSデバイスで動作しているTransmit iOS間で同期が可能です。

Transmit 5がリリースされるまでは、Mac版Transmitから接続情報をエクスポートし、そのファイルをTransmit iOSにインポートするという簡単な6ステップの手順を実行する必要があります。PanicはFAQに手順を掲載しています。セキュリティ上の理由から、パスワードは転送されないため、再度入力する必要があります。1Passwordもインストールしておけば、非常に便利です(1Passwordの新しいiOS版については、2014年10月1日の記事「1Password 5がiOS 8で新たな高みに到達」をご覧ください)。

Transmit のユーザーインターフェースは、ローカル画面とリモート画面に分かれています。ローカル画面には、アプリ内に保存されているファイルとフォルダが表示されます。リモートサーバーや他のアプリから iOS の共有ボタン機能を使ってファイルをアプリに転送できます。


リモート画面では、サーバーの管理と接続を行います。+ボタンをタップすると、サーバーの種類を選択し、認証情報、パス、その他の詳細を入力できます。操作は簡単で、他の場所で詳しく説明されているので、ここでは詳しく説明しません。

ローカルビューとリモートビューには、ほとんどの機能が共通しています。フォルダをタップするとそのフォルダ内に移動し、右にスワイプするとディレクトリの1つ上の階層に移動します。階層化されたビュー(左上)をタップすると、上の階層を選択できます。

ディレクトリを表示したら、+ ボタンをタップして空のファイルを追加したり、グループ化用のフォルダーを作成したり、写真から画像を引き出したり、写真を撮ったり、ビデオを撮影したり、iCloud Drive からインポートしたりできます。


ファイルをタップすると、サポートされているメディアやドキュメントタイプのプレビュー(TransmitはHTMLもレンダリングします!)を含むすべての詳細情報が表示されます。「Transmitで開く」をタップすると、全画面またはスクロール可能なプレビューが表示されます。サイズの大きいリモートファイルの場合は、ファイルが取得されるまで表示または再生できません。アクセス制御を変更するには、「権限」をタップしてください。


さらに下をタップすると、次の項目が表示されます。

  • 送信先: ファイルをShare対応のアプリや操作に渡す
  • Transmitのローカルファイルストレージにファイルを追加するためのダウンロード先
  • iCloud Driveにアップグレードした場合は、iCloud Driveに追加してください
  • 適切なメディアタイプについては、フォトライブラリに追加してください

パスのコピー、サーバー内またはローカルストレージ内でのファイルの移動、複製、削除も可能です。(もちろん、これらのオプションはすべて、適切な権限が必要です。)

右下にある取り出しボタンをタップして、リモートのファイル サーバー ビューを終了します。

堅牢なセキュリティ— Panic社には、万一紛失したり不適切にロックダウンされたりすれば多くのリモート資産が漏洩する可能性のあるアプリであればなおさら、しっかりとしたセキュリティ対策が期待されます。同社はいつものように、その期待に応えています。まず、前述の通り、お気に入りのエクスポートではパスワードが不要で、Panic Syncの設計によりデバイス間での安全なデータ交換が可能です。

パスワードは入力または貼り付けできますが、1Passwordとの連携により、すべてがより便利になります。1Passwordに既に追加済みの接続を設定する際、またはインポートしたお気に入り項目のパスワードを入力する際、パスワード入力欄の鍵アイコンをタップすると、1Passwordからパスワードを取得できます。PanicはLastPassなどの他のパスワードアプリとの連携にも力を入れており、1Passwordがリストに表示されます。リストで1Passwordをタップし、表示されるシートのアイコンをタップすると、適切なパスワードのリストが表示されます。

iOSのサンドボックス化と1Passwordの現在のアプローチにより、1PasswordはTransmit iOSで現在選択されているサーバのドメイン名に一致するパスワードのみを表示します。そのため、ドメイン名が関連付けられていないサーバを使用している場合、またはドメイン名を追加せずに1Passwordに認証情報を保存している場合(s3.amazonaws.comAmazon S3など)、1Passwordはどのパスワードを入力すればよいか判断できません。この問題を回避するには、ログインエントリを作成し、Webページ欄にリモートサーバのドメインを設定し、ユーザー名とパスワード欄に認証情報を入力します。(S3はアクセス文字列とキーを使用します。これらは対応しています。)

多くのSSHユーザーは、リモートサーバーに公開鍵を保存することで、ユーザー名とパスワードによるログインを回避しようとします。これはSFTPでも機能し、Transmit iOSもこの機能をサポートしています。この機能はMac OS Xでネイティブに設定でき、追加の設定は必要ありません。(何を言っているのかわからない場合は、こちらの説明をお読みください。これは便利なショートカットですが、セキュリティ上の問題が別にあります。)

Transmitの設定画面で「キー」をタップし、「+」ボタンをタップします。新しいキーを生成するか、ペーストボード(他のアプリからコピーしたもの)、ローカルに保存したファイル、またはiTunesの「ファイル転送」タブからインポートできます。(後者の場合は、iOSデバイスをiTunesに接続し、iTunes上部のツールバーにある「App」ボタンをクリックし、「ファイル共有」リストからTransmitを選択して、キーを右側のペインにドラッグしてください。)


例えば、SSHキーを使ってサーバーの1つに接続したいと考えました。Transmit iOSで以下の手順に従って、SSHで使用される公開鍵/秘密鍵ファイルであるid_rsaをインポートしました。

  1. SFTP経由でMacBook Airへの接続を作成します。(手順については、PanicのFAQをご覧ください。)
  2. [表示オプション]をタップし、[隠しファイル]を有効にします。
  3. SSH キーが保存されている .ssh ディレクトリをタップします。

  4. id_rsa を選択し、「ドキュメントにダウンロード」をタップします。

  5. [設定] > [キー] をタップします。

  6. 「キー」で、「+」ボタンをタップし、「ローカルからインポート」をタップします。

  7. id_rsa を選択してインポートします。(注: Transmit iOS 1.0.1 では、インポートは成功しますが、失敗として報告されます。)

  8. id_rsaキーファイルに、他のファイルと区別するための一意の名前を付けてください。ファイルをタップし、次に名前をタップします。ここで変更を加えて「完了」をタップしてください。

SSHキーをインポートしたら、安全な接続を確立し、保存する際に使用できます。リモートサーバーに接続し、「パスワード」フィールドのキーアイコンをタップし、ドロップダウンリストから「キー」を選択します。ここで、保存済みのSSHキーを選択できます。キーを選択すると、「パスワード」フィールドの名前が「キー」に変わり、キーアイコンが灰色から青色に変わります。完了したら「保存」をタップして、この接続を保存してください。

Transmit iOS 内でこれらのデータをどのように保護するかを設定するには、「設定」>「Touch ID とパスコード」をタップしてください。(Touch ID 非搭載デバイスの場合は、「パスコード」と表示されます。)パスコード入力を求めるまでの時間を最長 30 分まで設定でき、通常は 4 桁の PIN だけでなく、より複雑なコードも選択できます。Touch ID を有効にすると、Transmit へのアクセス方法に関わらず、パスコードは不要になり、指紋認証が優先されます。

Panicはフェイルセーフ機能も搭載しています。「設定」>「Touch IDとパスコード」で「データ消去」を有効にすると、パスコードの入力に10回失敗すると、アプリはローカルファイル、設定、パスワードをすべて削除します。データを同期しているか、キーとパスワードのバックアップを取っている限り、このオプションをオンにしておくことをお勧めします。物理的な強制は、Touch IDとパスコードのセキュリティを全て無意味にする可能性が高いため、非常に機密性の高い情報を扱う場合は、この機能に頼らないでください。

共有— アプリ単体でもファイルの閲覧は可能ですが、iOS 8の共有機能とドキュメントピッカー機能を介して他のアプリと連携させるには、それだけでは不十分です。これらの機能のいずれか、または両方をサポートしているiOSアプリであれば、Transmit iOSで使用できます。共有機能はファイルをTransmitにプッシュし、ドキュメントピッカー機能はTransmitからファイルを取得します。

例えば、Tweetbot を使っていて、友人が可愛らしい愛犬の写真を投稿したとします。iOS 8 の共有ツールを使って、その写真を Mac に保存したいとします。その場合の手順は以下のとおりです。

  1. 画像をタッチして押し続けると、共有シートがポップアップ表示されます。

  2. 上部のアプリリストに「Transmit」が表示されるので、タップします。

  3. Transmit の Touch ID タイムアウトを過ぎた場合は、指紋で認証します。

  4. ローカル/リモート サーバーのリストが表示され、そこから Transmit iOS で構成された項目またはローカル ストレージを選択できます。

  5. この画像をMacBook Airにプッシュしたいとします。保存リストでMacBookの項目をタップし、保存したいフォルダに移動します。

  6. ここで「アップロード」をタップすると、ファイルが転送されます。

Document Picker についてですが、例えば外出中に Amazon S3 アカウントから Dropbox にファイルを追加したいとします。Dropbox の最新バージョンは Document Picker をサポートしていますが、事前に少し設定が必要です。

  1. Dropbox で、右上の [その他] ボタンをタップし、[ファイルを追加] をタップします。

  2. Transmit をインストール後、初めてこの操作を行う際は、「その他」をタップし、「ストレージプロバイダの管理」画面で Transmit を有効にしてリストに表示させる必要があります。有効にすると、今後「ファイルを追加」をタップするたびに Transmit が表示されます。

  3. 「その他」>「ファイルを追加」>「Transmit」をタップすると、Transmitピッカーが表示されます。共有と同様に、Amazon S3アカウントなど、事前に設定されたTransmit接続を使用できます。

たとえば、S3 サーバーに接続してアップロードした画像を選択すると、その画像は Transmit によってダウンロードされ、Dropbox アプリに転送され、すぐに Dropbox サーバーと同期されます。

ドキュメント編集機能を持つアプリの場合、ドキュメントピッカーは理論上はラウンドトリップを提供します。つまり、ドキュメントピッカーでファイルを選択すると、Transmit を介して変更後のバージョンを同じソースに保存できます。ただし、ドキュメントピッカーをサポートするアプリがまだ少ないため、この機能をテストすることはできませんでした。

今後の展望— 前述の通り、Panic Sync は素晴らしいもので、iOS デバイス間で動作しますが、Mac 用の Transmit 5 がリリースされれば、Panic Sync は Mac と iOS デバイス間の接続や設定の移動を劇的に改善するでしょう。

Mac版Transmitで利用可能な多くの設定項目は、まだTransmit iOSでは利用できませんが、将来的には需要に応じて移行されるでしょう。最も注目すべきは、ファイル拡張子に基づいて、異なるサーバープロトコルのデフォルトの権限を設定できることです。例えば、Mac版Transmitでは、.htmlS3サーバーにアップロードされたファイルに、誰でも読み取り可能、かつ所有者が書き込み可能な権限を付与できます。これはTransmit iOSでも役立つでしょう。また、前述の通り、Mac版のカスタムS3コンテンツヘッダーがTransmit iOSでもサポートされることを期待しています。

これらは些細な欠点ですが、Transmitはすぐに私にとって欠かせないツールになりました。Mac経由でiOSにファイルを転送する際のハブとしてDropboxを使う必要性が減ったことが大きな理由です。もちろんDropboxも便利ですが、Transmit iOSを使えば、Dropboxにまだ保存されていないファイルや、私の多くのサーバー上にあるファイルを扱う際に、Dropboxを介さずに作業できます。

Instapaper、1Password、Swype キーボードと併せて、Transmit iOS を使用すると、iOS 8 での作業が、これまでのどのバージョンの iOS よりもずっとシームレスになります。

Idfte
Contributing writer at Idfte. Passionate about sharing knowledge and keeping readers informed.