在临时文件夹中创建了很多临时 magick 文件

2023-12-30

我正在使用imagick https://github.com/gographics/imagick用于在 http 处理程序中调整图像大小和裁剪图像的库。其中没有写任何东西/tmp文件夹。但据我所知,该文件夹中正在创建许多此类文件,并且其大小每天都在增长,目前它消耗了大约 90% 的分区大小。此外,我也无法阅读他们的内容。那么,为什么要创建这些文件,它们会在一段时间后被删除还是我需要手动删除它们。

    -rw------- 1 ubuntu ubuntu   16M Feb 22 09:46 magick-d6ascKJV
    -rw------- 1 ubuntu ubuntu   16M Feb 22 09:46 magick-46ccZIfq
    -rw------- 1 ubuntu ubuntu  1.8M Feb 22 09:47 magick-vUET7vyh
    -rw------- 1 ubuntu ubuntu  1.8M Feb 22 09:47 magick-OLkGWTX8
    -rw------- 1 ubuntu ubuntu   15M Feb 22 09:48 magick-LNMV7YvE
    -rw------- 1 ubuntu ubuntu   16M Feb 22 09:49 magick-0LMYt6Kc
    -rw------- 1 ubuntu ubuntu   16M Feb 22 09:50 magick-ceNxX5CY
    -rw------- 1 ubuntu ubuntu   16M Feb 22 09:50 magick-nQ1M3y6I

Edit :

我没有在我的 http 处理程序中使用以下两行。原因是我找不到任何解释来这样做。此外,go http 处理程序工作正常。那么,这些言论的目的是什么?

imagick.Initialize() 
defer imagick.Terminate()

我假设有一些理由将它们包含在代码中。所以,在 go http handler 中。它应该包含在里面的地方func main()或里面serveHTTP ?

func main() {                                           
    myMux := http.NewServeMux()
    myMux.HandleFunc("/", serveHTTP)

    if err := http.ListenAndServe(":8085", myMux); err != nil {
        logFatal("Error when starting or running http server: %v", err)
    }       

}

func serveHTTP(w http.ResponseWriter, r *http.Request) {

}

临时/中间文件应由调用 ImageMagick 线程自动清理。您描述的模式行为暗示了使用 ImageMagick 的应用程序中存在错误。

我会建议...

  1. 检查应用程序的错误日志。
  2. 评估调用代码的错误报告。
  3. 确保正确imagick.Initialize & imagick.Terminate例程被调用

如果没有其他办法,请使用环境变量MAGICK_TMPDIR控制 imagemagick 工件的写入位置。

Update

The imagick.Initialize包裹底层MagickCoreGenesis http://www.imagemagick.org/api/magick.php#MagickCoreGenesis, and imagick.Terminate the MagickCoreTerminus http://www.imagemagick.org/api/magick.php#MagickCoreTerminus常规。它们对于管理 ImageMagick 运行的环境非常重要。它们应该在处理任何 ImageMagick 任务的工作线程上调用,所以在您的情况下,serveHTTP方法。但是,对每个 HTTP 请求执行此类例程并不是最佳选择,并且如果可能的话,应该评估附加条件。

func serveHTTP(w http.ResponseWriter, r *http.Request) {
   // if request will do image work
   imagick.Initialize() 
   defer imagick.Terminate()
   // ... image methods ...
   // end if
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在临时文件夹中创建了很多临时 magick 文件 的相关文章

随机推荐