Mega.py
Python library for the Mega.co.nz API, currently supporting:
- login
- uploading
- downloading
- deleting
- searching
- sharing
- renaming
- moving files
This is a work in progress, further functionality coming shortly.
For more detailed information see API_INFO.md
How To Use
Create a Mega account
First, create an account with Mega .
Install mega.py package
Run the following command, or run setup from the latest github source.
pip install mega.py
Import mega.py
from mega import Mega
Create an instance of Mega.py
mega = Mega()
Login to Mega
m = mega.login(email, password)
# login using a temporary anonymous account
m = mega.login()
Get user details
details = m.get_user()
Get account balance (Pro accounts only)
balance = m.get_balance()
Get account disk quota
quota = m.get_quota()
Get account storage space
# specify unit output kilo, mega, gig, else bytes will output
space = m.get_storage_space(kilo=True)
Get account files
files = m.get_files()
Upload a file, and get its public link
file = m.upload('myfile.doc')
m.get_upload_link(file)
# see mega.py for destination and filename options
Export a file or folder
public_exported_web_link = m.export('myfile.doc')
public_exported_web_link = m.export('my_mega_folder/my_sub_folder_to_share')
# e.g. https://mega.nz/#F!WlVl1CbZ!M3wmhwZDENMNUJoBsdzFng
Find a file or folder
folder = m.find('my_mega_folder')
# Excludes results which are in the Trash folder (i.e. deleted)
folder = m.find('my_mega_folder', exclude_deleted=True)
Upload a file to a destination folder
folder = m.find('my_mega_folder')
m.upload('myfile.doc', folder[0])
Download a file from URL or file obj, optionally specify destination folder
file = m.find('myfile.doc')
m.download(file)
m.download_url('https://mega.co.nz/#!utYjgSTQ!OM4U3V5v_W4N5edSo0wolg1D5H0fwSrLD3oLnLuS9pc')
m.download(file, '/home/john-smith/Desktop')
# specify optional download filename (download_url() supports this also)
m.download(file, '/home/john-smith/Desktop', 'myfile.zip')
Import a file from URL, optionally specify destination folder
m.import_public_url('https://mega.co.nz/#!utYjgSTQ!OM4U3V5v_W4N5edSo0wolg1D5H0fwSrLD3oLnLuS9pc')
folder_node = m.find('Documents')[1]
m.import_public_url('https://mega.co.nz/#!utYjgSTQ!OM4U3V5v_W4N5edSo0wolg1D5H0fwSrLD3oLnLuS9pc', dest_node=folder_node)
Create a folder
m.create_folder('new_folder')
m.create_folder('new_folder/sub_folder/subsub_folder')
Returns a dict of folder node name and node_id, e.g.
{
'new_folder': 'qpFhAYwA',
'sub_folder': '2pdlmY4Z',
'subsub_folder': 'GgMFCKLZ'
}
Rename a file or a folder
file = m.find('myfile.doc')
m.rename(file, 'my_file.doc')
Contact Support
For paid priority support contact mega@odwyer.software.
Release History
1.0.8 (2020-06-25)
- Fixes find method returning the wrong file when more than one file exists with that name.
- Handle new shared file URLS.
1.0.7 (2020-03-25)
- Fix login by calculating public RSA exponent instead of hardcoding.
1.0.6 (2020-02-03)
- Fixes RSA public exponent issue.
- Switches dependency pycrypto to pycryptodome.
1.0.5 (2019-11-18)
- Increase the wait time in between failed API request retries.
1.0.4 (2019-11-18)
- Increase the wait time in between failed API request retries.
1.0.3 (2019-11-12)
- Fixes broken
downloadmethod. - Changes
downloadanddownload_urlmethods to return the path to the downloaded file, previously returnedNone. - Added LICENSE.
1.0.2 (2019-11-07)
- Reverts, "Replace pycrypto dependency with pycryptodome" as breaks login process.
1.0.1 (2019-11-06)
- When a request fails due to EAGAIN response, retry with exp backoff up to 20 seconds.
- Adds logging, removes print statements.
- Replace pycrypto dependency with pycryptodome.
- Removes Python 2 specific code.
1.0.0 (2019-10-31)
- Removes broken method
get_contacts(). - Adds support for login with a v2 Mega user account.
- Adds
export()method to share a file or folder, returning public share URL with key. - Adds code, message attrs to RequestError exception, makes message in raised exceptions include more details.
- Alters
create_folder()to accept a path including multiple sub directories, adds support to create them all (similar to 'mkdir -p' on unix systems). - Adds
exclude_deleted=Trueoptional arg tofind()method, to exclude deleted nodes from results.
0.9.20 (2019-10-17)
- Python 3 bugfix to
uploadmethod.
0.9.19 (2019-10-16)
- Python 3 support and bugfixes.
- Update packaging code.
- Added changelog.
0.9.18 (2013-07-04)
- Unknown
Metadata
Release files for mega.py 1.0.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mega.py-1.0.8.tar.gz | 18.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mega.py-1.0.8-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 38.1 kB
Release files / mega.py-1.0.8.tar.gz
| Download URL | mega.py-1.0.8.tar.gz |
|---|---|
| Size | 18.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0632664abda8b7e4d0bbd68460da4b331d3d7d63db9afe7d3ce6fcb4f137c1a9
|
|
BLAKE2b-256 checksum How to use checksums |
470d211ed7689526f27bc6138f611267553ff27ad539bb4529095e80dd48f21b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/None pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.8.0
|
Release files / mega.py-1.0.8-py2.py3-none-any.whl
| Download URL | mega.py-1.0.8-py2.py3-none-any.whl |
|---|---|
| Size | 19.5 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
863b2dd59f8e639402fef3c67778fd63895fc1b678127e7006df1544f04e737c
|
|
BLAKE2b-256 checksum How to use checksums |
a35144a1085a091c27ade09e122d5abdafb4b6400265081879a7c4e32973a175
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/None pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.8.0
|