gpt4 book ai didi

python - 在 Python WSGI 中处理 HTTP PUT 方法

转载 作者:可可西里 更新时间:2023-11-01 16:31:20 27 4
gpt4 key购买 nike

我目前有一个 bash 应用程序,除其他外,它使用 cURL 通过 PUT 方法将文件上传到 Web 应用程序。我试图复制 Web 应用程序,因为客户端 (bash) 部分是 GPL,但 Web 部分不是。我也无法更改客户端应用程序,因为它会从开发人员的网站自动更新。我找到了大量关于如何使用 WSGI、CherryPy、Twisted 以及几乎所有让 Python 脚本在 WWW 上运行的方法来处理 HTTP POST 方法的信息。但是,我找不到关于 PUT 方法的任何信息。有谁知道如何使用 WSGI 处理 PUT 请求,或者是否有其他一些我缺少的具有 PUT 功能的框架?

最佳答案

据我了解,您将只想读取流 environ['wsgi.input'],因为 PUT 请求将发送PUT 作为请求的主体。

我不知道您必须处理任何编码问题(除了它是二进制的事实)。

前段时间,我编写了一组简单的 PHP 脚本,用于从 LAN 上的另一台服务器获取和提供大量文件。我们从 POST 开始,但很快就用完了较大文件的内存。所以我们切换到 PUT,PHP 脚本可以花时间循环 php://input 一次(或其他)4096 字节...效果很好。

这是 PHP 代码:

$f1 = fopen('php://input', 'rb');
$f2 = fopen($FilePath, 'wb');

while($data = fread($f1, 4096))
{
fwrite($f2, $data);
}

fclose($f1);
fclose($f2);

根据我在 WSGI 中使用 POST 处理 multipart/form-data 的经验,我毫不怀疑您可以通过以下方式处理 PUT只是读取输入流。

python代码应该是这样的:

  output = open('/tmp/input', 'wb')
while True:
buf = environ['wsgi.input'].read(4096)
if len(buf) == 0:
break
output.write(buf)

关于python - 在 Python WSGI 中处理 HTTP PUT 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4642423/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com