以下は、Google ドライブ APIを使用してシェルスクリプト内でファイルをアップロードするサンプルスクリプトです。このスクリプトでは、curl
コマンドを使用してHTTPリクエストを送信し、OAuth 2.0トークンを使用して認証します。
Bash
#!/bin/bash
# Google ドライブ APIの認証情報
CLIENT_ID="YOUR_CLIENT_ID"
CLIENT_SECRET="YOUR_CLIENT_SECRET"
REFRESH_TOKEN="YOUR_REFRESH_TOKEN"
# アップロードするファイルのパスとGoogle ドライブ上の保存先フォルダのID
FILE_PATH="/path/to/your/file"
FOLDER_ID="YOUR_FOLDER_ID"
# Google ドライブ APIのエンドポイント
API_ENDPOINT="https://www.googleapis.com/upload/drive/v3/files?uploadType=media"
# リクエストヘッダーに含める認証情報
AUTH_HEADER="Authorization: Bearer $(curl -s -X POST \
-d "client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&refresh_token=$REFRESH_TOKEN&grant_type=refresh_token" \
https://www.googleapis.com/oauth2/v4/token | jq -r '.access_token')"
# ファイルをアップロード
curl -X POST \
-H "$AUTH_HEADER" \
-H "Content-Type: application/json" \
-d "{\"name\": \"$(basename "$FILE_PATH")\", \"parents\": [\"$FOLDER_ID\"]}" \
--upload-file "$FILE_PATH" \
"$API_ENDPOINT"
このスクリプトでは、以下の手順に従います。
- Google ドライブ APIの認証情報(クライアントID、クライアントシークレット、リフレッシュトークン)を設定します。
- アップロードするファイルのパスと、Google ドライブ上の保存先フォルダのIDを指定します。
- Google ドライブ APIのエンドポイントを設定します。
- OAuth 2.0トークンを取得し、リクエストヘッダーに含めます。
curl
コマンドを使用して、ファイルをアップロードします。必要な情報(ファイル名、親フォルダのID、ファイルの実際のデータ)をリクエストボディに含めます。
このスクリプトを適切に設定し、実行すると、指定したファイルが指定したフォルダにアップロードされます。