python 上傳文件


上周產品給我提了個需求,大體是做一個后台系統,管理游戲比賽落地頁的數據更新,難點在於需要給CDN上傳文件。現在把經驗記錄下來,下次有類似的需求能提高開發效率。

我使用的是網宿CDN,沒有用網宿的SDK,直接python封裝表單上傳文件。

使用post 上傳文件需要封裝HTTP 消息頭:

Content-Type:multipart/form-data; boundary=<boundary>  # boundary 是分隔符,表示使用<boundary>作為body體分割符
Accept: */*
Content-Length: XXXX

--<boundary>    #開始必須使用“--分隔符”作為body體的第一行,需要注意--一定不能丟
Content-Disposition: form-data; name="XXX"
/r/n         # 注意 name跟value之間一定要空一行
XXX_Value      # 表單XXX對應的Value值
Content-Dispositon: form-data; name='file'; filename='abc.png'
Content-Type: image/png
/r/n
“png的二進制數據”
--<boundary>-- #body體結束標記
/r/n



LIMIT = '----------lImIt_of_THE_fIle_eW_$'
CRLF = '\r\n'
L = []
for (key, value) in fields:
L.append('--' + LIMIT)
L.append('Content-Disposition: form-data; name="%s"' % key)
L.append('')
L.append(value)
for (key, filename, value) in files:
L.append('--' + LIMIT)
L.append('Content-Disposition: form-data; name="%s"; filename="%s"' % (key, filename))
L.append('Content-Type: %s' % get_content_type(filename))
L.append('')
L.append(value)
L.append('--' + LIMIT + '--')
L.append('')
body = CRLF.join(L)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM