1. 程式人生 > 實用技巧 >django 和 七牛雲 互動

django 和 七牛雲 互動

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  # 回撥體裡的資訊 圖片名稱 和 圖片大小。