gpt4 book ai didi

javascript - axios 相当于 curl --upload-file

转载 作者:行者123 更新时间:2023-11-30 11:42:16 25 4
gpt4 key购买 nike

我正在尝试使用他们的 public API 将 gif 上传到 Gfycat .

这是在命令行上使用 cURL 完成的:

curl https://filedrop.gfycat.com --upload-file /tmp/name

我尝试使用 axios 将其转换为 Node.js :

axios.post("https://filedrop.gfycat.com", {
data: fs.createReadStream("/tmp/name")
}).then(console.log).catch(console.log);

但是消息有错误

<?xml version="1.0" encoding="UTF-8"?>\n<Error><Code>PreconditionFailed</Code><Message>At least one of the pre-conditions you specified did not hold</Message><Condition>Bucket POST must be of the enclosure-type multipart/form-data</Condition><RequestId>6DD49EB33F41DE08</RequestId><HostId>/wyrORPfBWHZk5OuLCrH9Mohwu33vOUNc6NzRSNT08Cxd8PxSEZkzZdj/awpMU6UkpWghrQ1bLY=</HostId></Error>

打印到控制台。

我的 Node.js 代码与 cURL 命令有何不同,使用 axios 与 cURL 命令等效的代码是什么?

最佳答案

需要使用FormaData()可以使用form-data并且可能还需要使用 concat-stream :

const concat = require("concat-stream")
const FormData = require('form-data');
const fd = new FormData();
const fs = require('fs');

fd.append("hello", "world")
fd.append("file", fs.createReadStream("/tmp/name"))
fd.pipe(concat({encoding: 'buffer'}, data => {
axios.post("https://filedrop.gfycat.com", data, {
headers: fd.getHeaders()
})
}))

来源:https://github.com/mzabriskie/axios/issues/318#issuecomment-277231394

关于javascript - axios 相当于 curl --upload-file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42190516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com