cloundconvert api v2 in php return 任务字段是必需的

cloundconvert api v2 in php return The tasks field is required

我们正在尝试更新到 cloudconvert api v2,因为 v1 从 2022 年 1 月起不再工作。

我一直在关注他们的代码,甚至使用了他们的在线构建器,这似乎可以工作,但是在服务器上测试时出现以下错误:

这就是代码的样子,与我从他们那里得到的完全相同,只是我用服务器上需要的变量代替了它,而不是对其进行硬编码。

$job = (new Job())
                        ->addTask(
                            (new Task('import/raw', 'import-my-file'))
                                ->set('file', file_get_contents($f->file_current))
                                ->set('filename', $pinfo_basename)
                        )
                        ->addTask(
                            (new Task('convert', 'task-1'))
                                ->set('input_format', $f->file_current_type)
                                ->set('output_format', $f->file_convert_type)
                                ->set('engine', 'poppler')
                                ->set('input', ['import-my-file'])
                                ->set('width', 1920)
                                ->set('quality', 100)
                        )
                        ->addTask(
                            (new Task('export/s3', 'export-1'))
                                ->set('input', ["task-1"])
                                ->set('bucket', $this->amazon_s3_media[$mode]["bucket"])
                                ->set('region', $this->amazon_s3_media[$mode]["region"])
                                ->set('access_key_id', $this->amazon_s3_media[$mode]["access"])
                                ->set('secret_access_key', $this->amazon_s3_media[$mode]["secret"])
                                ->set('acl', 'private')
                                ->set('key_prefix', $f->folder_name)
                        );
                        $cloudconvert->jobs()->create($job);

我想知道我做了什么不同的事情来解决这个错误,并想知道是否有人能够帮助我解决这个问题。

我找到了解决方案。 为了不抛出错误,我不得不稍微更改一下 file_get_contens,我通过执行以下操作来做到这一点:

$file = rtrim(file_get_contents($f->file_current, FILE_TEXT)); $file = mb_convert_encoding($file, 'UTF-8', mb_detect_encoding($file, 'UTF-8, ISO-8859-1', true));

然后将 $file 放入 ->set('file', $file) 而不是 ->set('file', file_get_contents($f->file_current))

因此将它从一种编码转换为另一种编码似乎可以解决问题。