LoginSignup
0
0

MEGAからAmazon Photosに写真を移管

Last updated at Posted at 2023-07-02

概要

MEGAにアップロードしていた写真を一括でAmazon Photosに移し替えました。
その方法の備忘録です。
やることは単純で、以下2つになります。

  1. MEGAから写真をローカルにダウンロード
  2. 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

試しに1フォルダだけダウンロードした結果↓↓
SnapCrab_NoName_2023-6-24_17-3-55_No-00.png

ODrive

次にODriveというサービスを使用してAmazon Driveに写真をアップロードします。
このサービスを通じて複数のクラウドストレージを管理できます。
ただし、MEGAはサポートしていません:cry:
そのため、今回は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上で写真が閲覧できることを確認しました。
SnapCrab_NoName_2023-6-24_17-6-4_No-00.png

再び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に保存していました:camera:

私がMEGAを使い始めた当時(多分2014年ぐらい)は無料で50GB使えるクラウドでした。1
その後Amazon Photosのサービスが始まり、社会人になってからPrime会員になってAmazon Photosも利用するようになりました。2

カメラで撮った写真はMEGA、スマホはAmazon Photos(自動アップロード設定)で管理していました。
ただ二重管理がめんどくなったのと、50GBもいずれ埋まるだろうと思いAmazon Photosで管理することにしました。
Amazon Photosでは、フォルダ分けをすることはできませんがアルバムを作成する機能はあるので、それを利用して写真を分類分けしています。

アルバムの作成はAmazon Photos上でAmazon Driveのフォルダを指定して個別に作成できるので、画面でポチポチして作成しました。
1枚ずつ写真を選択してアルバムを作成する、みたいな手間はかからずに済んで良かったです。

  1. 2023年7月時点では新規登録すると20GBの容量を利用できます

  2. Amazon PhotosはPrime会員なら写真を容量無制限で保存でき、その他ファイルは5GBまで追加課金なしで利用できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0