Use TemporaryFile to avoid get data from internet twice