Google App Script(GAS)でGoogleドライブやファイルなどを扱うときに、MIMEタイプというものを指定することが多々あります。
MIMEタイプを使えば、指定した種類(JPEGやCSVなど)のファイルのみを取得したり、JPEGをPNGに変換するといったMIMEタイプの変更を行うことができます。
ここでは、そもそもMIMEタイプとは何なのか?やGASで指定できるMIMEタイプの一覧を紹介しています。
MIMEタイプとは何か?拡張子との違い
MIMEタイプとは何か?
MIMEタイプとは「Multipurpose Internet Mail Extensions」の略でファイルなどの形式を表すもので、「マイムタイプ」と呼びます。
ファイル形式とはTXTやCSV, JPEG, HTMLなどのことです。
メディアタイプ(Media Type)やContentType(要素タイプ)と呼ばれたりもします。AppScriptの公式ページでは「MimeType」が使われたり「ContentType」が使われたりします。
拡張子との違い
ファイルの形式を表すもので馴染みがあるのは「.txt」「.csv」「.jpg」「.gif」といった拡張子です。
この拡張子はWindowsでファイルの形式を指定するために使われているものです。一方、MIMEタイプはインターネットやメールでファイルのやりとりをするために定義されたファイル形式です。
「Multipurpose Internet Mail Extensions」を直訳すると「多目的インターネットメール拡張機能」となり、インターネットやメールのための拡張機能であることがわかります。
MIMEタイプの指定方法
GASでMIMEタイプを指定するとき、2つの指定方法があります。
一般的なMIMEタイプは「text/plain」「text/html」「image/jpeg」よのうにスラッシュを挟んだ文字列で指定します。
これに対してGASで用意されているMIMEタイプの指定方法にEnum MimeTypeがあります。これは、「MimeType.PDF」「MimeType.CSV」「MimeType.GOOGLE_SHEETS」のように直感的にファイル形式を指定することができます。
特に、通常の拡張子では存在しない、Goolgeドキュメントやスプレッドシート、フォームなども扱えることがポイントです。
GASでMIMEタイプを指定するときは上記の2つのどちらも利用可能です。
以下にそれぞれの一覧を掲載しています。
Enum MimeType(AppScript専用のMIMEタイプ指定方法)
MIMEタイプの指定方法
「Enum MimeType」はAppScript専用のMIMEタイプの指定方法です。
通常のCSVやJPEGファイルなどだけでなく、Goolgeドキュメントやスプレッドシート、フォームなどのGoogleが提供しているファイル形式も指定することができます。
MimeType.GOOGLE_DOCS
のように、MimeTypeというオブジェクトに対してプロパティを指定します。
MimeType.プロパティ
指定方法の例は以下のようになります。
const mimeTypes = { csv: MimeType.MICROSOFT_EXCEL, pdf: MimeType.PDF };
var docs = DriveApp.getFilesByType(MimeType.GOOGLE_DOCS);
UrlFetchApp.fetch(url).getAs(MimeType.PDF);
MIMEタイプの一覧
プロパティ | 内容 |
---|---|
GOOGLE_ | Google Apps Script プロジェクトの MIME タイプを表します。 |
GOOGLE_ | Google 図形描画 ファイルの MIME タイプを表します。 |
GOOGLE_ | Google ドキュメント ファイルの MIME タイプを表します。 |
GOOGLE_ | Google フォーム ファイルの MIME タイプを表します。 |
GOOGLE_ | Google スプレッドシート ファイルの MIME タイプを表します。 |
GOOGLE_ | Google サイト ファイルの MIME タイプを表します。 |
GOOGLE_ | Google スライド ファイルの MIME タイプを表します。 |
FOLDER | Google ドライブ フォルダの MIME タイプを表します。 |
SHORTCUT | Google ドライブのショートカットの MIME タイプを表します。 |
BMP | BMP 画像ファイルの MIME タイプ(通常は .bmp)を表します。 |
GIF | GIF 画像ファイル(通常は .gif)の MIME タイプを表します。 |
JPEG | JPEG 画像ファイルの MIME タイプ(通常は .jpg)の表現。 |
PNG | PNG 画像ファイルの MIME タイプ(通常は .png)を表します。 |
SVG | SVG 画像ファイル(通常は .svg)の MIME タイプを表します。 |
PDF | PDF ファイル(通常は .pdf)の MIME タイプを表します。 |
CSS | CSS テキスト ファイル(通常は .css)の MIME タイプを表します。 |
CSV | CSV テキスト ファイル(通常は .csv)の MIME タイプを表します。 |
HTML | HTML テキスト ファイルの MIME タイプ(通常は .html)を表します。 |
JAVASCRIPT | JavaScript テキスト ファイル(通常は .js)の MIME タイプを表します。 |
PLAIN_ | 書式なしテキスト ファイルの MIME タイプ(通常は .txt)を表します。 |
RTF | リッチテキスト ファイル(通常は .rtf)の MIME タイプを表します。 |
OPENDOCUMENT_ | OpenDocument グラフィック ファイルの MIME タイプ(通常は .odg)を表します。 |
OPENDOCUMENT_ | OpenDocument プレゼンテーション ファイルの MIME タイプを表します(通常は .odp)。 |
OPENDOCUMENT_ | OpenDocument スプレッドシート ファイルの MIME タイプを表します(通常は .ods)。 |
OPENDOCUMENT_ | OpenDocument ワープロ ファイルの MIME タイプ(通常は .odt)の表現。 |
MICROSOFT_ | Microsoft Excel スプレッドシート ファイル(通常は .xlsx)の MIME タイプを表します。 |
MICROSOFT_ | 以前の Microsoft Excel ファイル(通常は .xls)の MIME タイプを表します。 |
MICROSOFT_ | Microsoft PowerPoint プレゼンテーション ファイルの MIME タイプ(通常は .pptx)を表します。 |
MICROSOFT_ | Microsoft PowerPoint のレガシー ファイル(通常は .ppt)の MIME タイプを表します。 |
MICROSOFT_ | Microsoft Word ドキュメント ファイルの MIME タイプ(通常は .docx)を表します。 |
MICROSOFT_ | 以前の Microsoft Word ファイル(通常は .doc)の MIME タイプを表します。 |
ZIP | ZIP アーカイブ ファイルの MIME タイプ(通常は .zip)を表します。 |
一般的なMIMEタイプ
MIMEタイプの指定方法
一般的なMIMEタイプの指定方法はタイプとサブタイプを指定します。
タイプ/サブタイプ
タイプには「image」「text」「video」「audio」「model」「application」などがあります。「application」はどのタイプにも当てはまらないバイナリデータです。
サブタイプで具体的なファイル形式を指定します。
例えば「textタイプ」には以下のようなサブタイプがあります。
- text/plain
- text/html
- text/csv
「imageタイプ」には以下のようなサブタイプがあります。
- image/jpeg
- image/png
- image/tiff
一般的なMIMEタイプは皆さんが想像している以上にかなり多くのものがあります。例えば、imageタイプだけでもこんなにあります。(※これで1/3ぐらいです)
引数を指定する
MIMEタイプを指定するときに、タイプとサブタイプだけでなく引数を指定することもあります。
タイプ/サブタイプ;引数=値
例えば、テキストファイルで文字コードとしてUTF-8を指定する場合は以下のようにします。
text/plain;charset=UTF-8
主なMIMEタイプの一覧
上記で少し紹介したように一般のMIMEタイプは相当数が用意されています。すべてを紹介するのはあまりにナンセンスなので、一般的によく見かける主なMIMEタイプの一覧を紹介します。
MIMEタイプ | 拡張子 | ファイル形式 |
---|---|---|
audio/aac | .aac | AAC 音声 |
image/bmp | .bmp | Windows OS/2 ビットマップ画像 |
text/css | .css | カスケーディングスタイルシート (CSS) |
text/csv | .csv | カンマ区切り値 (CSV) |
application/gzip | .gz | GZip 圧縮アーカイブ |
image/gif | .gif | グラフィック交換形式 (GIF) |
text/html | .htm .html | ハイパーテキストマークアップ言語 (HTML) |
text/calendar | .ics | iCalendar 形式 |
image/jpeg | .jpeg .jpg | JPEG 画像 |
text/javascript | .js | JavaScript |
application/json | .json | JSON 形式 |
audio/mpeg | .mp3 | MP3 音声 |
video/mpeg | .mpeg | MPEG 動画 |
image/png | .png | Portable Network Graphics |
application/pdf | Adobe Portable Document Format (PDF) | |
application/x-httpd-php | .php | Hypertext Preprocessor (Personal Home Page) |
application/vnd.ms-powerpoint | .ppt | Microsoft PowerPoint |
application/vnd.openxmlformats-officedocument.presentationml.presentation | .pptx | Microsoft PowerPoint (OpenXML) |
application/x-sh | .sh | Bourne shell スクリプト |
image/svg+xml | .svg | Scalable Vector Graphics (SVG) |
text/plain | .txt | テキストファイル (一般に ASCII or ISO 8859-n) |
image/webp | .webp | WEBP 画像 |
application/vnd.ms-excel | .xls | Microsoft Excel |
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | .xlsx | Microsoft Excel (OpenXML) |
application/xml | .xml | XML |
application/zip | .zip | ZIP アーカイブ |
参考
MIMEタイプをもっと詳しく知りたいという方は下記ページをご参考ください。