在pycurl窗口64/32位整数问题

我正尝试使用pycurl上传大文件(> 2GB),并遇到一个奇怪的问题。 当从64位nix机器(PycURL / 7.19.3 libcurl / 7.35.0)上传时,从64位窗口(PycURL / 7.19.5.1 libcurl / 7.37)运行相同的代码时,file upload没有任何问题。 0)机上传失败。

我遵循一些指南,确保fstypes(NTFS)支持大文件,确保服务器端的nginxconfiguration正确,但仍然没有运气。

进一步debugging后,我看到从Windows机器发送的基础http请求具有错误的大小属性:

Content-Length: -1320951182 

实际文件大小为:2974015488。

如果我在Windows机器上检查python cli,我会得到:

 >>> type(2974015488) 6: <type 'long'> 

如果我在linux机器上检查python cli,我会得到:

 >>> type(2974015488) 2: <type 'int'> 

我想我需要以某种方式欺骗Windows机器上的pycurl接受作为一个整数值,我尝试了多种使用ctypes的变化,并与sys.maxint和sys.maxsize摆弄,但没有工作。

有没有办法告诉python使用64位整数而不是长整型?

谢谢

PS – 我需要使用pycurl,因为所有其他选项将文件转储到RAM(是的,甚至在stream模式下的请求)

我认为你是混乱的事情。

使用libcurl时,应将大于2GB的文件大小作为curl_off_t类型传递给CURLOPT_INFILESIZE_LARGE选项。 所有已知的64位体系结构(包括win64)都应该是64位。

如果pycurl没有这样做,这是错误的。 如果确实如此,这个问题是另一回事