Skip to content

glutamatt/mega-php-client

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MEGA PHP Client Library

PHP client library for the MEGA API.

This version come from https://github.com/smartinm/mega-php-client. Thanks to contributors !

I've added some features to use the max bandwidth thanks to forks

require_once 'vendor/autoload.php';

use Glutamatt\Mega\MEGA;

$mega = new MEGA() ;
$link = 'https://mega.co.nz/#!IdOfThEFilE!ThELonG_KeyOfDaFiLE' ;
$mega->public_file_save_from_link($link, 'where_file_will_be_saved/' );

Features

2013/10/17 : Links from http://megacrypter.com/ handled

Note: This library is still under development and incomplete, so the API is subject to change.

Requirements

  • PHP 5.x
  • PHP Mcrypt extension
  • PHP OpenSSL extension
  • PHP cURL extension
  • PHP pcntl extension

Installation with composer

{
    "require": {
        "glutamatt/mega": "dev-master"
    },
    "minimum-stability": "dev"
}

Creating the client

Using the constructor

$mega = new MEGA();

Using a static factory method

$mega = MEGA::create_from_login($email, $password);

This is equivalent to:

$mega = new MEGA();
$mega->user_login_session($email, $password);

Changing the default MEGA API server

MEGA::set_default_server(MEGA::SERVER_EUROPE);

Working with public files

Download public files not require authentication.

Gettings file info

$mega = new MEGA();

$file_info = $mega->public_file_info($ph, $key);
var_dump($file_info);

// Print filename and size
echo 'Filename: ' . $file_info['at']['n'];
echo 'Size: ' . $file_info['s'];

Using links

$file_info = $mega->public_file_info_from_link($link);

This is equivalents to:

$info = MEGA::parse_link($link);
$file_info = $mega->public_file_info($info['ph'], $info['key']);

Downloading public files

// Save file to current directory.
$filepath = $mega->public_file_save($ph, $key);
echo 'File saved in ' . $filepath;

// Equivalent using exported link
$filepath = $mega->public_file_save_from_link($link);
echo 'File saved in ' . $filepath;

See below for more examples.

Downloading files

Using streams

// Write to file
$fp = fopen($file, 'wb');
$content = $mega->public_file_download($ph, $key, $fp);
fclose($fp);

Returning content

// Get content using temporary stream
$content = $mega->public_file_download($ph, $key);

Saving to disk

// Save file to temporary directory.
$tmp = sys_get_temp_dir();
$file = $mega->public_file_save($ph, $key, $tmp);
echo 'File saved in ' . $file;

Private files

Listing

$mega = MEGA::create_from_user($email, $password);

$files = $mega->node_list();
print_r($files);

// Get file info
$file_info = $mega->node_file_info($files['f'][5]);
print_r($file_info);

Downloading

  • The node_file_save() function is equivalent to public_file_save()
  • The node_file_download() function is equivalent to public_file_download()

User session

Store session

$mega = MEGA::create_from_user($email, $password);

// ...

// Get current session (as a base64 string)
$session = $mega->session_save();

// Store in a safe place!
store_session($session);

Restoring session

// Retrive saved session
$session = get_session();

// Create client from previous session
$mega = MEGA::create_from_session($session);

// ...

Credits

  • This library has been written by Sergio Martín (@smartinm) as a port of official MEGA Javascript code.

  • Part of the code is based on the work done by Julien Marchand.

About

MEGA PHP Client Library

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%