如何在 heroku 上制作临时文件?未解决的问题

How do I make a temporary file on heroku? Not resolved problem

我在 Heroku 上托管了一个应用程序。
它具有在 ftp 服务器上上传文件的简单功能。
在本地它完美运行,
但是我在 heroku 上部署的同一个应用程序有问题。
尝试保存文件时抛出错误。

其实也保存了,但是文件大小是0字节
这是代码:

    public boolean fileUpload(MultipartFile file, String fileName) {
    try {
        FtpClient ftp = new FtpClient(ftpHost, ftpPort, ftpUser, ftpPassword);
        ftp.open();

        File tempFile = File.createTempFile(System.currentTimeMillis() + "tmp", "jpg");
        file.transferTo(tempFile );
        ftp.putFileToPath(tempFile , fileName);
        ftp.close();
        return true;
    } catch (IOException e) {
        e.printStackTrace();
        return false;
    }
}

我认为问题出在这一行:

File tempFile = File.createTempFile(System.currentTimeMillis() + "tmp", "jpg");
        file.transferTo(tempFile );

我根据Whosebug上的问题把所有的问题都过了
但我没有得到有效的答案

我没有在 heroku 上添加任何附加组件而不是日志记录。

这是该问题的日志:

Oct 08 01:53:04.527pm info app web.1 200 PORT command successful (xxx.xx.xx.xxx:xxxxx).

Oct 08 01:53:04.528pm info app web.1 STOR 1602157983845A2.jpg

Oct 08 01:53:04.636pm info app web.1 150 Opening BINARY mode data connection for '1602157983845A2.jpg'.

Oct 08 01:53:33.706pm error heroku router req=0a0bbc10… at=error code=H12 desc="Request timeout" method=POST path="/add-graphic" host=xxxxxxx.herokuapp.com request_id=xxxxxxxx-xxxx-xxxx-xxxx- xxxxxxxxxxxx fwd="xx.xxx.xx.xxx" dyno=web.1 connect=0ms service=30889ms status=503 bytes=0 protocol=https

在对问题进行更多研究后,
似乎 heroku dyno 停留在那条线上:

ftp.putFileToPath(tempFile , fileName);

方法 putFileToPath 看起来像这样:

public void putFileToPath(File file, String path) throws IOException {
    ftp.storeFile(path, new FileInputStream(file));
}

添加

ftp.enterLocalPassiveMode()

之前

ftp.storeFile(path, new FileInputStream(file));

背景:FTP timing out on Heroku