如何使用Dropbox上传数据库?

时间:2015-06-19 05:18:06

标签: database sqlite server dropbox sync

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

1 个答案:

答案 0 :(得分:0)

好吧,假设您的数据库是一个MySQL数据库,其主机环境可以让您运行cron作业,访问您的FTP等...这里有一个可能的代码片段,我只需要自己做Dropbox API,您实际上可以在此处阅读完整的帖子,以获取漫游(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

希望这会有所帮助;如果您需要更多的步骤或开发人员,请在顶部的链接进行全面浏览。