はじめに
最近、Amazon SP-APIを使用して在庫レポートを取得し、それをGoogle Apps Script(GAS)を使って自動的に処理しようとしていると、gzファイルの解凍でエラーが発生することがありました。この記事では、そのエラーの原因と対処法について解説します。
エラーの原因
Amazon SP-APIから取得した在庫レポートのgzファイルをダウンロードすると、手動で解凍することはできますが、GASで解凍すると次のようなエラーが発生することがあります。
Error: Invalid argument.
これは、GASがgzファイルを解凍する際に適切なメソッドや設定が不足しているために発生する可能性があります。
解凍の方法
以下は、GASでgzファイルを解凍するためのスクリプトの例です。このスクリプトは、gzipライブラリを使用しています。
function unzipGzFile(gzUrl) {
// gzファイルのダウンロード
var gzFile = UrlFetchApp.fetch(gzUrl).getBlob();
// 解凍
var unzippedFile = Utilities.ungzip(gzFile);
// 解凍されたデータを取得
var unzippedData = unzippedFile.getDataAsString();
// 解凍されたデータをログに出力(必要に応じて他の処理に置き換え)
Logger.log(unzippedData);
}
このスクリプトでは、UrlFetchApp
を使用してgzファイルをダウンロードし、Utilities.ungzip
メソッドを使って解凍しています。解凍されたデータはログに出力されますが、必要に応じて他の処理に変更できます。
まとめ
Amazon SP-APIから取得した在庫レポートのgzファイルをGASで解凍する際に発生するエラーに対処するには、適切なライブラリやメソッドを使用して解凍する必要があります。上記のスクリプトを参考にして、解凍処理を適切に実装してみてください。