我正在尝试通过托管在故障上的节点机器人将文件从 s3 获取到松弛文件,但未能成功。
我正在克隆的故障项目使用 axiom 发出 Web 请求。我正在请求将 s3 文件读入字符串,然后获取内容并将其放入对files.upload的请求中。Files.upload 通过帖子获取表单数据。
我不完全清楚如何构造表单数据“file”参数以获取字符串,但以下返回“invalid_arg_name”错误。
var Readable = require('stream').Readable;
// ...
const upload = new FormData();
upload.append("channels", destinationChannel);
const s = new Readable();
s.push("example s3 file content string");
s.push(null);
upload.append("file", s);
const config = {
headers: {'Authorization': "Bearer " + myAccessToken},
'Content-Type': 'multipart/form-data',
};
axios.post(`${apiUrl}/files.upload`, upload, config)
.then((result) => {
console.log('uploaded file');
console.log(result.data);
});
文档还说它采用 url 编码的形式,但我不确定它将采用什么结构,或者它是否能处理我想通过这种方法发送的 10 千字节的文件。
如果我们能修复这个方法,那就太好了,但如果有一种更简单的方法可以将公共 URL 提供给 slack 的 files.upload,我也会接受。