Django, 칠우 클라우드 저장소에 사진 올리기

1710 단어
칠우운은 서버가 이미지 등 데이터를 저장하는 데 도움을 줄 수 있다. Dropbox 등 저장 서비스와 유사하고 파일 저장에 전념하는 제3자 서비스 업체가 서비스가 비교적 좋다.최근에 서버에 그림을 저장할 때 칠우를 이용하여 그림이나 파일을 칠우에 저장하고 자신의 서버는 자원만 칠우 파일의 URL에 저장할 생각이다.
여기서 주로 Django가 칠우 클라우드 플러그인 서비스를 어떻게 사용하는지 설명합니다.

칠우운을 설치한 가방

$ pip install qiniu

Djnago 프로젝트 구성


settings.py 설정

QINIU_ACCESS_KEY = ' access_key'
QINIU_SECRET_KEY = ' secert_key'
QINIU_BUCKET_NAME = ' bucket_name'

uploadpic.py 업로드 방법

import io
import uuid

import qiniu
from PIL import Image
from django.conf import settings

q = qiniu.Auth(settings.QINIU_ACCESS_KEY, settings.QINIU_SECRET_KEY)

def upload(img):
    _img = img.read()
    size = len(_img) / (1024 * 1024)  #   M 
    
    image = Image.open(io.BytesIO(_img))
    
    key = str(uuid.uuid1()).replace('-', '')

    name = 'upfile.{0}'.format(image.format)  #  ( )
   
    if size > 1:
        #  
        x, y = image.size
        im = image.resize((int(x / 1.73), int(y / 1.73)), Image.ANTIALIAS) #  1.73  
    else:
        #  
        im = image
    
    im.save('./media/' + name)  #  media 
    path = './media/' + name
    
    token = q.upload_token(settings.QINIU_BUCKET_NAME, key, 3600,)
    
    qiniu.put_file(token, key, path)
    url = 'http://7u2iif.com1.z0.glb.clouddn.com/{}'.format(key)
    return url

views.py 설정

from web.uploadpic import upload

def uploadpic(request):
    img = request.FILES['file']
    url = upload(img)
    return HttpResponse(url)

이 글은 동시에 나의 개인 블로그에 동기화됩니다

좋은 웹페이지 즐겨찾기