Como copiar arquivos do servidor para o Dropbox usando PHP? [duplicado]
Esta questão já tem uma resposta aqui:
Como fazer backup de arquivos de um diretório específico para o Dropbox usando apenas o PHP? 3 respostasAcho que encontrei um programa PHP para fazer upload de arquivos de uma pasta específica para minha conta do Dropbox. A solução completa pode ser encontradaAqui.
O código parece funcionar porque arquivos e pastas estão sendo enviados. No entanto, não quero que os arquivos do meu servidor sejam compactados anteriormente: desejo copiar todos os arquivos com os arquivos e as pastas.
Como o código pode ser modificado por favor? Tudo que eu quero é copiar um diretório específico chamado uploads do meu servidor para o dropbox. Depois de modificar o código, consegui chegar a este código:
<?php
// Set the timezone so filenames are correct
date_default_timezone_set('Europe/London');
// Dropbox username/password
$dropbox_email='[email protected]';
$dropbox_pass='password';
// Filenames for backup files
$backup_files = "files_" . date("Y.m.d-h.i.s_l") . '.zip';
// File to backup
$siteroot = "/site/home/public_html/website/parent/child/uploads/";
// Backup all files in public_html apart from the gz
system("zip -r $backup_files $siteroot");
include("DropboxUploader.php");
$uploader = new DropboxUploader($dropbox_email, $dropbox_pass);
$uploader->upload($backup_files,'Backup/Files/');
system("rm $backup_files");
?>
Solução Real Um agradecimento especial a Alireza Noori, halfer e todos os outros.
<?php
// Set the timezone so filenames are correct
date_default_timezone_set('Europe/London');
// Backup all files in public_html apart from the gz
$siteroot = "/path/to/backup";
$dropbox_email='dropbox@email'; //Dropbox username
$dropbox_pass='pass'; // Dropbox password
include("DropboxUploader.php");
$uploader = new DropboxUploader($dropbox_email, $dropbox_pass);
function FolderToDropbox($dir, $dropbox_link){
$dropbox_folder = 'FolderInDropboxRoot/';
$files = scandir($dir);
foreach($files as $item){
if($item != '.' && $item != '..'){
if(is_dir($dir.'/'.$item)) FolderToDropbox($dir.'/'.$item,$dropbox_link);
else if(is_file($dir.'/'.$item)) {
$clean_dir = str_replace("/path/to/backup", "", $dir);
$dropbox_link->upload($dir.'/'.$item,$dropbox_folder.$clean_dir.'/');
}
}
}
}
FolderToDropbox($siteroot,$uploader);
?>