とりあえず

とりあえず

インフラエンジニアのおっさんが趣味で調べたことをまとめたり適当に。

オンラインストレージに直接ダウンロードしたい 作り方〜まとめ

eyecatch 前回に続きまして、「Web上にあるファイルをオンラインストレージに保存」の作り方編です。

変更履歴

2016.12.06 母艦指示で利用するコマンドをcurlからwgetに変更


作り方

IFTTTの「Add File from URL」を使う

用意するもの


手順

個人的に起動を楽にしたいのでiPhoneアプリの「Workflow」から起動させることにしました。

  1. Workflowを作成
  2. IFTTTのWorkflowチャンネルをトリガー指定
  3. アクションにオンラインストレージの「Add File from URL」を指定


使い方

  1. URLをコピー
  2. Todayウィジェットから先ほど作成したWorkflowを実行
  3. IFTTTレシピが実行される
  4. オンラインストレージにファイルが保存される


ちなみに

オンラインストレージへの保存がうまくされないときは、レシピ編集画面からログを確認できます。

IFTTT log


母艦にダウンロード指示

用意するもの

  • Mac(あるいはPCなど母艦となるもの)
  • iPhone
  • iPhoneアプリ「Workflow」
  • オンラインストレージのアカウント


手順

  • あらかじめ自宅にVPN接続できるようにしておく
  • あらかじめMacでSMB共有できるようにしておく
  • あらかじめMacSSH接続できるようにしておく

※手抜きですみません…

  1. Workflowを作る
    • Workflow



2016.12.06追記

初回投稿時はcurlにてダウンロードするだけだったのですが

  • 母艦でダウンロードが終わるまでWorkflowが待機状態になる
  • 複数ファイルをまとめてダウンロードできない

という問題点があったことからscreenとwgetを使うようにしました。

screen利用の理由

  • SSH接続中にバックグラウンドで処理を行える
    • SSHセッションが終了してもダウンロードを続ける
    • ダウンロードが終わると自動的にscreenは終了される
  • ちなみに「wget -b」では何故かダメでした
  • WorkflowのSSH接続は、割とLinuxSSHコマンドと近いのかも。screenの使い方まんま流用でしっかり動きました。

wget利用の理由

  • 単純に複数のURLを一括で処理して欲しかったので

参考サイト様

↓バックグラウンドダウンロードできるようになりました
リモートホストにバックグラウンドで処理を実行させる方法 - Qoosky

wgetのインストール方法
Mac OS X Yosemiteでwgetコマンドが使えない。 - 大人になったら肺呼吸

その他

そういえばSSH経由の時だけwgetにパスが通らない… まぁ使い勝手には影響しないので放置します。


追記ここまで



使い方

  1. 屋外の場合は自宅にVPN接続しておく
  2. URLをコピー
  3. Todayウィジェットから先ほど作成したWorkflowを実行
  4. SMB共有されたフォルダにファイルが保存される
  5. オンラインストレージにファイルが同期される


まとめ

というわけでまとめですが、オススメは母艦を使う方法です。トラブルがあっても自己解決しやすいですから。(当初の目的であったWebからWebに保存ではなくなってますが)

Macをお持ちの方は簡単に

  • VPNサーバー
  • SMBサーバー

を構築できますので、ぜひお試しください。

今までVPNが使えてもリモートデスクトップくらいにしか使っていなかったのですが、初めて割と便利と思えることができた気がします。

Workflowからのシェルコマンド実行は応用が効きそうなので、今後も色々試したいと思います。

それではまた。

【蛇足】紆余曲折メモ

自分用の今回何をやったかの備忘録

  • IFTTTからオンラインストレージへの保存
  • 連続で使うとエラーが出る
  • Zapierならどうかと試すが、そもそもURLからダウンロードできない
  • Amazon S3に保管するほうが安全ではないか?
  • Raspberry piからs3fsでAmazon S3に繋ぎ、それをSMB共有すればいいのでは?
    • →自宅内で使うときに遅そう。環境作るの面倒そう。
  • もういっそのことMacのSMB共有を使って、フォルダをオンラインストレージと同期でいいか

ちなみに今回はやってませんが「母艦にダウンロード指示」の方でwgetを使えば、複数のURLをクリップボードに入れて順次ダウンロードとかもできそうです。できました。