
【GAS】 Blobをなんとなく理解したい! 全体像の巻 1/4
Blobは何からできてるの?
Blobのオブジェクトは”データの名前”、”データの種類”と”バイナリデータ”からなります。
データの名前
そのBlobデータの名前です。いわゆるファイル名と同じ様なもので、そのデータがどの様なものかを表す名前をBlobは保持しています。’customer_list.cvs', 'my_car.png'…
データの種類
Blobは自身が持っているデータの種類を保持しています。いわゆる拡張子の様なもので、データが画像データなのか、それともテキストベースのデータなのかを示す情報を持っています。
もう少し踏み込むと、データがPNGやPDFなのかそれともCSVなのかという事です。
また、Google Apps Scriptではデータの種類をMimeTypeクラスが定義するプロパティで指定します。例えば…
PDF→MimeType.PDF
PNG→MimeType.PNG
CSV→MimeType .CSV など…
詳しくは↓にて一覧があります。
バイナリーデータ
Blobが持っているデータそのものです。いわゆる2進数である0と1の配列を持っています。
ここは2進数とかどうとかは置いといて、要はこのデータそのものに対してあんな事やこんな事をするんだなと思っていていいと思います。
そのあんな事やこんな事は下記の”Blobで何をするの?”で説明しますね。
Blobで何をするの?
わざわざBlobを使って何ができるのか?
Google Driveにあるデータファイルやプログラム上で扱っているスプレッドシートのオブジェクトを一旦Blobデータに変換させて何ができるのか?
今回は主に4つに絞って紹介します。
ここでは簡単に紹介し、こちらのページでコードなどを交えて説明してます。
データの種類を変換!
Blobデータの種類そのものを変換できるのです!
例えば、PNGファイルだった画像データをJEPGファイルにしたり、HTMLファイルをただのテキストデータのPLAIN_TEXTに変換できるのです。
ただ、なんでもかんでも変換できるわけではなく、例えばHTMLファイルを画像データのPNGファイルに変換できなかったり、PDFファイルを画像データに変換できないなど、それなりのルールがあり、制約があります。
詳しくはこちら
データを圧縮または展開する!
Blobデータを圧縮して容量を減らしたり、逆に圧縮されたものを展開して元に戻すことができます。
いわゆる、ZipとUnzipがBlobデータに対して行えるのです。
詳しくはこちら
データからGoogleDriveにファイルを作成!
例えばデータの種類を変換したBlobデータを、GoogleDriveに新しいデータとしてファイルを作成することができます。
当たり前のように思うかもしれませんが、できるのです。
詳しくはこちら
Gmailにデータを添付する!
Google Apps Script上でGmailに添付ファイルを指定する場合、画像データであれ、PDFであれ、Blobデータとして行わなければならないため、Blobデータが必要になります。
詳しくはこちら
ちょっと気をつけた方がいいこと
GoogleAppsScript上でデータの型(種類の名前)はMimeTypeで指定し、上記にある一覧のURL先にある通り、たくさんの種類があります。
がしかし、実際にBlobデータとして扱えるデータの種類は、私の見解では、主に画像系(png, jepg, gif, bmp…)、PDF、テキスト系(html, css, csv, plainText…)のみの様に感じられます。
特に、スプレッドシートやドキュメントなどをBlobデータにすることは許されているのですが、変換後のBlobデータはもれなくPDFデータになってしまいます。
つまり、純粋にスプレッドシートをBlobデータとして扱うことはできないのです。
Blobシリーズのご案内
GoogleAppsScriptのBlobについて、4つの記事にわたって書かせていただきました。
1つ目は、現在読んでいるこちらの記事で、Blobについてのおおまかな説明をしています。
2つ目は、Blobデータを扱うためにそれの取得の仕方を説明しています。
3つ目は、Blobクラス自体が持っている主なメソッドを紹介しています。
4つ目は、Blobデータでできることを、コードを交えて詳しく紹介しました。