django 和 七牛雲 互動
阿新 • • 發佈:2020-10-28
django 和 七牛雲 互動
-
七牛開發文件(https://developer.qiniu.com/kodo/sdk/1242/python)
-
安裝
pip install qiniu
-
初始化
# access_key 個人中心的 ak # secret_key 個人中心的 sk from qiniu import Auth q = Auth(access_key, secret_key)
-
上傳流程
from qiniu import Auth, put_file, etag import qiniu.config #需要填寫你的 Access Key 和 Secret Key access_key = 'Access_Key' secret_key = 'Secret_Key' #構建鑑權物件 q = Auth(access_key, secret_key) #要上傳的空間 bucket_name = 'Bucket_Name' #上傳後儲存的檔名,如果不寫的話,需要填寫None key = 'my-python-logo.png' #生成上傳 Token,可以指定過期時間等 token = q.upload_token(bucket_name, key, 3600) #要上傳檔案的本地路徑,需要指定資源的絕對路徑,如果資源名稱相同,預設為第一次上傳的資源。 localfile = './sync/bbb.jpg' # 上傳資源 ret, info = put_file(token, key, localfile) # 上傳成功,獲取的狀態碼為200,沒有錯誤資訊 info.status_code # 上傳失敗,獲取的錯誤資訊, info.error
-
設定回撥函式
from qiniu import Auth, put_file, etag import qiniu.config #需要填寫你的 Access Key 和 Secret Key access_key = 'Access_Key' secret_key = 'Secret_Key' #構建鑑權物件 q = Auth(access_key, secret_key) #要上傳的空間 bucket_name = 'Bucket_Name' #上傳後儲存的檔名,如果不寫的話,需要填寫None key = 'my-python-logo.png' #上傳檔案到七牛後, 七牛將檔名和檔案大小回調給業務伺服器。 policy={ 'callbackUrl':'http://your.domain.com/callback.php', 'callbackBody':'filename=$(fname) & filesize=$(fsize)' } #生成上傳 Token,可以指定過期時間等 token = q.upload_token(bucket_name, key, 3600,policy) #要上傳檔案的本地路徑,需要指定資源的絕對路徑,如果資源名稱相同,預設為第一次上傳的資源。 localfile = './sync/bbb.jpg' # 上傳資源 ret, info = put_file(token, key, localfile) # 上傳成功,獲取的狀態碼為200,沒有錯誤資訊 info.status_code # 上傳失敗,獲取的錯誤資訊, info.error
-
回撥檔案
# callback.php <?php $data = $_REQUEST; file_put_contents('a.txt',$data);
-
根據伺服器地址,可以看回調資料
success.png 2738 # 回撥體裡的資訊 圖片名稱 和 圖片大小。