2

Python でこれを見たことがないので、書き込みインターフェイスを使用してファイル (HTTP PUT や POST など) を送信できるものがあれば興味がありますか? fileファイル名またはオブジェクト (urllib、リクエストなど)を渡す読み取りインターフェイスしか見たことがありません。

もちろん、正当な理由でこれを見たことがないかもしれませんが、それについても知りたいと思っています。

4

1 に答える 1

-1

大まかに言えば理にかなっているように見えるかもしれませんが、ファイル インターフェイスを HTTP 動詞にマッピングしてみましょう。

file interface   http
------------------------
read             GET
                 HEAD
------------------------
write            POST
                 PUT
                 PATCH
------------------------
?                DELETE
                 OPTIONS

ご覧のとおり、ファイル インターフェイスと、RESTful インターフェイスに必要な一連の HTTP 動詞との間に明確なマッピングはありません。もちろん、GET(読み取り) とPOST(書き込み) のみを使用する実装を一緒にハックすることもできますが、それでは、他の HTTP 動詞をサポートするために拡張する必要が生じます。

コメントに基づいて編集:

私は自分で試したことはありませんが、深く (http/client.py) のように見えます。データが実装されている場合read、次のように読み取られます。

        while 1:
            datablock = data.read(blocksize)
            if not datablock:
                break
            if encode:
                datablock = datablock.encode("iso-8859-1")
            self.sock.sendall(datablock)

ただし、これを行うとパフォーマンスが低下する可能性があることに注意してください。

# If msg and message_body are sent in a single send() call,
# it will avoid performance problems caused by the interaction
# between delayed ack and the Nagle algorithm. However,
# there is no performance gain if the message is larger
# than MSS (and there is a memory penalty for the message
# copy).

そうです、ファイルオブジェクトをパラメータとして渡すことができるはずです。data

于 2013-03-05T18:32:43.433 に答える