テクノロジー

【忘備録】RailsでDropBoxApiを利用する

ゆうき's icon'
  • ゆうき
  • 2021/06/14 13:56

2021年6月記載。

とあるゲームサーバーのmysqlの自動バックアップを実装したく、DropBoxのAPIを利用したのですが、その時に行ったことを軽くまとめておきます。

なお、自動バックアップでは「backup + whenever」がよく使われる手法みたいですが、私は(CentOS8のお引越しの件から)サーバーに「backup」の設定を増やしたくなかったので「DropBoxAPI + Google Apps Script」で自動バックアップを試しています。

 

 

1,DropBoxのdeveloperにアプリを登録

https://www.dropbox.com/developers/apps

以前と違い、審査とかは消えていました。通常の設定であれば、即座に使えます。

 

 

2,gemfileに「gem "dropbox_api"」を追加して「bundle_install」

こちらも以前と違い「dropbox-sdk」は使わなくて良いようです。

「dropbox_api」(gem "dropbox-api"は別物なので注意)は設定がとても簡単なので、オススメです。

アクセストークン1つだけで何とでもなります。

 

 

3,DropBoxに登録したアプリのパーミッションの変更

上書きの許可をしておかないと、以下のような401エラーが返却されてきます。

DropboxApi::Errors::HttpError (HTTP 401: {"error_summary": "missing_scope/...","error": {".tag": "missing_scope", "required_scope": "files.content.write"}}):

 

 

4,DropBoxの設定で、アクセストークンを生成

「Access token expiration」で「No expiration(アクセストークンの寿命を無し)」にした後、generateで生成します。

 

 

5,コードを使ってアップロード

class DropboxManager

   def test_update()

       api1 = ENV['DROPBOX_API_TOKEN']

 

       exit if api1.nil?

         

       require 'dropbox_api'

       db_client = DropboxApi::Client.new(api1)

         

       file_name = 'db/test.txt'

       file_content = IO.read file_name

       db_client.upload "/test.txt", file_content

   end    

end

参考:

https://rochefort.hatenablog.com/entry/dropbox_sdk_is_unsupported_ruby

 

上記のコードでは「Railsのdbフォルダ」に作成した「text.txt」を「dropboxのアプリ内のフォルダのトップ」に「test.txt」として保存しています。

ENV['DROPBOX_API_TOKEN']は、文字列でDropBoxのアクセストークン("*******"的なもの)を直に記述しても動きますが、githubにpublicで公開するとクラッキングされるので、サーバーの環境変数から読み込むのが無難です(がprivateなら気にしなくても良いのかもしれない)。

 

 

以上です。(多分)簡単でしたね!

 

Supporter profile icon
Article tip 1人がサポートしています
獲得ALIS: Article like 104.51 ALIS Article tip 1.10 ALIS
ゆうき's icon'
  • ゆうき
  • @yuuki

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

17万円のPCでTwitterやってるのはもったいないのでETHマイニングを始めた話

Like token Tip token
46.60 ALIS
Eye catch
クリプト

Bitcoinの価値の源泉は、PoWによる電気代ではなくて"競争原理"だった。

Like token Tip token
159.32 ALIS
Eye catch
他カテゴリ

ALISのシステム概観

Like token Tip token
5.00 ALIS
Eye catch
クリプト

Uniswap v3を完全に理解した

Like token Tip token
18.92 ALIS
Eye catch
テクノロジー

オープンソースプロジェクトに参加して自己肯定感を高める

Like token Tip token
85.05 ALIS
Eye catch
クリプト

ジョークコインとして出発したDogecoin(ドージコイン)の誕生から現在まで。注目される非証券性🐶

Like token Tip token
38.31 ALIS
Eye catch
テクノロジー

iOS15 配信開始!!

Like token Tip token
7.20 ALIS
Eye catch
テクノロジー

彼女でも分かるように解説:ディープフェイク

Like token Tip token
32.10 ALIS
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

Like token Tip token
161.20 ALIS
Eye catch
クリプト

NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

Like token Tip token
121.79 ALIS
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

Like token Tip token
947.13 ALIS
Eye catch
テクノロジー

なぜ、素人エンジニアの私が60日間でブロックチェーンゲームを制作できたのか、について語ってみた

Like token Tip token
270.93 ALIS