PHPおよびDropbox。 ユーザーファイルのリモートストレージ

申込み


多くの場合、Webアプリケーションを開発する際には、ユーザーファイルの安定したストレージを整理する問題について考える必要があります。 また、同時にディスクスペースによって制限されている場合、中規模のファイル交換の作成、およびこれらのバックアップを使用しても、非常に困惑します。

解決策


解決策として、 PHP <-> Dropboxスキームをお勧めします 。 Dropboxは、新しいユーザーごとに2Gbの仮想ディスク領域が割り当てられ、ファイルの以前のバージョンにロールバックできるという点で興味深いものです。 これにより、ファイルが完全に削除されることのない安定したストレージが提供されます。

カスタマイズ



準備する

最初に、 OauthライブラリをPHPに追加する必要があります。
sudo pecl install oauth 


コンパイル中にエラーが発生した場合、 PECLの開発バージョンを配置します。
 sudo apt-get install libpcre3-dev 


次に、php.iniに追加します。
extension=oauth.so

設置

さらに作業を進めるには、PHPでDropboxを操作するためのライブラリダウンロードする必要があります 。 ダウンロードした後、 Dropboxフォルダーをアーカイブからアプリケーションのスクリプトディレクトリに解凍し、 サンプルフォルダーのファイルを近くに配置します。 これらの例では、次の方法を示します。


仕事

仕事のためにDropboxのアカウントが必要であり、それを通じて新しいアプリケーションを登録し、そのキーを取得することをすぐに警告します。 Dropbox Webサイトで登録できます。 登録後、開発者セクションにアクセスし 、新しいアプリケーションを追加します。 アプリケーションがDropboxと連携できるようにするアプリキー (キーとシークレット)を受け取ります

ユーザー作成

次に、Dropboxフォルダーの横で解凍したcreateaccount.phpファイルを開きます。 変数consumerKeyおよびconsumerSecretの値を設定します。
 $consumerKey = ''; //  Key,  Dropbox $consumerSecret = ''; //  Secret,  Dropbox 


次に、createAccount()関数の必要なパラメーターを設定します。
 var_dump($dropbox->createAccount('mrhandsome@example.org','Mr','Handsome','password goes here')); 


このスクリプトを実行すると、Dropboxに新しいアカウントを作成します(たとえば、サイトの新しいユーザー用)。

ファイルをDropboxにアップロードする

次に、作成したユーザーのリポジトリにファイルをアップロードするには、新しいスクリプトを作成する必要があります。
 <?php $consumerKey = ''; //  Key,  Dropbox $consumerSecret = ''; //  Secret,  Dropbox include 'Dropbox/autoload.php'; $oauth = new Dropbox_OAuth_PHP($consumerKey, $consumerSecret); $dropbox = new Dropbox_API($oauth); //  $tokens = $dropbox->getToken('mrhandsome@example.org', 'secretpassword'); $oauth->setToken($tokens); $h = fopen('/local/path/to/file','r'); //    $dropbox->putFile('newPath.txt',$h); //  ?> 


Dropboxからファイルをダウンロードする

ファイルをダウンロードするには、同じコンテンツでスクリプトを作成しますが、putFile()関数の代わりにgetFile()を使用します。
 echo( $dropbox->getFile('newPath.txt') ); 


Dropboxのファイルを削除する

類推によって削除するには、delete()を使用します。
 $dropbox->delete('newPath.txt'); 


アカウント統計

次を使用して、Dropboxの空き領域を制御します。
 var_dump($dropbox->getAccountInfo()); 

このメソッドは、ユーザーと占有ディスク領域の統計を提供します。 ユーザーの個人ファイル用の2Gbで十分だと思いますが、記入した場合は、すぐに何かを削除する必要があることをユーザーに警告できます。

おわりに


最後に、最も基本的な機能のみをリストアップしたことを付け加えます。 最大の統合機能を使用するために、Dropbox API for PHPに精通することをお勧めします。

Source: https://habr.com/ru/post/J111202/


All Articles