Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8691

Node.jsでGoogle Driveにファイルをアップロードする (Google Drive API v3)

$
0
0

Google Driveへのファイルアップロードも試してみます。

メソッドはFiles: createになります。

ライブラリの書き方だとdrive.files.create()です。

.uploadではないので注意。

スコープ指定

https://www.googleapis.com/auth/drive
https://www.googleapis.com/auth/drive.file
https://www.googleapis.com/auth/drive.appdata

フォルダを指定してアップロード

チュートリアルfunction listFilesの箇所を書き換えて利用してみます。

機能的にはfunction createFileとかにリネームした方が良いでしょうが一旦動かす体なのでスルー

folderIdにGoogle Driveのアップロード先のフォルダのIDを指定しましょう。

パラメータでresource.parentsを指定していますが、ここが配列なので複数のフォルダに配置もできそうですね。

参考: Create a file in a folder

またtest.mp4としてますが、ファイルの種類によって拡張子は変えてください。

create.js
//省略asyncfunctionlistFiles(auth){constdrive=google.drive({version:'v3',auth});constfileName=`test.mp4`;constfolderId='xxxxx';constparams={resource:{name:fileName,parents:[folderId]},media:{mimeType:'video/mp4',body:fs.createReadStream(fileName)},fields:'id'};constres=awaitdrive.files.create(params);console.log(res.data);};

実行すると手元のtest.mp4が指定したGoogle Driveのフォルダにアップロードされます。

スクリーンショット 2020-08-26 2.22.53.png

おまけ: プログレス表示

公式サンプルを参考にして書くとこんな感じになります。

dl.js
//省略constfileSize=fs.statSync(fileName).size;constres=awaitdrive.files.create(params,{onUploadProgress:evt=>{constprogress=(evt.bytesRead/fileSize)*100;readline.clearLine();readline.cursorTo(0);process.stdout.write(`${Math.round(progress)}% complete`);},});console.log(res.data);
  • 実行

こんな感じのプログレス表示になります。

$ node create.js
・
・
・
mplete99% complete99% complete99% complete99% complete99% complete99% complete100% complete100% complete100% complete100% complete100% complete100% complete100% complete100% complete100% complete100% complete100% complete100% complete100% complete100% complete100% complete100% complete100% complete100% complete{id: 'xxxxxxxxxxxxxx'}

よもやま

res.dataのあたりでなんとく分かる人はいるかもしれないですが、こちらにコメントがあるようにaxiosを使ってアップロードしてるみたいですね。

そして公式ドキュメントがけっこうアップデートされていて公式のコード使えば良さそうってのに後から気づいた


Viewing all articles
Browse latest Browse all 8691

Trending Articles