오윤석

video delete 안 되는 오류 수정

......@@ -266,37 +266,10 @@ class VideoList(APIView) :
return Response({
'error' : "PermissionDenied",
'date' : datetime.now()
}, status = status.HTTP_400_BAD_REQUEST)
# 비디오 수동 삭제
def delete(self, request, vid_name, format = None) : # request URI에 vid_name가 포함되어있음 : api/video/{vid_name}
try :
if request.auth == None :
raise PermissionDenied
request_id = vid_name
if request_id == 'None' :
raise FieldDoesNotExist
session = boto3.session.Session(aws_access_key_id = S3_ACCESS_KEY_ID, aws_secret_access_key = S3_SECRET_ACCESS_KEY, region_name = AWS_REGION)
s3 = session.client('s3')
target = Video.objects.get(vid_name = request_id)
s3.delete_object(Bucket = S3_STORAGE_BUCKET_NAME, Key = str(target.vid_name) + '.mp4')
s3.delete_object(Bucket = S3_STORAGE_BUCKET_NAME, Key = str(target.vid_name) + '_thumb.jpg')
target.delete()
return Response(status = status.HTTP_200_OK)
except FieldDoesNotExist as error :
return Response({
'error' : "FieldDoesNotExist ",
'date' : datetime.now()
}, status = status.HTTP_400_BAD_REQUEST)
except PermissionDenied as error :
return Response({
'error' : "PermissionDenied",
'date' : datetime.now()
}, status = status.HTTP_400_BAD_REQUEST)
}, status = status.HTTP_400_BAD_REQUEST)
# 비디오 확인(다운로드)
class VideoDownload(APIView) :
# 비디오 확인
class VideoDetail(APIView) :
def get(self, request, vid_name, format = None) : # 요청한 URI에 vid_name가 포함되어있음
try :
if request.auth == None :
......@@ -304,6 +277,9 @@ class VideoDownload(APIView) :
request_id = vid_name
if request_id == 'None' :
raise FieldDoesNotExist
queryset = Video.objects.filter(vid_name = request_id) # door_id 유효성 검색
if not queryset.exists():
raise FieldDoesNotExist
download_url = S3_ACCESS_URL + str(request_id) + '.mp4' # S3 다운로드 링크 변환
if not download_url :
raise ObjectDoesNotExist
......@@ -327,6 +303,33 @@ class VideoDownload(APIView) :
'date' : datetime.now()
}, status = status.HTTP_400_BAD_REQUEST)
# 비디오 수동 삭제
def delete(self, request, vid_name, format = None) : # request URI에 vid_name가 포함되어있음 : api/video/{vid_name}
try :
if request.auth == None :
raise PermissionDenied
request_id = vid_name
if request_id == 'None' :
raise FieldDoesNotExist
session = boto3.session.Session(aws_access_key_id = S3_ACCESS_KEY_ID, aws_secret_access_key = S3_SECRET_ACCESS_KEY, region_name = AWS_REGION)
s3 = session.client('s3')
target = Video.objects.get(vid_name = request_id)
s3.delete_object(Bucket = S3_STORAGE_BUCKET_NAME, Key = str(target.vid_name) + '.mp4')
s3.delete_object(Bucket = S3_STORAGE_BUCKET_NAME, Key = str(target.vid_name) + '_thumb.jpg')
target.delete()
return Response(status = status.HTTP_200_OK)
except FieldDoesNotExist as error :
return Response({
'error' : "FieldDoesNotExist ",
'date' : datetime.now()
}, status = status.HTTP_400_BAD_REQUEST)
except PermissionDenied as error :
return Response({
'error' : "PermissionDenied",
'date' : datetime.now()
}, status = status.HTTP_400_BAD_REQUEST)
# 비디오 자동 삭제
class CheckDate(APIView) :
def delete(self, request, format = None) :
......
......@@ -21,7 +21,7 @@ from api import views
urlpatterns = [
path('admin/', admin.site.urls),
path('api/video', views.VideoList.as_view()),
path('api/video/<str:vid_name>', views.VideoDownload.as_view()),
path('api/video/<str:vid_name>', views.VideoDetail.as_view()),
path('auto/checkDate', views.CheckDate.as_view()),
path('api/setting', views.Recording.as_view()),
path('api/auth', views.Login.as_view()),
......