2016-10-06 291 views
0

我正在使用django rest框架和aws S3存儲。我將視頻文件上傳到S3存儲區,並將加密密鑰保存爲django模型的二進制字段格式(s3存儲的要求)。現在我需要使用post請求將此密鑰傳遞給另一個遠程django服務器。當我使用請求庫傳遞密鑰時,不知何故,當我從其他服務器上的發佈請求中提取它時,它會發生更改,我無法使用它。如果有人告訴我如何通過post請求使用django請求庫來傳遞二進制字段數據,將不勝感激。我製作POST請求的代碼是通過發佈請求傳輸django二進制文件數據

import requests enc_key = some_object.key # key is a models.BinaryField() data = {'enc_key' : enc_key} response = requests.post(url, data = data)

,而其他服務器上我提取enc_key從POST請求這樣

enc_key = request.POST['enc_key']

但關鍵是不再可用。

回答

0

是否enc_key真的是models.BinaryField的一個實例?如果是python3,它應該是memoryview

Btw,requests與Django完全分離,你應該嘗試發佈沒有Django的二進制數據,然後在框架下與neceassary打架。也許你可以從遠程機器直接從數據庫中檢索數據?如果沒有,嘗試以這種方式發送測試二進制數據:

res = requests.post(url=remote_url, 
        data=data, 
        headers={'Content-Type': 'application/octet-stream'}) 
相關問題