DriveScript

【GAS】Googleドライブに保存したファイルのURLを取得する

getDownloadUrl – ファイルのダウンロードURLを取得するメソッド

Googleドライブに保存されているファイルのダウンロードURLを取得するのはgetDownloadUrlです。

似たようなメソッドにgetUrlがありますが、こちらはファイルを開くためのURLを取得します。

実際にコードを書いて挙動を見ていきます。

準備

準備としてファイルを置くフォルダをつくって、その中にファイルを作成してURLを取得します。

ファイルを置くためのフォルダをつくります

フォルダ名は「取得テスト用」とします

取得テスト用フォルダに入ります

フォルダIDをコピーしておきます

フォルダオブジェクトを取得してファイルを作成しておく

const getDriveUrl = () => {
    const driveApp = DriveApp
  const folder = driveApp.getFolderById('フォルダIDが入ります')
    const file = folder.createFile('取得用ファイル', 'これは取得用ファイルです', MimeType.PLAIN_TEXT)
}

ファイルのURLを取得するコード

準備で作成したファイルのダウンロードURLを取得します

const getDriveUrl = () => {
  const driveApp = DriveApp
  const folder = driveApp.getFolderById('フォルダIDが入ります')
  const file = folder.createFile('取得用ファイル', 'これは取得用ファイルです', MimeType.PLAIN_TEXT)
  const downloadUrl = file.getDownloadUrl()
  console.log(downloadUrl)
}

5行目でダウンロードURLを取得しています。


実行結果


本当にダウンロードURLなのか怪しい気もしますので、ブラウザのアドレスバーにコピーしてEnterをたたきます。

すると、ダウンロードできるはずです。

getUrlとgetDownloadUrlの違い

さっき取得したのはダウンロードURLです。getDownloadUrlメソッドを使います。

ダウンロードURLではなくて、表示用のURLを取得するのがgetUrlです。

コード(5行目をgetUrlに変えてます)

const getDriveUrl = () => {
  const driveApp = DriveApp
  const folder = driveApp.getFolderById('フォルダIDが入ります')
  const file = folder.createFile('取得用ファイル', 'これは取得用ファイルです', MimeType.PLAIN_TEXT)
  const downloadUrl = file.getUrl()
  console.log(downloadUrl)
}


実行結果


getDownloadUrlとは異なるURLを取得できたことがわかります。

このURLをブラウザのアドレスバーにはりつけてEnterキーを押すと、、、

勝手にダウンロードされるのではなく、つくったファイルが表示されます。


ちなみに今はGASでファイルをつくりましたが、PCの中にあるファイルをアップロードしたり、Googleドライブのメニューから新規ファイルをつくってもダウンロードURLを取得できます。


アップロードしたファイルのダウンロードURLを取得する

const getDriveUrl = () => {
  const driveApp = DriveApp
  const folder = driveApp.getFolderById('フォルダIDが入ります')
  const files = folder.getFiles()
  while (files.hasNext()) {
    const file = files.next()
    const downloadUrl = file.getDownloadUrl()
    console.log(downloadUrl)
  }
}

4行目でフォルダの中にあるファイルのイテレーターを取得してます。配列を生成するのがイテレーターです。配列とは違う扱い方をするので注意しといたほうがよさそうですね。

イテレーター.next()でファイルオブジェクトを取得できます。

Copied title and URL