通过python上传pdf文件(-10901,"请求数据包中没有剩余空间")

2020-09-16 01:52发布

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

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


您好,我尝试使用python脚本将pdf文件上传到hana db。 对于上传,我使用了教程 http:// saphanatutorial.com/implement-sap-hana-text-analysis-in-10-minutes /。 我仅上传了一个大小小于1.6MB的文件,而当我尝试上传大于1.6 MB的pdf文件时,出现跟随错误(-10901,"请求数据包中没有剩余空间")。 也许我的查询时间过长,因此出现了此错误。 我发现通过更改参数CommandBufferSize可以解决此问题,但是我不认为这是一个好主意。 有人可以通过解决这个问题向我展示另一种方式吗? 以防万一我的python脚本:

从hdbcli导入dbapi
 def Upload():
     conn = dbapi.connect('ip',port,'user','password')
     打印(conn.isconnected())
 文件=打开('TestFile.pdf','rb')
 内容= file.read()
     cursor = conn.cursor()
     cursor.execute("插入SAPABAP1.ZATTACHTEST值(?,?)",('MyID',content))
 file.close()
 conn.close()
 cursor.close()
 

最好的问候,
伊万

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

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


您好,我尝试使用python脚本将pdf文件上传到hana db。 对于上传,我使用了教程 http:// saphanatutorial.com/implement-sap-hana-text-analysis-in-10-minutes /。 我仅上传了一个大小小于1.6MB的文件,而当我尝试上传大于1.6 MB的pdf文件时,出现跟随错误(-10901,"请求数据包中没有剩余空间")。 也许我的查询时间过长,因此出现了此错误。 我发现通过更改参数CommandBufferSize可以解决此问题,但是我不认为这是一个好主意。 有人可以通过解决这个问题向我展示另一种方式吗? 以防万一我的python脚本:

从hdbcli导入dbapi
 def Upload():
     conn = dbapi.connect('ip',port,'user','password')
     打印(conn.isconnected())
 文件=打开('TestFile.pdf','rb')
 内容= file.read()
     cursor = conn.cursor()
     cursor.execute("插入SAPABAP1.ZATTACHTEST值(?,?)",('MyID',content))
 file.close()
 conn.close()
 cursor.close()
 

最好的问候,
伊万

付费偷看设置
发送
1条回答
南山jay
1楼 · 2020-09-16 02:54.采纳回答

好吧,我解决了我的问题。 首先值得一提的是,Hana Database的缓冲区很小,如果我们在sql语句中发送文件
,我们的缓冲区就会溢出。

最终,我已通过本教程将文件上传到SAP GW,从SAP GW下载文件-新技术。 然后您就可以通过python使用请求发送文件

有示例代码,希望它会有用:

 def SimplePost():
         url ='odata https url'
         auth_q ='用户','密码'
         headers_fetch = {'X-CSRF-Token':'Fetch'}
         客户端= request.session()
         client.get(URL,auth = auth_q,verify = False,headers = headers_fetch)
         令牌=(client.get(URL,auth = auth_q,verify = False,headers = headers_fetch).headers.get('x-csrf-token'))
         有效载荷= {
             'x-csrf-token':令牌,
             "内容类型":"应用程序/pdf",
         }
         r = client.post(url,data = fileUpload,headers = payload,verify = False,)
 

一周热门 更多>