首页 > 解决方案 > 如何使用 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)

给予任何帮助将不胜感激。

标签: node.jsdspace

解决方案


推荐阅读