设置 PHP ImageMagick tmp 目录

2023-12-13

我正在尝试设置 ImageMagick 用于转换文件的临时目录。目前,在转换大型 PDF 时,临时文件夹很快就会达到 2 或 3 TB。这对于服务器磁盘来说太大了,因此我计划使用 AWS EFS 来存储所有内容。我将 EFS 驱动器安装在/efs并尝试将其用于临时路径。

如何在 ImageMagick 中进行设置?我已经尝试过以下方法:

  • 在 php.ini 中设置 PHP 的临时上传文件夹 - 这会破坏文件上传并且不好
  • 更改ImagickMagick的config.xml文件,这不起作用。
  • 添加环境变量MAGICK_TMPDIR=/efs
  • 添加环境变量MAGICK_TEMPORARY_PATH=/efs

无论我做什么,它总是会进行转换/tmp文件夹。我该如何设置这个?

因为是PHP所以有什么不同吗?显然在命令行版本中你可以这样做:

convert -define registry:temporary-path=/Volumes/external/tmp

我当前的PHP代码是这样的,我想知道是否有一个函数可以在这里设置tmp目录?像一个$imagick->setTmpDir('/efs')那类的东西。我搜索了 PHP API,但找不到任何方法。

$imagick = new Imagick();
$imagick->setResourceLimit( Imagick::RESOURCETYPE_MEMORY, 5 ); //Limit RAM and force script to convert using disk swap
$imagick->setResolution(600,600); //Set DPI to 600
$imagick->setCompressionQuality(100);
$imagick->readImageBlob($file); //Load the image
$imagick->deskewImage(40); //Deskew image
$imagick->setImageFormat('jpg'); //Set format
$imagick->writeImages(storage_path("app/docs/".$doc->id.".jpg"), false); //Save the converted image

有任何想法吗?我已经这样做好几天了!

Ubuntu 服务器。


Imagick 有一个“setRegistry”方法。http://php.net/manual/en/imagick.setregistry.php

您可以使用它来设置 imagemagick 临时路径,如下所示:

$i = new Imagick();
$i->setRegistry('temporary-path', '/efs');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置 PHP ImageMagick tmp 目录 的相关文章

  • php-curl 不支持 url 中的 utf-8

    我正在尝试将 http 请求从我的服务器发送到 php 中的另一台服务器 例如 我发送请求的 URL 包含一些 utf8 字符http www aparat com etc api videoBySearch text http www a
  • PHP 字节数组转 Base64(来自 Mssql 的字节数组)

    我在表上使用 Mssql 和图像 例如 0xFFD8FFE000104A46494 我觉得是这样的字节数组 我想用 PHP 将其更改为图像 我试试这个 img src 但图像不显示 代码演示 http sandbox onlinephpfu
  • 在 php 中检测 iPad?

    如何向 iPad 查看者提供不同的页面 if SERVER HTTP USER AGENT Mozilla 5 0 iPad U CPU iPhone OS 3 2 like Mac OS X en us AppleWebKit 531 2
  • 无法在WordPress的functions.php中使用php fopen()函数

    我正在尝试简单地运行 fopen 函数 php 并且也尝试过test phpWordPress 模板文件 但这不起作用 如果我将 test php 文件和 csv 文件移动到主题文件夹之外的位置 那么它第一次可以工作 function cs
  • PHP Google Drive API - 文件上传仅作为“无标题”-文件或只是没有内容

    我正在寻找一种解决方案 通过 PHP 将文件从我的根服务器直接上传到我的 Google Drive 帐户 授权工作正常 但当我尝试传输文件 例如 test jpg 时 它只是在 Google Drive 中创建一个名为 Untitled 的
  • Symfony 生产日志

    在 Symfony 3 中 我是否可以在不打开调试模式的情况下将所有错误写入生产日志 错误将包括 http 500 错误或应用程序错误或 php 错误 这些错误由于生产时错误标志设置为 false 而被静音 当前生产的日志配置是 monol
  • LDAP 过滤器用于区分名称

    我使用以下代码成功查询 Active Directory 中的用户 filter objectCategory person samaccountname someusername fields array samaccountname m
  • 如何完全刷新 CodeIgniter 中的页面?

    我正在叠加层中加载表单 覆盖层对于调用覆盖层的页面有一个单独的控制器和操作 在表单提交时 如果成功 我只想重新加载加载叠加层的引用页面 我可以加载引用页面 但它将内容放置在覆盖层内 header Location www example c
  • 未知的 MySQL 服务器主机 (PHP)

    当尝试连接到我的数据库服务器时 我遇到了以下问题未知主机 Warning mysqli mysqli mysqli mysqli HY000 2005 Unknown MySQL server host xxxxxxxxxxxxx port
  • 在 eclipse pdt 中同步时 - 比较 php 文件的版本时出现空白灰色窗口

    我已经安装了适用于 64 位 Linux 的 Eclipse PDT Helios SR1 GTK Ubuntu Maverick 全新安装 我添加了用于使用 Subversion 的 Subversive 插件 并安装了 SVNKit 1
  • $_GET 作为 PHP 函数中的参数

    我有同样的问题 但是 我根据使用标头的 if 语句将用户重定向到通过函数构造的动态页面 为了使该函数正常工作 需要在标头的 GET 部分中传递参数 根据提供的答案 这是一种不好的做法 我应该用什么方式来做呢 function page ti
  • 有没有办法清除所有会话中的一些会话数据?

    一般来说 我有以下场景 从数据库中获取产品及其相关数据 将获取的数据转换为 php product 对象 在会话中缓存产品对象 缓存是只读的 即客户在网站上查看产品 但也有类似的电话getProductIdsByCategory categ
  • php 测试字符串是否包含三个字符串之一?

    实现以下目标的最佳方法是什么 我有一个 img变量包含例如myimage left jgp someimage center jpg or img right jpg 最好的测试方法是什么 left right or center文件名并提
  • Woocommerce 产品查询库存状态

    我使用 3 种可用性状态 有货 缺货 和 允许缺货 我想要将仅处于 库存 状态的产品导出为 XML 问题是 woocommerce 返回两种状态的值 instock 有库存 和 允许缺货 现在查询如下 query array post ty
  • str_getcsv 未正确解析数据

    我对 PHP 的 str getcsv 函数有疑问 我有这个代码
  • orm和pdo的区别

    我对 ORM 和 PDO 之间的区别有点困惑 PDO是一种ORM吗 根据我的理解 ORM 基本上是一种数据映射 PDO 还提供了数据库数据的抽象 PDO 和 ORM 是两个完全不同的东西 PDO 是数据库访问抽象层的具体实现 它使您能够使用
  • ZF2:如何将参数传递给转发插件,然后我可以在转发它们的方法中获取这些参数?

    我有一个 Action 方法Foo需要参数的控制器 public function fooAction one two a one b two 我需要从某些方法的其他方法转发到该方法Boo控制器 这些参数之一必须是引用参数 唯一的例子就是手
  • 如何使用 php 命令使注册表单高度安全?

    我想让代码对用户来说真正安全 下面的代码显示了 php 代码 我已将其用于我的网站 现在我已经使用了一些验证 例如密码和重复密码必须匹配 并且用户必须输入所有字段 为了使其更安全 我想插入安全命令 例如 PDO mysqli crypto
  • 在订单编辑页面添加自定义元框并将其显示在客户订单页面上

    在 WooCommerce 中 想要在 WooCommerce 管理订单页面上添加自定义元框 在此框中 我只想在保存到该订单的文本字段中输入跟踪号码 然后在客户查看订单页面上 我想显示一个按钮 用于打开带有跟踪信息的模式 该模式只会拉入一个
  • 设置基于 PHP 定时器的函数

    我有一个 php 文件test php 我想要echo or print5 秒后 即在浏览器调用 加载或打开 php 文件后不久 成功 顺便说一句 有时我可能想在特定的时间间隔后执行 初始化某些函数 如何使用 php 执行面向时间的任务 例

随机推荐

  • 具有不同版本的多个上下文

    我正在尝试在多个 OpenGL 上下文之间共享列表 这是一个很棒的功能 因为它允许我执行并行渲染线程 但由于我使用的是 CreateContextAttribs 因此我提供了请求特定 OpenGL 实现的可能性 因此 可能会发生某些上下文正
  • 如何在Python中将字符串列表转换为复数? [复制]

    这个问题在这里已经有答案了 我正在尝试编写在 Python 中导入和导出复数列表的代码 到目前为止 我正在尝试使用 csv 模块 我已使用以下方法将数据导出到文件 spamWriter csv writer open data csv wb
  • Fullcalendar/获取 JSON feed(已编辑)

    当使用 ajax 从 JSON feed 获取数据时 我的 fullCalendar 对象中的事件未显示 这是一个问题 我相信 JSON 格式是正确的 因为 JSON aspx 的输出是 id 1 title TESTTITLE info
  • 如何将整个 SQL Server 2014 数据库转储到文件中,以便导入到 Postgres 数据库中?

    我有一个 SQL Server 2014 数据库 我需要从中转储表数据 没有索引 存储过程或其他任何内容 该转储需要 按原样 导入到 Postgres 9 3 数据库中 创建此类转储的正确命令行是什么 我必须承认 这更像是一个笑话 您应该按
  • C# - 从静态 main 调用函数

    我的问题可能非常基本 但我没有找到答案 我在program cs中编写了一个函数 获取2个字符串的public checkSomething 当我尝试从静态 main 调用此函数时 我收到这个错误 非静态字段 方法或需要对象引用 属性 ch
  • 忽略示例函数中的值或 NA

    我在 R 中有一个矩阵 我想从每一行中抽取一个随机样本 我的一些数据在 NA 中 但是在进行随机采样时 我不希望 NA 成为采样的选项 我将如何实现这个目标 例如 a lt matrix c rep 5 10 rep 10 10 rep N
  • Google 脚本从选择范围(不是整个工作表)中删除重复项

    下面是一个用于从电子表格中删除重复行的 Google 表格脚本 虽然它确实可以删除重复的行 但它也会在此过程中破坏单元格内的公式 我目前有一系列工作表 其中所有原始数据都包含在列中A P我的所有公式都归入列Q T 在我尝试限制以下脚本仅适用
  • WIX 安装程序在状态行中显示括号

    我正在使用 WIX 安装程序 它在状态行中显示一些括号 见下图 我没有对 WIX 文件进行更改 但仅更改了已安装的文件 我确实将 WIX 更新到了 v3 11 因为这是在 Visual Studio 2017 中使用 WIX 所必需的 我们
  • DB事务还是Java DAO的方法同步?

    我有基于Java的Web服务器 并且我还有带方法的DAO单例对象 其SQL操作的逻辑必须以某种方式同步以保证数据 完整性 可以同时从多个 Java 线程访问方法 我想知道DB事务包装 可序列化级别 是否优于DAO的方法显式同步在服务器端 是
  • Flask 客户端会话

    开始学习PythonFlaskWeb 应用程序框架 仍在学习曲线上 所以请耐心等待 我想知道客户端会话对于安全 Web 应用程序的目的有多合适 从表面上看 存在一些严重的担忧 由于所有会话变量都被序列化并编码在 cookie 中 因此应该注
  • 如何获取android中存储目录的路径

    有什么方法可以得到 storage 目录 我尝试过Environment getExternalStorageDirectory 但它返回 storage emulated 0我知道我可以使用file getParent 但由于某种原因我不
  • ADF 在 git 模式下发布混乱

    在 git 模式下 当我们想要测试管道时 ADF 会强制我们先发布 我的理解是 发布操作做了两件事 按照给定保存到本地 ADF DEV here 在分支 adf publish 我们的分支 中创建arm模板 指定 但要启用 发布 按钮 我们
  • 释放方法返回的对象

    好吧 我知道这个问题的答案应该是显而易见的 但我需要朝着正确的方向一点推动 我发现自己编写了很多遵循以下模式的方法 NSThing myMethod NSThing thing NSthing alloc init do some stuf
  • 使用 /proc/meminfo 读取 Android 设备的 RAM 总量

    我正在考虑读取 Android 设备的物理 RAM 总量 据我了解 这些信息存储在 proc meminfo中 我怎样才能阅读它 尝试这个 public void getTotalMemory String str1 proc meminf
  • 如何循环返回主菜单?

    我想知道这是否是循环回到 python 主菜单的正确方法 选择选项并完成任务后 脚本需要返回主菜单而不是退出 usr bin python def mainmenu print 1 Scan print 2 Ping print 3 Exi
  • 是否可以在 POST Json 中附加文件?

    我有一堆 JSON 序列化对象 格式的数据 我通过以下方式将此数据发送到服务器POST带标题的方法 Content Type application json 是否可以将文件附加到正文请求并立即发送 或者 JSON 数据建议仅发送文本数据
  • AttachConsole 错误 5:访问被拒绝

    我正在 Visual Studio 2013 中使用 C 控制台应用程序 在 Windows 上工作 首先我使用分离控制台FreeConsole 有用 然后 调用AllocConsole as FreeConsole 然后 AttachCo
  • 在字符列上合并大型 data.tables 会导致段错误

    我正在使用 R 版本 3 3 3 尽管我已经在 3 4 0 上复制了这个问题 并且data tableCygwin 上的版本 1 10 4 Edit 下面的评论表明这可能是 Cygwin 特有的 我需要通过字母数字 ID 列合并两个数据表
  • 为什么 jhat 的 -baseline 选项不起作用?

    为什么每个对象似乎都被标记为新对象 而不仅仅是第二个快照中但不在我的基准快照中的对象 在网上查看 我看到一些建议 我需要使用 hprof 而不是 jmap 来进行内存转储 但 hprof 似乎以完全相同的格式生成转储 这是JDK 1 6 0
  • 设置 PHP ImageMagick tmp 目录

    我正在尝试设置 ImageMagick 用于转换文件的临时目录 目前 在转换大型 PDF 时 临时文件夹很快就会达到 2 或 3 TB 这对于服务器磁盘来说太大了 因此我计划使用 AWS EFS 来存储所有内容 我将 EFS 驱动器安装在