使用 tHttpRequest 从具有身份验证的 Sharepoint 下载 Excel 文件
Using tHttpRequest to download an Excel File from Sharepoint with Authentication
我想从 Sharepoint 下载 Excel 文件并将其用作 tFileInputExcel 组件的输入。 tHttpRequest 似乎是唯一能够通过身份验证从共享点服务器下载文件的组件。
当然可以通过 tHttpRequest 下载文件,将响应写入文件,然后使用 tFileInputExcel 组件加载该文件。
例子,但我不想那样。
但是,我不想要中间文件并使用 tFileInputExcel 组件的 "stream" 功能。我没有实现的是将下载的内容转换为 excel 组件可用的流:
((java.io.InputStream)globalMap.get("what goes here? And where does it come from?"))
Here's an example 使用 tFileFetch 组件,但该组件无法通过身份验证从共享点下载。
我扩展了 tHttpRequest 组件并创建了 tHttpRequestEx。新组件将 ByteArrayInputStream 保存到全局映射中,可以从 tFileInputExcel 组件读取:
((java.io.ByteArrayInputStream)globalMap.get("tHttpRequestEx_1_INPUT_STREAM"))
I uploaded the component on exchange.talend.com.
当然,使用非标准组件有很大的缺点。坚持文件下载可能是更好的解决方案,并使用 tCreateTemporaryFile 来处理创建和删除文件的复杂性。
你可以把tHttpRequest
返回的内容写到tJavaFlex
里面的ByteArrayOutputStream
,然后像这样把它转换成ByteArrayInputStream
:
确保在 tHttpRequest
上取消选中 "Write response content to file"。
在我的示例中,我下载了一个文本文件,因为我没有 link 到 excel,但它的工作原理是一样的。您可以像这样将文件作为输入流读取:
我想从 Sharepoint 下载 Excel 文件并将其用作 tFileInputExcel 组件的输入。 tHttpRequest 似乎是唯一能够通过身份验证从共享点服务器下载文件的组件。
当然可以通过 tHttpRequest 下载文件,将响应写入文件,然后使用 tFileInputExcel 组件加载该文件。
例子,但我不想那样。
但是,我不想要中间文件并使用 tFileInputExcel 组件的 "stream" 功能。我没有实现的是将下载的内容转换为 excel 组件可用的流:
((java.io.InputStream)globalMap.get("what goes here? And where does it come from?"))
Here's an example 使用 tFileFetch 组件,但该组件无法通过身份验证从共享点下载。
我扩展了 tHttpRequest 组件并创建了 tHttpRequestEx。新组件将 ByteArrayInputStream 保存到全局映射中,可以从 tFileInputExcel 组件读取:
((java.io.ByteArrayInputStream)globalMap.get("tHttpRequestEx_1_INPUT_STREAM"))
I uploaded the component on exchange.talend.com.
当然,使用非标准组件有很大的缺点。坚持文件下载可能是更好的解决方案,并使用 tCreateTemporaryFile 来处理创建和删除文件的复杂性。
你可以把tHttpRequest
返回的内容写到tJavaFlex
里面的ByteArrayOutputStream
,然后像这样把它转换成ByteArrayInputStream
:
确保在 tHttpRequest
上取消选中 "Write response content to file"。
在我的示例中,我下载了一个文本文件,因为我没有 link 到 excel,但它的工作原理是一样的。您可以像这样将文件作为输入流读取: