PythonでMegaを使用しオンラインストレージにファイルをアップロード

PythonでMegaを使用しオンラインストレージにファイルをアップロードしてみます。

MegaはMega.co.nz(オンラインストレージサービス)のAPI用のライブラリです。Pythonの標準ライブラリではありませんので、事前にインストールする必要があります。

なお、Mega.co.nz(オンラインストレージサービス)を利用するためには、事前にアカウントを取得する必要があります。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■Megaをインストールする

Megaをインストールを行いますが、今回はpipを経由してインストールを行うので、まずWindowsのコマンドプロンプトを起動します。

pip install mega.py

起動後、上記のコマンドを入力し、Enterキーを押します。

なお、今回は、pythonランチャーを使用しており、Python Version 3.8.5にインストールを行うために、pipを使う場合にはコマンドでの切り替えを行います。

py -3.8 -m pip install mega.py

切り替えるために、上記のコマンドを入力し、Enterキーを押します。

Defaulting to user installation because normal site-packages is not writeable
Collecting mega.py
Downloading mega.py-1.0.8-py2.py3-none-any.whl (19 kB)
Collecting tenacity<6.0.0,>=5.1.5
Downloading tenacity-5.1.5-py2.py3-none-any.whl (34 kB)
Collecting pathlib==1.0.1
Downloading pathlib-1.0.1.tar.gz (49 kB)
|████████████████████████████████| 49 kB 1.5 MB/s
Collecting pycryptodome<4.0.0,>=3.9.6
Downloading pycryptodome-3.10.1-cp35-abi3-win_amd64.whl (1.6 MB)
|████████████████████████████████| 1.6 MB 1.6 MB/s
Requirement already satisfied: requests>=0.10 in c:\users\user_\appdata\roaming\python\python38\site-packages (from mega.py) (2.25.1)
Requirement already satisfied: six>=1.9.0 in c:\users\user_\appdata\roaming\python\python38\site-packages (from tenacity<6.0.0,>=5.1.5->mega.py) (1.16.0)
Requirement already satisfied: idna<3,>=2.5 in c:\users\user_\appdata\roaming\python\python38\site-packages (from requests>=0.10->mega.py) (2.10)
Requirement already satisfied: chardet<5,>=3.0.2 in c:\users\user_\appdata\roaming\python\python38\site-packages (from requests>=0.10->mega.py) (4.0.0)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\users\user_\appdata\roaming\python\python38\site-packages (from requests>=0.10->mega.py) (1.26.5)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\user_\appdata\roaming\python\python38\site-packages (from requests>=0.10->mega.py) (2021.5.30)
Using legacy setup.py install for pathlib, since package 'wheel' is not installed.
Installing collected packages: tenacity, pathlib, pycryptodome, mega.py
Running setup.py install for pathlib ... done
Successfully installed mega.py-1.0.8 pathlib-1.0.1 pycryptodome-3.10.1 tenacity-5.1.5

Enterキーを押すと、インストールが開始され、上記のように「Successfully installed」と表示されます。これが表示されれば、Megaが正常にインストールされたことになります。

なお、今回はMegaのバージョン1.0.8をインストールしました。

■Megaのユーザー(アカウント)の詳細を取得する

インストール後、まずはMegaのユーザー(アカウント)の詳細を取得するスクリプトを書いていきます。

■コード

from mega import Mega 

mega = Mega()
email = "メールアドレス"
password = "パスワード"

m = mega.login(email,password)

details = m.get_user()

print(details)

インポートでMegaモジュールを呼び出します。次にmegaという変数を作成し、Mega.pyのインスタンスを作成します。その後、email,passwordという変数を作成し、Megaのログイン情報(メールアドレスとパスワード)をそれぞれ入力し、格納します。

格納後、mという変数を作成し、その中でmega.login()関数を使用します。mega.login()関数の括弧内の第1の引数,パラメータに、email変数を渡します。第2の引数,パラメータに、password変数を渡します。これでログインを行います。

その後、detailsという変数を作成し、その中でget_user()関数を使用します。これでユーザー(アカウント)の詳細を取得します。

取得した情報をprint()関数で出力します。

■実行

このスクリプトを「uploadfiles_storage.py」という名前で保存し、コマンドプロンプトから実行してみます。

実行してみると、ユーザー(アカウント)の詳細情報が出力されました。

■Megaを使用しオンラインストレージにファイルをアップロード

次に、Megaを使用しオンラインストレージにファイルをアップロードするスクリプトを書いていきます。

■コード

from mega import Mega 

mega = Mega()
email = "メールアドレス"
password = "パスワード"

m = mega.login(email,password)

file = m.upload(r"C:\Users\user_\test\test.xlsx")

print(m.get_upload_link(file))

オンラインストレージにファイルをアップロードするためには、mという変数を作成し、その中でmega.login()関数を使用します。mega.login()関数の括弧内の第1の引数,パラメータに、email変数を渡します。第2の引数,パラメータに、password変数を渡します。これでログインを行います。

その後、fileという変数を作成し、その中でupload()関数を使用します。upload()関数の括弧内には、引数,パラメーターとして、アップロードするファイルの名前と場所を渡します。渡した後、格納。これでアップロードができます。

最後に、get_upload_link()関数を使用します。get_upload_link()関数の括弧内には、file変数を渡します。これでアップロードした後にパブリックリンク(共有リンク)を取得することができます。

取得したパブリックリンク(共有リンク)をprint()関数で出力してみます。

なお、今回アップロードするファイルは「test.xlsx」です。ファイルが置かれている場所は「C:\Users\user_\test(フォルダパス)」です。

■実行

先ほどの「uploadfiles_storage.py」のスクリプトを変更し、コマンドプロンプトから実行してみます。

実行してみると、ファイルがアップロードされ、パブリックリンク(共有リンク)が発行。発行されたパブリックリンク(共有リンク)を出力させることができました。

アップロードするファイルによっては、アップロードに時間がかかる場合があります。

アップロード後、MEGA(https://mega.nz/)にログインし、実際にアップロードされたか確認しましたが、今回指定したファイルがアップロードされていることが確認できました。

コメント

タイトルとURLをコピーしました