2015-06-19 40 views
-2

我剛剛創建了一個條碼掃描器應用程序,並有一個條形碼數據庫。我想將這個數據庫上傳/同步到公司的服務器,然後另一個程序員可以獲得並構建網站UI。不幸的是,我們的服務器不公開(但它可以通過代理連接互聯網),所以我想使用Dropbox來做到這一點。請給我一個有用的示例代碼,或者告訴我在這種情況下上傳/同步數據庫的最佳方式?我非常感謝您的幫助!如何使用Dropbox上傳數據庫?

回答

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

希望這有助於;如果您需要更多的步驟或者您的開發人員,請點擊頂部的鏈接以完整瀏覽。