0

私はmp3ファイルをWebホストにアップロードすることに取り組んでいます(私は制御できません).StackOverflowに関する関連する質問の後、ホストがGzipエンコードされたアップロードをサポートしていることに気付きました.

Python では、ストリーム (open(filename) から取得) をエンコードしてサーバーに送信するにはどうすればよいでしょうか?

def upSong(fileName):
    datagen, headers = multipart_encode({"mumuregularfile_0": open(fileName, "rb")})

    uploadID = math.floor(random.random()*1000000)
    request = urllib2.Request("http://upload0.mumuplayer.com:443/?browserID=" + browserID + "&browserUploadID=" + str(uploadID), datagen, headers)

    urllib2.urlopen(request).read()

これはアップロードを行うコードであり、python にはかなり慣れていないため、このような問題にどのように対処すればよいかわかりませんが、Google は回答を提供していません。

4

1 に答える 1

2

組み込みの gzip ライブラリをご覧ください: ドキュメントはこちら: http://docs.python.org/library/gzip.html

StringIO 文字列ファイル オブジェクトを使用すると、余分なファイルを作成する必要がなくなります。

たぶん、このアプローチのようなもの:

import gzip, StringIO

def upSong(fileName):
    with open(filename, 'rb') as f
        stringf = StringIO.StringIO()
        zipper = gzip.GzipFile(mode = "wb", fileobj=stringf)
        zipper.write(f.read())
        zipper.close()
        datagen, headers = multipart_encode({"mumuregularfile_0": stringf)})

        uploadID = math.floor(random.random()*1000000)  
        request = urllib2.Request("http://upload0.mumuplayer.com:443/?browserID=" + browserID + "&browserUploadID=" + str(uploadID), datagen, headers)

        urllib2.urlopen(request).read()

未検証なので間違いがあるかもしれません...

于 2012-06-09T21:31:30.210 に答える