Beispiel #1
0
 /**
  * Uploads backup file from server to Amazon S3.
  *
  * @param 	array 	$args	arguments passed to the function
  * [as3_bucket_region] -> Amazon S3 bucket region
  * [as3_bucket] -> Amazon S3 bucket
  * [as3_access_key] -> Amazon S3 access key
  * [as3_secure_key] -> Amazon S3 secure key
  * [as3_directory] -> folder on user's Amazon S3 account which backup file should be upload to
  * [as3_site_folder] -> subfolder with site name in as3_directory which backup file should be upload to
  * [backup_file] -> absolute path of backup file on local server
  * @return 	bool|array		true is successful, array with error message if not
  */
 function amazons3_backup($args)
 {
     if ($this->mmb_function_exists('curl_init')) {
         require_once 'lib/s3.php';
         extract($args);
         if ($as3_site_folder == true) {
             $as3_directory .= '/' . $this->site_name;
         }
         $endpoint = isset($as3_bucket_region) ? $as3_bucket_region : 's3.amazonaws.com';
         try {
             $s3 = new mwpS3(trim($as3_access_key), trim(str_replace(' ', '+', $as3_secure_key)), false, $endpoint);
             if ($s3->putObjectFile($backup_file, $as3_bucket, $as3_directory . '/' . basename($backup_file), mwpS3::ACL_PRIVATE)) {
                 return true;
             } else {
                 return array('error' => 'Failed to upload to Amazon S3. Please check your details and set upload/delete permissions on your bucket.', 'partial' => 1);
             }
         } catch (Exception $e) {
             $err = $e->getMessage();
             if ($err) {
                 return array('error' => 'Failed to upload to AmazonS3 (' . $err . ').');
             } else {
                 return array('error' => 'Failed to upload to Amazon S3.');
             }
         }
     } else {
         return array('error' => 'You cannot use Amazon S3 on your server. Please enable curl extension first.', 'partial' => 1);
     }
 }