Add support for Mega (mega.co.nz) backend

Bug #1175208 reported by carloslp
32
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Duplicity
Fix Released
Medium
Unassigned

Bug Description

Mega is a file hosting service and successor to Megaupload. Free accounts are provided with 50GB and paid accounts are available for up to 4TB.

An API that allows third party app developers (duplicity) that allows them to easily integrate the MEGA support in their apps.

https://mega.co.nz/#developers

The megatools project, which implements among other things a FUSE filesystem for MEGA, can be used as example to guide in the implementation of this backend for duplicity.

https://github.com/megous/megatools

Thanks a lot!

Tags: wishlist

Related branches

Revision history for this message
Christian Kornacker (ckornacker) wrote :

I branched a mega.co.nz capable version which is based on the gdocs backend.
However, I'm not too familiar with the duplicity code, so the implementation might be far from perfect. It has a requirement on the mega.py python module from https://github.com/ckornacker/mega.py.git (fork of https://github.com/richardasaurus/mega.py.git).

Let me know what you think. Also, I'm in no way related to mega.co.nz :)

Revision history for this message
Christian Kornacker (ckornacker) wrote :

In case you want to test the packages, I've created a PPA.

apt-add-repository ppa:ckornacker/backup
apt-get update
apt-get install python-mega duplicity deja-dup

Revision history for this message
Janne Snabb (snabb) wrote :

Thanks a lot for making this available! Works well here.

Revision history for this message
Marc Mezzarobba (marc+bugs) wrote :

Works well for me as well, except for a minor bug that makes some error messages unreadable:

=== modified file 'duplicity/backends/megabackend.py'
--- duplicity/backends/megabackend.py 2013-05-08 14:15:02 +0000
+++ duplicity/backends/megabackend.py 2013-07-10 11:44:41 +0000
@@ -136,7 +136,7 @@
     def __get_node_name(self, handle):
         """get node name from public handle"""
         files = self.client.get_files()
- return get_name_from_file({handle:files[handle]})
+ return self.client.get_name_from_file({handle:files[handle]})

     def __handle_error(self, message, raise_errors=True):
         if raise_errors:

Changed in duplicity:
importance: Undecided → Medium
milestone: none → 0.6.22
status: New → Fix Committed
iox (input-output)
Changed in duplicity:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.