在基于Olingo的OData服务中上传文件

2020-08-26 06:33发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我需要公开一个基于Olingo的OData服务,该服务允许用户上传二进制(文本)文件。

二进制文件是以下一项的属性 我的实体。

我知道Gateway可以使用媒体类型的实体属性来处理此问题。

Olingo可以实现同样的效果吗?

谢谢

文森佐

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我需要公开一个基于Olingo的OData服务,该服务允许用户上传二进制(文本)文件。

二进制文件是以下一项的属性 我的实体。

我知道Gateway可以使用媒体类型的实体属性来处理此问题。

Olingo可以实现同样的效果吗?

谢谢

文森佐

付费偷看设置
发送
3条回答
樱桃小丸子0093
1楼 · 2020-08-26 07:24.采纳回答

大家好,

我与Olingo开发人员取得了联系。

回答是,通过JPA OData处理器作为JPA持久性单元的一部分公开的实体不支持" isStream"标志。

谢谢,

>

Vincenzo

蓋茨
2楼-- · 2020-08-26 07:05

这有点晚了,但是由于我在找到解决方案之前找到了这篇文章,所以我认为我会继续分享,以帮助别人。

这里有更多信息可通过JPA和@blob和@lob处理:

Apache Olingo库

在我的情况下,我不想将上传的文件存储在数据库中,而是经过一些预处理后存储在文件系统中。 我有一个名为DigitalAudio的简单JPA实体。 它具有许多属性以及所存储文件的文件系统位置。 OData v2不支持Actions,并且函数导入仅支持仅带参数的GET和POST(无请求正文)。 我采用的方法是在我的实体AudioFile中添加一个额外的@Transient属性。 然后,我使用JPAEdmExtension扩展了EDM。

 @Override
     公共无效的extendJPAEdmSchema(JPAEdmSchemaView视图){
         架构架构= view.getEdmSchema();
         对于(EntityType t:schema.getEntityTypes()){
             如果(t.getName()。equals(" DigitalAudio")){
                 t.getProperties()。add(getAudioFileProperty());
             }
         }
     }

     私有属性getAudioFileProperty(){
         SimpleProperty属性=新的SimpleProperty();
       
         JPAEdmMappingImpl映射=新的JPAEdmMappingImpl();
         mapping.setJPAType(byte []。class);
       
         property.setName(" AudioFile");
         property.setType(EdmSimpleTypeKind.Binary);
         property.setMapping(mapping);
         property.setMimeType(" application/octet-stream");
         归还财产;
     }
 

然后我实现了自己的ODataJPAProcessor,如此处所述(请注意,我扩展了ODataJPAProcessorDefault):

Apache Olingo库

在处理器内部,您可以覆盖创建和更新。 在那里,您可以将文件提取为byte []并根据需要进行处理。

希望这有助于尝试实现类似功能的人。

干杯

卢克

微wx笑
3楼-- · 2020-08-26 07:00

嗨,

我发现这个问题有点晚了,但是我有可行的解决方案,我写了一个SCN博客来处理blob对象的存储和检索。

https://blogs.sap.com/2017/08/03/binary-content-upload-and-download-from-hana-db-through-apache-olingo -odata-in-sap-cloud-foundry/

这可能会有所帮助。

感谢拉吉尼斯人

一周热门 更多>