相关疑难解决方法(0)

Python:HTTP发布带有流媒体的大文件

我正在将可能很大的文件上传到Web服务器.目前我这样做:

import urllib2

f = open('somelargefile.zip','rb')
request = urllib2.Request(url,f.read())
request.add_header("Content-Type", "application/zip")
response = urllib2.urlopen(request)
Run Code Online (Sandbox Code Playgroud)

但是,这会在发布之前将整个文件的内容读入内存.我怎样才能将文件流式传输到服务器?

python http urllib2

16
推荐指数
2
解决办法
3万
查看次数

urllib2 POST进度监控

我正在通过POST将带有urllib2的相当大的文件上传到服务器端脚本.我想显示一个显示当前上传进度的进度指示器.是否有urllib2提供的钩子或回调,允许我监控上传进度?我知道您可以通过连续调用连接的read()方法进行下载,但是我没有看到write()方法,只是向请求添加数据.

python http urllib2 http-post

10
推荐指数
1
解决办法
4603
查看次数

Python 请求模块:分块发布非常大的文件以监控进度

我在 Windows 10 上使用 Python 3.8 使用该requests模块。正如标题所示,我正在将非常大的文件发布到 HTTP 服务器,并且我想提供上传的状态。

我已经阅读了 10-20 个关于这个主题的 Stack Overflow 帖子,阅读了互联网上散布的文章,并深入研究了 GitHub 上我现在甚至不记得的项目的源代码。我试图实现我读到的所有内容,但无济于事。关于这个主题的很多信息已经有很多年了,并且该requests模块自那以后已经得到了很大的改进 - 因此一些信息可能已经过时。

我遇到的问题是使用 发送文件块requests.Response.post('Some-URL', data=file_chunk, header=header)。如果上传了 5 个文件块,则服务器上有 5 个单独的文件,而不是 1 个组合文件。

为了提供文件上传的状态,我创建了一个类似于下面所示示例的生成器函数。

def read_in_chunks(file_object, chunk_size=1024):
    """Generator to read a file piece by piece.
    Default chunk size: 1k."""
    while True:
        data = file_object.read(chunk_size)
        if not data:
            break
        yield data
Run Code Online (Sandbox Code Playgroud)

然后我迭代了这样创建的生成器对象:

with open('Some-File.zip', 'rb') as file_obj:
    for file_chunk in read_in_chunks(file_obj):
        requests.Response.post('Some-URL', data=file_chunk.encode('utf-8'), header=header)
Run Code Online (Sandbox Code Playgroud)

这不起作用。在文件块上传到的服务器上,每个块作为单独的文件存储在服务器上。如果文件被分成 5 个块,那么现在就有 5 个文件。在 …

python post chunks python-3.x python-requests

5
推荐指数
0
解决办法
5648
查看次数

如何从命令行使用Seafile生成的不带身份验证令牌的上载链接

借助Seafile,人们可以创建公共上传链接(例如https://cloud.seafile.com/u/d/98233edf89/),以通过不带身份验证的浏览器上传文件。

Seafile webapi不支持任何不带身份验证令牌的上传。

我该如何使用curl或python脚本从命令行使用此类链接?

python curl urllib2 http-upload seafile-server

4
推荐指数
1
解决办法
792
查看次数