node.js - 如何使用 nodejs 应用程序中的 REST API 将比特流上传到 DSpace?
问题描述
我正在尝试使用 REST API 将比特流从本地计算机上传到 DSpace。我正在使用 nodejs 应用程序,但是每当我使用 nodejs 应用程序上传 PDF 时,当我尝试查看消息时都会收到错误消息。
这是我用来上传 PDF 的 nodejs 代码:
const express = require("express");
const router = express.Router();
const multer = require('multer');
const request = require("request");
const fs = require('fs');
router.post('/upload', upload.single('avatar'), async (req, res) => {
var options = {
'method': 'POST',
'url': 'https://demo.dspace.org/rest/items/375f797f-bcf2-4f17-9c91-
616a9307a84c/bitstreams',
'headers': {
'Content-Type': 'application/pdf',
'Cookie': 'JSESSIONID=3E82325FE58547DF80E34FC45F060C43',
'format': 'Adobe PDF'
},
body: fs.createReadStream('/home/Documents/html-handbook.pdf'),
'format': 'Adobe PDF'
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
)
当我尝试从 DSpace 的演示实例中查看文档时收到的错误是:
Unable to locate bitstream
context:/jndi:/localhost/xmlui/sitemap.xmap - 269:78
<map:read type="BitstreamReader">
context:/jndi:/localhost/xmlui/sitemap.xmap - 259:68
<map:select type="browser">
context:/jndi:/localhost/xmlui/sitemap.xmap - 258:88
<map:match type="request-parameter">
context:/jndi:/localhost/xmlui/sitemap.xmap - 257:70
<map:match>
Java stacktrace
org.apache.cocoon.ResourceNotFoundException: Unable to locate bitstream at <map:read
type="BitstreamReader"> - jndi:/localhost/xmlui/sitemap.xmap:269:78 at <map:select
type="browser"> - jndi:/localhost/xmlui/sitemap.xmap:259:68 at <map:match
type="request-parameter"> - jndi:/localhost/xmlui/sitemap.xmap:258:88 at <map:match>
- jndi:/localhost/xmlui/sitemap.xmap:257:70 at
org.dspace.app.xmlui.cocoon.BitstreamReader.setup(BitstreamReader.java:317) at
sun.reflect.GeneratedMethodAccessor99.invoke(Unknown Source) at s
un.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498) at
org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke
(PoolableProxyHandler.java:71) at com.sun.proxy.$Proxy230.setup(Unknown Source) at
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupReader
(AbstractProcessingPipeline.java:560)
给予任何帮助将不胜感激。
解决方案
推荐阅读
- mysql - 如何在单个查询中沿月份和年份按周获取数据
- python - 为什么我的答案在 Python 中的小数点不正确?
- r - R:从一组值中选择最大值分配给一列
- java - 模式观察者和 Spring
- javascript - Javascript复制粘贴奇怪的行为
- php - ACF 转发器按日期子字段排序
- node.js - 在 mongoose.js 中哪种创建和更新文档的方式更好?
- powerbi - Power Bi ,列中的平均常数值而不是滚动平均值?
- node.js - 如何更改 Firebase 提供的文件的目录/文件路径?
- api - 登录 API 方法在 Xamarin 表单中返回 400 错误请求