Go to file
Ethan Dalool 9492be4899 Cache the result of get_files into variable _files.
get_files is a slow method, and there are lots of calls to it
throughout the code. Not changing any methods to use this cached
value just yet, but it really helps in the REPL at least.
2020-10-01 11:23:50 -07:00
src Cache the result of get_files into variable _files. 2020-10-01 11:23:50 -07:00
.gitignore Adds export method, fixes login for v2 accounts, rm get_contacts() method 2019-10-22 22:39:42 +01:00
.travis.yml speed up CI 2020-06-25 21:48:06 +01:00
API_INFO.md api info file started 2013-05-23 23:51:57 +01:00
HISTORY.md Back to development: 1.0.9 2020-06-25 21:44:31 +01:00
LICENSE Add LICENSE 2019-11-12 09:27:39 +00:00
MANIFEST.in lint 2020-06-25 21:36:43 +01:00
README.md docs 2020-06-25 21:40:12 +01:00
examples.py various fixes 2020-06-25 21:03:16 +01:00
requirements-dev.txt various fixes 2020-06-25 21:03:16 +01:00
requirements.txt updates history and ranges reqs 2020-02-03 19:46:25 +00:00
setup.cfg various fixes 2020-06-25 21:03:16 +01:00
setup.py Back to development: 1.0.9 2020-06-25 21:44:31 +01:00
tox.ini speed up CI 2020-06-25 21:48:06 +01:00

README.md

This repository is forked from https://code.richard.do/richardARPANET/mega.py


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

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()
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')