Webコンテンツを自動バックアップ取得してDropboxに転送しよう Part3

今回で「Webコンテンツを自動バックアップ取得してDropboxに転送しよう」の最終回です。第1回目で、ウェブコンテンツを自動で圧縮する方法を紹介し、第2回目でDropboxにファイルを転送する方法を紹介しました。今回は第1回目で圧縮をしたファイルを、第2回目の技術を使って、自動でDropboxへ転送を行います。

なお、DropboxAPIの制限で150Mbまでしかファイルを転送する事が出来ません。圧縮したファイルが150Mb以上の場合は、複数ファイルに分けて転送するなどプログラムを修正する必要があります。

[今回のゴール]

1.Webコンテンツの自動圧縮(2012-09-27 )
2.Dropboxへのファイル転送(第2回目記事参照
3.Webコンテンツを自動圧縮して、自動でDropboxへ転送する ←今回ここです。

[使用するプログラム]
サーバー:Shared Plan ACE01 (他のサーバでもたぶん動きます)
API:Dropbox-PHP
PHP:5.3.6
階層:/html/tar (第1回目で紹介した階層を利用します)

[手順]

  1. プログラムを設置します。
    https://github.com/BenTheDesigner/Dropbox
    上記よりプログラムをダウンロードしサーバーに設置します。
    /html/tar/Dropbox
    /html/tar/Dropbox/OAuth
    /html/tar/Dropbox/API.php
    /html/tar/examples
    ...
  2. /html/tar/examples/bootstrap.phpを修正する。
    (第2回目で手順を書きましたのでそちらを参照下さい)
     
  3. プログラムを作成します。"AceToDrop.php"ファイルを作成し、以下の階層に保存をします。
    /html/tar/examples/AceToDrop.php

    ---------------------php code-------------------------

    <?php

    /**
    * Upload a file to the authenticated user's Dropbox
    * @link https://www.dropbox.com/developers/reference/api#files-POST
    * @link https://github.com/BenTheDesigner/Dropbox/blob/master/Dropbox/API.php#L8...
    */

    /////////////////設定項目///////////////////

    //WebコントロールパネルのUserID、データベースのIDと同等
    $UserID = 'aa115zaox6';
    //バックアップの対象ファイルの保存先
    $TargetFilepPath = '/usr/home/'.$UserID;
    //バックアップ対象ファイル名
    $BackupData='html.tar.gz';
    //プログラムの設置場所
    $ThisProgramPath='/tar/examples';

    // Require the bootstrap
    require_once('bootstrap.php');

    //Webコンテンツの圧縮
    $command = "tar zcfv /usr/home/$UserID/html$ThisProgramPath/$BackupData /usr/home/$UserID/html";
    $sys = system($command, $re);

    if ($re): die("圧縮処理に失敗しました。");
      else: echo "圧縮完了しました";
      endif;

    //Send to Dropbox
    $h = fopen($BackupData,"r");
    $put = $dropbox->putFile($BackupData,$h);
    fclose ($h);

    //Dump the output
    var_dump($put);
    ?>

    詳しくは、「dropbox-php code」を参照して下さい。
     

  4. いたずら防止のために「/html/tar」以下にアクセス制限をかけ、「/html/tar/examples/AceToDrop.php」ファイルをCron登録することで自動で、ウェブコンテンツが圧縮されDropboxへファイルが転送されます。
    (第1回目の記事を参照下さい)

 

便利な機能を紹介しましたけど、引き続きSmartReleaseは利用して下さいね。もうSmartReleaseの自動バックアップいらないじゃんとか無しでお願いします^^;
ちなみにSmartReleaseはバックアップファイルからリストアできたり、テストから公開へのリリース時などに自動でバックアップを取得したりしていますので、さらに便利です。SmartRelease + Dropboxで安心、安全なシステムを構築下さい。

関連タグ: 

この記事をシェアする:

Author
この記事を書いた人:阿部 正幸

KDDIウェブコミュニケーションズ
クラウドホスティング事業本部 エバンジェリスト

CPIスタッフブログ編集長。ACE01,SmartReleaseをリリース後、現職の「エバンジェリスト」として、web制作に関する様々なイベントに登場

Line@登録よろしくお願いします

Web制作に関する情報や、CPIノベルティのプレゼント、サーバーの無償提供などを定期的に発信しています。
ぜひ、登録ください。