使用tHttpRequest从Sharepoint下载带有身份验证的Excel文件

时间:2017-11-29 17:06:18

标签: talend

我想从Sharepoint下载Excel文件,并将其用作tFileInputExcel组件的输入。 tHttpRequest似乎是唯一能够通过身份验证从sharepoint服务器下载文件的组件。

当然有效的方法是通过tHttpRequest下载文件,将响应写入文件,然后使用tFileInputExcel组件加载该文件。

Example, but I don't want it like that.

示例,但我不希望这样。

但是,我不想要中间文件并使用tFileInputExcel组件的“stream”功能。我没有实现的是将下载的内容转换为excel组件可用的流:

((java.io.InputStream)globalMap.get("what goes here? And where does it come from?"))

Here's an example使用tFileFetch组件,但此组件无法通过身份验证从sharepoint下载。

2 个答案:

答案 0 :(得分:3)

您可以将tHttpRequest返回的内容写入ByteArrayOutputStream内的tJavaFlex,然后将其转换为ByteArrayInputStream,就可以这样做:

enter image description here

确保取消选中tHttpRequest上的“将回复内容写入文件”。

在我的示例中,我下载了一个文本文件,因为我没有指向excel的链接,但它的工作方式相同。您可以将文件读取为输入流,如下所示:

enter image description here

答案 1 :(得分:2)

我扩展了tHttpRequest组件并创建了tHttpRequestEx。新组件将ByteArrayInputStream保存到可从tFileInputExcel组件读取的全局映射:

((java.io.ByteArrayInputStream)globalMap.get("tHttpRequestEx_1_INPUT_STREAM"))

I uploaded the component on exchange.talend.com.

当然,使用非标准组件有很大的缺点。这可能是坚持文件下载的更好解决方案,并使用tCreateTemporaryFile来处理创建和删除文件的复杂性。