최지우

비디오모델 썸네일 추가 및 프로세스 연결 수정

......@@ -13,6 +13,7 @@ class Device(models.Model) :
class Video(models.Model) :
vid_name = models.CharField(max_length = 255, primary_key = True)
created = models.DateTimeField(default = timezone.now)
thumb = models.CharField(max_length = 255)
class Lock(models.Model) :
id = models.IntegerField(primary_key = True)
......
import os
#import boto3
#import botocore
import boto3
import botocore
import time
import datetime
'''
from django.core import serializers
from api.models import Video, Record
from api.serializers import VideoSerializer, RecordSerializer
'''
from boto3.session import Session
from src.settings import AWS_REGION, S3_ACCESS_URL, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_STORAGE_BUCKET_NAME
'''
import RPi.GPIO as GPIO
from picamera import PiCamera
'''
def record() :
path = '/home/pi/recorded' # save path
state = True
target = Record.objects.get(id = 1)
serializer = RecordSerializer(target, many = False)
state = serializer.data['recording']
#'''
# rpi setting
GPIO.setmode(GPIO.BCM)
......@@ -28,11 +30,6 @@ def record() :
try:
while state :
'''
target = Record.objects.get(id = 1)
serializer = RecordSerializer(target, many = False)
state = serializer.data['recording']
'''
if GPIO.input(pir_pin): # motion detected
# take a video
camera.resolution = [320, 240]
......@@ -44,22 +41,24 @@ def record() :
camera.start_recording(output=vid_path)
time.sleep(1)
camera.capture(thumbnail_path)
while GPIO.input(pir_pin):
print("recoring..")
time.sleep(2)
while GPIO.input(pir_pin) :
print("recoring..")
time.sleep(2)
camera.stop_recording()
camera.stop_preview()
# s3 upload
'''
s3 = boto3.client('s3', region_name = 'ap-northeast-2')
s3.upload_file(Filename = vid_path, Bucket = S3_STORAGE_BUCKET_NAME, Key = vid_name)
s3 = boto3.client('s3', region_name = 'ap-northeast-2')
s3.upload_file(Filename = vid_path, Bucket = S3_STORAGE_BUCKET_NAME, Key = vid_name)
s3.upload_file(Filename = thumbnail_path, Bucket = S3_STORAGE_BUCKET_NAME, Key = vid_name + '_thumb')
uploadVideo = {}
uploadVideo['vid_name'] = vid_name
uploadVideo['created'] = now
serializer = VideoSerializer(data = uploadVideo)
serializer.save()
uploadVideo = {}
uploadVideo['vid_name'] = vid_name
uploadVideo['created'] = now
uploadVideo['thumb'] = 'http://' + S3_STORAGE_BUCKET_NAME + 's3.ap-northeast-2.amazonaws.com/' + vid_name + '_thumb'
serializer = VideoSerializer(data = uploadVideo)
serializer.save()
'''
print(vid_path, "upload success")
os.remove(vid_path)
......
......@@ -110,10 +110,6 @@ class Recording(APIView) :
try :
target = Record.objects.filter(id = 1)
target.update(recording = request.data['recording'])
if request.data['recording'] :
threading.Thread(target=record).start()
return Response(status = status.HTTP_200_OK)
except FieldDoesNotExist as error :
return Response({
......