我正在努力将mp3文件上传到webhost(我无法控制),在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来说还是新手我不知道我将如何处理这样的问题,但谷歌没有提供任何答案。
答案 0 :(得分: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()
未对此进行测试,因此可能存在错误......