Exemple #1
0
 public static function send($settings = array(), $file, $send_id = '', $delete_after = false, $clear_uploads = false)
 {
     $settings = self::_init($settings);
     if ('1' == $settings['disabled']) {
         self::_error(__('Error #48933: This destination is currently disabled. Enable it under this destination\'s Advanced Settings.', 'it-l10n-backupbuddy'));
         return false;
     }
     if (is_array($file)) {
         $file = $files[0];
     }
     if ('' == $settings['_multipart_id']) {
         // New transfer. Populate initial Stash settings.
         $file_size = filesize($file);
         $remote_path = self::get_remote_path();
         // Has leading and trailng slashes.
         $backup_type = backupbuddy_core::getBackupTypeFromFile($file);
         if ('' == $backup_type) {
             // unknown backup type
             $backup_type_path = '';
         } else {
             // known backup type. store in subdir.
             $backup_type_path = $backup_type . '/';
         }
         $additionalParams = array('filename' => $remote_path . $backup_type_path . basename($file), 'size' => $file_size, 'timezone' => get_option('timezone_string'));
         $response = self::stashAPI($settings, 'upload', $additionalParams);
         if (!is_array($response)) {
             $error = 'Error #832973: Unable to initiate Stash (v2) upload. Details: `' . $response . '`.';
             self::_error($error);
             return false;
         }
         $backup_type = backupbuddy_core::getBackupTypeFromFile($file);
         if (pb_backupbuddy::$options['log_level'] == '3') {
             // Full logging enabled.
             pb_backupbuddy::status('details', 'Stash API upload action response due to logging level: `' . print_r($response, true) . '`. Call params: `' . print_r($additionalParams, true) . ' `.');
         }
         $settings['stash_mode'] = '1';
         // Stash is calling the s32 destination.
         $settings['bucket'] = $response['bucket'];
         $settings['credentials'] = $response['credentials'];
         $settings['_stash_object'] = $response['object'];
         $settings['_stash_upload_id'] = $response['upload_id'];
         /*
         $settings['_multipart_id'] = $response['upload_id'];
         $settings['_multipart_partnumber'] = 0;
         $settings['_multipart_file'] = $file;
         $settings['_multipart_remotefile'] = $response['object']; //$remote_path . basename( $file );
         $settings['_multipart_counts'] = pb_backupbuddy_destination_s32::_get_multipart_counts( $file_size, $settings['max_burst'] * 1024 * 1024 ); // Size of chunks expected to be in bytes.
         $settings['_multipart_backup_type'] = $backup_type;
         $settings['_multipart_backup_size'] = $file_size;
         */
     }
     //error_log( print_r( $settings, true ) );
     // Send file.
     $result = pb_backupbuddy_destination_s32::send($settings, $file, $send_id, $delete_after, $clear_uploads);
     if (false === $result) {
         // Notify Stash if failure.
         self::_uploadFailed($settings);
     }
     return $result;
 }