【发布时间】:2022-02-10 21:11:03
【问题描述】:
我正在使用 Next.js 开发网站并尝试使用 Microsoft Graph REST API 将文件上传到 OneDrive。
文档说请求体应该是要上传文件的二进制流,但是不知道怎么转成二进制流。
我正在使用 HTML 输入元素将文件数据保存到 file:
{name: '200311 Weekly Safety Meeting - Coronavirus (2019-nCoV).pdf', lastModified: 1644421523745, lastModifiedDate: Wed Feb 09 2022 07:45:23 GMT-0800 (Pacific Standard Time), webkitRelativePath: '', size: 700913, …}
我在客户端的代码,
const uploadFile = async () => {
const res = await axios.put('/api/onedrive/file', {
accessToken: token,
filename: file.name,
content: file,
parentId: '01XA3PFKG7YWH2K7QVIZCYRP33XLQEHLZG',
});
console.log(res.data);
};
在服务器端,
const upload = async (req, res) => {
const { filename, accessToken, content, parentId } = req.body;
const url = `https://graph.microsoft.com/v1.0/users/69e5bc0d-ef63-4040-88cf-0ada867b7afa/drive/items/${parentId}:/${filename}:/content`;
try {
const result = await axios({
method: 'put',
url: url,
body: content,
headers: {
Authorization: `Bearer ${accessToken}`,
},
});
res.status(200).send(result.data);
} catch (err) {
console.log(err);
res.status(500).send(err);
}};
【问题讨论】:
标签: javascript reactjs next.js microsoft-graph-api