使用 Expect --upload-file 标头发送 curl -> Node.js

Posted

技术标签:

【中文标题】使用 Expect --upload-file 标头发送 curl -> Node.js【英文标题】:Send curl with Expect --upload-file header -> Node.js 【发布时间】:2015-08-04 08:09:52 【问题描述】:

我正在将文件上传到 Autodesk View and Data API,但我不知道如何通过 http 发送 curl 或请求 lib。具体来说,我不知道如何设置期望标题。

这是我尝试发送的卷曲

curl --header "Authorization: Bearer nqjy2YlqYVi9VqBLjKinixIkhDRA" --header "Content-Length: 199233" \
-H "Content-Type:application/octet-stream" --header "Expect:" --upload-file "./Torus.obj" 
-X PUT https://developer.api.autodesk.com/oss/v1/buckets/mybucket/objects/Torus.obj -k

每次我收到 417 http 响应。有人可以帮我在 Node.js 中开发功能吗?

非常感谢。

---更新---- 固定:

var xhr = new XMLHttpRequest();

xhr.open('PUT',
    'https://developer.api.autodesk.com/oss/v1/buckets/' + GLOBAL.AutodeskBucket + '/objects/' + file.name,
    true);

xhr.setRequestHeader(
  'Authorization',
  'Bearer ' + GLOBAL.AutodeskToken.access_token);

xhr.setRequestHeader(
  'Content-Type',
  'application/stream');

xhr.onload = function () 
    var response = JSON.parse(xhr.responseText);
    response.file = file;
    callback(response);
;


var reader = new FileReader();

// `onload` as listener
reader.addEventListener('load', function (ev) 
  xhr.send(ev.target.result);
);

var file = new File(path.dirname(require.main.filename) + '/files/' + file.name);

reader.readAsBinaryString(file);

【问题讨论】:

【参考方案1】:

以防万一,您还可以查看https://developer.autodesk.com/api/view-and-data-api/#oss-bucket-and-object-api-v1-0的文档

【讨论】:

以上是关于使用 Expect --upload-file 标头发送 curl -> Node.js的主要内容,如果未能解决你的问题,请参考以下文章

expect脚本在Linux下是如何使用的

expect安装和使用

分发系统介绍expect脚本远程执行命令expect脚本远程传递参数expect脚本传递参数

expect使用方法

Linux操作系统中expect如何使用?

分发系统介绍,expect脚本远程登录,expect脚本远程执行命令,expect脚本传递参数