1. 程式人生 > 實用技巧 >使用七牛雲上傳 並將本地圖片視屏上傳

使用七牛雲上傳 並將本地圖片視屏上傳

上傳視屏 圖片 到七牛雲

  • 參考七牛雲SDK

  • # pythonSDK
    https://developer.qiniu.com/kodo/sdk/1242/python
    
  • 在 oauth/urls.py 中新增生成七牛雲token的路由2

  • urlpatterns = [
    path('qntoken/', views.QNYTokenView.as_view()), # /oauth/qntoken/
    ]
    
    
  • 在 oauth/views.py 中新增檢視函式

  • '''獲取上傳token'''
    
    
    class QNYTokenView(APIView):
        def get(self, request):
            from qiniu import Auth, put_file, etag
            import qiniu.config
            # 需要填寫你的 Access Key 和 Secret Key
            access_key = "x9IZ00wv3IyGX5H6eGj0ZXL3gRjE_mZJBQ2gANgv"
            secret_key = "Ms3mFWo-QFkHFvBoOSTttuA1iykrpDoeiseipNrN"
            # 構建鑑權物件
            q = Auth(access_key, secret_key)
            # 要上傳的空間
            bucket_name = 'syl-1911a'
            # 生成上傳 Token,可以指定過期時間等
            token = q.upload_token(bucket_name, expires=3600)
            return Response({'code': 0, 'msg': '獲取', 'data': {'uptoken': token}})
    
    
  • 測試獲取七牛雲token介面

  • http://192.168.56.100:8888/oauth/qntoken/
    
  • {
        "code": 0,
        "msg": "獲取",
        "data": {
            "uptoken": "x9IZ00wv3IyGX5H6eGj0ZXL3gRjE_mZJBQ2gANgv:_jyVEzLl96JIbcIqf4vtGi0-j1k=:eyJzY29wZSI6InN5bC0xOTExYSIsImRlYWRsaW5lIjoxNjA0ODM3NTM1fQ=="
        }
    }
    
  • 獲取七牛雲祕鑰 1.2 在syl/settings.py中配置七牛雲上傳

  • 參考官方 syl/settings.py 中配置七牛雲上傳

    https://portal.qiniu.com/user/key

  • 在syl/settings.py中配置七牛雲上傳

  • 參考官方
    syl/settings.py 中配置七牛雲上傳
    https://portal.qiniu.com/user/key
    https://github.com/glasslion/django-qiniu-storage
    
  • # 增加配置settings.py
    QINIU_ACCESS_KEY = "x9IZ00wv3IyGX5H6eGj0ZXL3gRjE_mZJBQ2gANgv" # 七牛
    QINIU_SECRET_KEY = "Ms3mFWo-QFkHFvBoOSTttuA1iykrpDoeiseipNrN" # 七牛
    QINIU_BUCKET_NAME = "syl-1911a" # 庫名字
    QINIU_BUCKET_DOMAIN = "qjepbbvn7.hb-bkt.clouddn.com" # 外部訪問連結
    # http://qjepbbvn7.hb-bkt.clouddn.com
    QINIU_SECURE_URL = False # 使用http
    PREFIX_URL = 'http://'
    MEDIA_URL = PREFIX_URL + QINIU_BUCKET_DOMAIN + '/media/'
    DEFAULT_FILE_STORAGE = 'qiniustorage.backends.QiniuMediaStorage' # 指定檔案管理類
    MEDIA_ROOT = os.path.join('', "media")
    # MEDIA_URL = '/media/'
    # MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    
  • 使用admin測試