загрузить файл .tar.gz или .sql с сервера в dropbox, используя curl php - PullRequest
0 голосов
/ 24 октября 2018

Я хочу загрузить свою ежедневную резервную копию в аккаунт Dropbox.Я использовал для этого curl php и создал один файл с кодом, как показано ниже ...

<?php
    $api_url = 'https://www.dropbox.com/home/DROP_BOX_FOLDER_NAME'; 
    $token = 'TOKEN'; 

    $headers = array('Authorization: Bearer '. $token,
        'Content-Type: application/octet-stream',
        'Dropbox-API-Arg: '.
        json_encode(
            array(
                "path"=> '23_10_2018--20_35_01.tar.gz',
                "mode" => "add",
                "autorename" => true,
                "mute" => false
            )
        )
    );
    $ch = curl_init($api_url);

    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_POST, true);

    $path = $filename;
    $fp = fopen($path, 'rb');
    $filesize = filesize($path);

    curl_setopt($ch, CURLOPT_POSTFIELDS, fread($fp, $filesize));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    //curl_setopt($ch, CURLOPT_VERBOSE, 1); // debug

    $response = curl_exec($ch);
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    echo($response.'<br/>');
    echo($http_code.'<br/>');

    curl_close($ch);
?>

Файл с кодом выше находится на моем сервере, и мой файл передачи (.sql или .taz.gz)также в моем этом сервере.когда я запускаю этот файл, он не генерирует никаких ошибок, но не передает мои файлы с сервера в Dropbox.У меня есть парни около $ api_url.

1 Ответ

0 голосов
/ 24 октября 2018

попробуйте

<?php
ini_set('display_errors',1);
$api_url = 'https://content.dropboxapi.com/2/files/upload'; 
//$api_url = 'https://www.dropbox.com/home/DROP_BOX_FOLDER_NAME'; 

$filename ='samples.tar.gz';

$token = 'MY TOKEN'; 

$headers = array('Authorization: Bearer '. $token,
    'Content-Type: application/octet-stream',
    'Dropbox-API-Arg: '.
    json_encode(
        [
            "path"=> '/'.$filename,
            "mode" => "add",
            "autorename" => true,
            "mute" => false,
            "strict_conflict"=>false
        ]
    ),
    'data-binary @'.$filename
);
$ch = curl_init($api_url);

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);

$path = $filename;
$fp = fopen($path, 'rb');
$filesize = filesize($path);

curl_setopt($ch, CURLOPT_POSTFIELDS, fread($fp, $filesize));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($ch, CURLOPT_VERBOSE, 1); // debug

$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo($response.'<br/>');
echo($http_code.'<br/>');

curl_close($ch);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...