【发布时间】:2021-06-07 08:27:45
【问题描述】:
我正在尝试通过 REST API 将文件上传到 Drupal 8。我在 REST 资源中启用了文件资源。
这是我的代码在 JS 中的样子:
const uri = `${constants.URL}/entity/file?_format=json`;
const authorization = `Bearer ${session.accessToken}`;
var reqData = {
"_links":{"type":{"href":`${constants.URL}/rest/type/file/image`}},
"uri":{"value":"public://attachements/test.png"},
"filename":{"value":"test.png"},
"filemime":{"value":"image/png"},
"type":{"target_id":"image"},
"data":[{"value":"[base64]"}],
"uid":[{"target_id":"1"}]
};
请求的结果是:方法不允许。或者各种奇怪的东西,取决于我尝试的不同的东西。
在用户/权限内我找不到任何设置来授予权限。
更新代码 -> '必须指定类型链接关系。'
const uri = `${constants.URL}/entity/file?_format=hal_json`;
const authorization = `Bearer ${session.accessToken}`;
var reqData = {
"_links":{"type":{"href":`${constants.URL}/rest/type/file/image`}},
"uri":[{"value":"public://test.png"},{"url":"/sites/default/files/test.png"}],
"filename":{"value":"test.png"},
"filemime":{"value":"image/png"},
"type":{"target_id":"image"},
"data":[{"value":`${base64Data}`}],
"uid":[{"target_id":"1"}]
};
const response = await axios({
method: 'POST',
url: uri,
data: {reqData},
headers: {
"Content-Type": "application/hal+json",
"Accept": "application/hal+json",
"Authorization": authorization
}
})
【问题讨论】: