大量 (10000 以上) のリモート gzip ファイルを解析する必要があります。圧縮された各ファイルには、その内部 (おそらくフォルダー内) に CSV が含まれている必要があります。現在、本文を取得し、コンテンツ タイプを確認して解凍し、application/octet-stream
.
質問: オクテット ストリームとは何ですか? また、その中のファイルやフォルダーを確認するにはどうすればよいですか?
/** @var $guzzle \Guzzle\Http\Client */
$guzzle = $this->getContainer()->get('guzzle');
$request = $guzzle->get($url);
try {
$body = $request->send()->getBody();
// Check for body content-type
if('application/z-gzip' === $body->getContentType()) {
$body->uncompress();
$body->getContentType(); // application/octet-stream
}
else {
// Log and skip current remote file
}
}
catch(\Exception $e) {
$output->writeln("Failed: {$guzzle->getBaseUrl()}");
throw $e;
}