概要
MEGAにアップロードしていた写真を一括でAmazon Photosに移し替えました。
その方法の備忘録です。
やることは単純で、以下2つになります。
- MEGAから写真をローカルにダウンロード
- ODirveを使用し、ローカルに保存した写真をAmazon Drive(≒Amazon Photos)にバックアップ
環境
- WSL2 Ubuntu-20.04
- Python 3.8.10
MEGA-CMD
MEGAをコマンドライン上で操作するためにMEGA-CMDを利用します。
(Pythonのモジュールもありますが、メンテされてなくて非推奨です)
アプリダウンロード, インストール
https://mega.io/ja/cmd#downloadapps
サイト下にWindows, Mac, Linuxのアプリがそれぞれ用意されているので、環境にあったものをダウンロード, インストールします。
sudo apt install /path/to/downloaded/megacmd-xUbuntu_20.04_amd64.deb
ログイン, ダウンロード
https://github.com/meganz/MEGAcmd/blob/master/UserGuide.md
ユーザーガイドに沿ってログインし、写真をフォルダごとダウンロードします。
mega-login email password
mega-xxx
でMEGAcmd serverをバックグラウンドで実行することができます。
一方、mega-cmd
ではインタラクティブモードでコマンドを実行することもできます。
passwordを平文で入れなきゃいけないところが🤮
mega-get remotepath localpath
ODrive
次にODriveというサービスを使用してAmazon Driveに写真をアップロードします。
このサービスを通じて複数のクラウドストレージを管理できます。
ただし、MEGAはサポートしていません
そのため、今回はCLI機能を使用しローカルのファイルをクラウドにアップロードしていきます。
ダウンロード, Client起動
基本的にGuidesに沿って操作を行っていくだけです。
od="$HOME/.odrive-agent/bin" && curl -L "https://dl.odrive.com/odrive-py" --create-dirs -o "$od/odrive.py" && curl -L "https://dl.odrive.com/odriveagent-lnx-64" | tar -xvzf- -C "$od/" && curl -L "https://dl.odrive.com/odrivecli-lnx-64" | tar -xvzf- -C "$od/"
nohup "$HOME/.odrive-agent/bin/odriveagent" > /dev/null 2>&1 &
- 起動確認
python "$HOME/.odrive-agent/bin/odrive.py" -h
Webでの操作
https://docs.odrive.com/docs/odrive-sync-agent#using-the-cliagent-all-platforms
Web上でサービスにサインインします。Googleのアカウントを使用しました。
サインインするとサービスのホーム画面が表示され、現在リンクしているクラウドサービスの一覧が表示されます。
+ Link Storage
をクリックし、Amazon DriveをODriveとリンクさせます。
次にローカルからODriveに接続するためにAuth Key
を作成します。
Auth KeyのページのCreate Auth Key
をクリックし、適当な名前をつけてAuth Keyを作成しコピーしておきます。
認証
上述でコピーしておいたAuth Keyを使って認証します。
python "$HOME/.odrive-agent/bin/odrive.py" authenticate 00000000-0000-0000-0000-000000000000-00000000
アップロード
ローカルに保存したフォルダをリモート=Amazon Driveにアップロードします。
backup
コマンドを使用します。
backup
コマンドはODriveのPremium会員の機能になります。
アカウント作成後、7日間は無料でPremium会員の機能を使用できるのでその期間中にやりました。
python "$HOME/.odrive-agent/bin/odrive.py" backup localpath remotepath
remotepathは'/Amazon Drive/Pictures/Web'
を指定しています。
バックアップの状況はstatus
コマンドで確認できます。
python "$HOME/.odrive-agent/bin/odrive.py" status --backups
バックアップが終わり、Amazon Photos上で写真が閲覧できることを確認しました。
再びMEGA-CMD
一括ダウンロード
shellファイルを書いてMEGAにあげているファイルを一括でダウンロードしていきます。
#!/bin/bash
mega-login email password
mega-cd 写真
dirNames=(`mega-ls`)
for dirName in ${dirNames[@]}; do
echo "${dirName}"
mega-get "${dirName}" photos
done
mega-logout
上げていた写真は写真
フォルダ配下に旅行先や科学館・美術館などの展示会の名前でフォルダ分けされているので、まずディレクトリを移動します。
次にls
コマンドでフォルダ名を配列に入れ、ループ処理で1フォルダずつダウンロードしました。
(写真
フォルダごとダウンロードしようとしたら、すぐダウンロードが止まってしまったため)
再びODrive
バックアップ
ダウンロードは時間がかかるため、この間に部屋のお掃除をします。
ダウンロードが終わったらODriveのバックアップを実行します。
python "$HOME/.odrive-agent/bin/odrive.py" backupnow
1度backup
で指定したローカルのディレクトリを再びバックアップさせる場合は、backupnow
を実行することでバックアップのタスクを開始させることができます。
アップロードにも時間がかかるため、この間にお買い物に行きます。
こうして無事にMEGAからAmazon Photosに写真を移し替えることができました。
背景とか
旅行や展示会に行ったときなどに写真を撮ることが趣味で、その写真をMEGAに保存していました
私がMEGAを使い始めた当時(多分2014年ぐらい)は無料で50GB使えるクラウドでした。1
その後Amazon Photosのサービスが始まり、社会人になってからPrime会員になってAmazon Photosも利用するようになりました。2
カメラで撮った写真はMEGA、スマホはAmazon Photos(自動アップロード設定)で管理していました。
ただ二重管理がめんどくなったのと、50GBもいずれ埋まるだろうと思いAmazon Photosで管理することにしました。
Amazon Photosでは、フォルダ分けをすることはできませんがアルバムを作成する機能はあるので、それを利用して写真を分類分けしています。
アルバムの作成はAmazon Photos上でAmazon Driveのフォルダを指定して個別に作成できるので、画面でポチポチして作成しました。
1枚ずつ写真を選択してアルバムを作成する、みたいな手間はかからずに済んで良かったです。