如何使用 Dropbox 上传数据库?

How to upload database using Dropbox?

我刚刚创建了一个条码扫描器应用程序并拥有一个条码数据库。我想 upload/sync 这个数据库到公司的服务器上,然后另一个程序员可以得到并建立网站 UI。不幸的是,我们的服务器不是 public(但它可以通过代理连接互联网),所以我想使用 Dropbox 来做到这一点。在这种情况下,您能否给我一个有用的示例代码或告诉我 upload/sync 数据库的最佳方法?非常感谢您的帮助!

好吧,假设您的数据库是一个 MySQL 数据库,其主机环境允许您 运行 cron 作业、访问您的 FTP 等...这是一个可能的代码片段对你来说,我只需要自己用 Dropbox API 来做这件事,你实际上可以在这里阅读完整的 post 来浏览一下(Dropbox API and MySQL DB Dump/Upload

<?php
# Include the Dropbox SDK libraries
require_once __DIR__."/dropbox-sdk/lib/Dropbox/autoload.php";
use \Dropbox as dbx;
//your access token from the Dropbox App Panel
$accessToken = 'NOT-A-REAL-TOKEN-REPLACE-THIS-QM8jS0z1w1t-REPLACE-THIS-TOKEN';

//run the MySQL dump and zip;

// location of your temp directory
$tmpDir = "your_temp_dir";
// username for MySQL
$user = "DB_user";
// password for MySQL
$password = "DB_password";
// database name to backup
$dbName = "DB_name";
// hostname or IP where database resides
$dbHost = "your_hostname";
// the zip file will have this prefix
$prefix = "sql_db_";

// Create the database backup file
$sqlFile = $tmpDir.$prefix.date('Y_m_d_h:i:s').".sql";
$backupFilename = $prefix.date('Y_m_d_h:i:s').".tgz";
$backupFile = $tmpDir.$backupFilename;

$createBackup = "mysqldump -h ".$dbHost." -u ".$user." --password='".$password."' ".$dbName." --> ".$sqlFile;
//echo $createBackup;
$createZip = "tar cvzf $backupFile $sqlFile";
//echo $createZip;
exec($createBackup);
exec($createZip);

//now run the DBox app info and set the client; we are naming the app folder SQL_Backup but CHANGE THAT TO YOUR ACTUAL APP FOLDER NAME;

$appInfo = dbx\AppInfo::loadFromJsonFile(__DIR__."/config.json");
$dbxClient = new dbx\Client($accessToken, "SQL_Backup");


//now the main handling of the zipped file upload;

//this message will send in a system e-mail from your cron job (assuming you set up cron to email you);
echo("Uploading $backupFilename to Dropbox\n");

//this is the actual Dropbox upload method;
$f = fopen($backupFile, "rb");
$result = $dbxClient->uploadFile('/SQL_Backup/'.$backupFilename, dbx\WriteMode::force(), $f);
fclose($f);

// Delete the temporary files
unlink($sqlFile);
unlink($backupFile);

?>

您还需要制作一个 config.json 文件,如下所示:

{
"key": "YOUR_KEY_FROM_DROPBOX_APP_PANEL",
"secret": "YOUR_SECRET_FROM_DROPBOX_APP_PANEL"
}

您需要在您的 Dropbox 帐户下创建一个新的 Dropbox 应用程序以获取您的密钥和密码,并为您的用户名生成授权代码,请在登录后在此处执行此操作:https://www.dropbox.com/developers/apps

您还需要下载 Dropbox PHP SDK 库,将其放在服务器上与上述 PHP 代码相同的文件夹中,在此处找到:https://www.dropbox.com/developers/core/sdks/php

希望这对您有所帮助;如果您需要更多分步说明或您的开发人员需要,请转到顶部的 link 进行完整的演练。