web-dev-qa-db-ja.com

Linux(CLI)上のファイルを(bash / sh経由で)Dropboxにアップロードしますか?

Dropboxアカウントにcron(時間単位)でファイルを保存(およびoverwrite)する必要があります。ファイルは、事前定義された場所(他のユーザーと共有されている)に保存する必要があります。

私はDropbox Appを作成する可能性を見てきましたが、独自のドロップボックスフォルダーを作成します。

Dropbox Saverも確認しましたが、ブラウザのようです。

何か超軽量CURLの長い行を考えていたので、ライブラリをインストールする必要はありません。単純なshスクリプトだけですばらしいでしょう。ファイルをPUT(上書き)するだけで、ファイルを読み取る(GET)必要はありません。

ドロップボックス 開発者APIドキュメント を経由していましたが、迷子になりました。

誰か良いヒントはありますか?

19
Roger

まず、既存の共有フォルダにアクセスする必要があるため、「Dropbox API」アプリを「完全Dropbox」アクセスで登録します。

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

次に、アプリのアカウントのアクセストークンを取得します。最も簡単な方法は、アプリのページにある[生成]ボタンを使用することです。このボタンは、アプリの作成後に送信されます。 App Console からもアクセスできます。

次に、この例に示すように、curlを介して指定したパスにアップロードできます。

これにより、現在のフォルダーのローカルパスmatrices.txtからDropboxアカウントの/Homework/math/Matrices.txtにファイルがアップロードされ、アップロードされたファイルのメタデータが返されます。

echo "some content here" > matrices.txt

curl -X POST https://content.dropboxapi.com/2/files/upload \
    --header "Authorization: Bearer <ACCESS_TOKEN>" \
    --header "Dropbox-API-Arg: {\"path\": \"/Homework/math/Matrices.txt\"}" \
    --header "Content-Type: application/octet-stream" \
    --data-binary @matrices.txt

<ACCESS_TOKEN>は、OAuth 2アクセストークンに置き換えます。

26
Greg