Showing
2 changed files
with
34 additions
and
31 deletions
| ... | @@ -266,37 +266,10 @@ class VideoList(APIView) : | ... | @@ -266,37 +266,10 @@ class VideoList(APIView) : |
| 266 | return Response({ | 266 | return Response({ |
| 267 | 'error' : "PermissionDenied", | 267 | 'error' : "PermissionDenied", |
| 268 | 'date' : datetime.now() | 268 | 'date' : datetime.now() |
| 269 | - }, status = status.HTTP_400_BAD_REQUEST) | 269 | + }, status = status.HTTP_400_BAD_REQUEST) |
| 270 | - | ||
| 271 | -# 비디오 수동 삭제 | ||
| 272 | - def delete(self, request, vid_name, format = None) : # request URI에 vid_name가 포함되어있음 : api/video/{vid_name} | ||
| 273 | - try : | ||
| 274 | - if request.auth == None : | ||
| 275 | - raise PermissionDenied | ||
| 276 | - request_id = vid_name | ||
| 277 | - if request_id == 'None' : | ||
| 278 | - raise FieldDoesNotExist | ||
| 279 | - session = boto3.session.Session(aws_access_key_id = S3_ACCESS_KEY_ID, aws_secret_access_key = S3_SECRET_ACCESS_KEY, region_name = AWS_REGION) | ||
| 280 | - s3 = session.client('s3') | ||
| 281 | - | ||
| 282 | - target = Video.objects.get(vid_name = request_id) | ||
| 283 | - s3.delete_object(Bucket = S3_STORAGE_BUCKET_NAME, Key = str(target.vid_name) + '.mp4') | ||
| 284 | - s3.delete_object(Bucket = S3_STORAGE_BUCKET_NAME, Key = str(target.vid_name) + '_thumb.jpg') | ||
| 285 | - target.delete() | ||
| 286 | - return Response(status = status.HTTP_200_OK) | ||
| 287 | - except FieldDoesNotExist as error : | ||
| 288 | - return Response({ | ||
| 289 | - 'error' : "FieldDoesNotExist ", | ||
| 290 | - 'date' : datetime.now() | ||
| 291 | - }, status = status.HTTP_400_BAD_REQUEST) | ||
| 292 | - except PermissionDenied as error : | ||
| 293 | - return Response({ | ||
| 294 | - 'error' : "PermissionDenied", | ||
| 295 | - 'date' : datetime.now() | ||
| 296 | - }, status = status.HTTP_400_BAD_REQUEST) | ||
| 297 | 270 | ||
| 298 | -# 비디오 확인(다운로드) | 271 | +# 비디오 확인 |
| 299 | -class VideoDownload(APIView) : | 272 | +class VideoDetail(APIView) : |
| 300 | def get(self, request, vid_name, format = None) : # 요청한 URI에 vid_name가 포함되어있음 | 273 | def get(self, request, vid_name, format = None) : # 요청한 URI에 vid_name가 포함되어있음 |
| 301 | try : | 274 | try : |
| 302 | if request.auth == None : | 275 | if request.auth == None : |
| ... | @@ -304,6 +277,9 @@ class VideoDownload(APIView) : | ... | @@ -304,6 +277,9 @@ class VideoDownload(APIView) : |
| 304 | request_id = vid_name | 277 | request_id = vid_name |
| 305 | if request_id == 'None' : | 278 | if request_id == 'None' : |
| 306 | raise FieldDoesNotExist | 279 | raise FieldDoesNotExist |
| 280 | + queryset = Video.objects.filter(vid_name = request_id) # door_id 유효성 검색 | ||
| 281 | + if not queryset.exists(): | ||
| 282 | + raise FieldDoesNotExist | ||
| 307 | download_url = S3_ACCESS_URL + str(request_id) + '.mp4' # S3 다운로드 링크 변환 | 283 | download_url = S3_ACCESS_URL + str(request_id) + '.mp4' # S3 다운로드 링크 변환 |
| 308 | if not download_url : | 284 | if not download_url : |
| 309 | raise ObjectDoesNotExist | 285 | raise ObjectDoesNotExist |
| ... | @@ -327,6 +303,33 @@ class VideoDownload(APIView) : | ... | @@ -327,6 +303,33 @@ class VideoDownload(APIView) : |
| 327 | 'date' : datetime.now() | 303 | 'date' : datetime.now() |
| 328 | }, status = status.HTTP_400_BAD_REQUEST) | 304 | }, status = status.HTTP_400_BAD_REQUEST) |
| 329 | 305 | ||
| 306 | +# 비디오 수동 삭제 | ||
| 307 | + def delete(self, request, vid_name, format = None) : # request URI에 vid_name가 포함되어있음 : api/video/{vid_name} | ||
| 308 | + try : | ||
| 309 | + if request.auth == None : | ||
| 310 | + raise PermissionDenied | ||
| 311 | + request_id = vid_name | ||
| 312 | + if request_id == 'None' : | ||
| 313 | + raise FieldDoesNotExist | ||
| 314 | + session = boto3.session.Session(aws_access_key_id = S3_ACCESS_KEY_ID, aws_secret_access_key = S3_SECRET_ACCESS_KEY, region_name = AWS_REGION) | ||
| 315 | + s3 = session.client('s3') | ||
| 316 | + | ||
| 317 | + target = Video.objects.get(vid_name = request_id) | ||
| 318 | + s3.delete_object(Bucket = S3_STORAGE_BUCKET_NAME, Key = str(target.vid_name) + '.mp4') | ||
| 319 | + s3.delete_object(Bucket = S3_STORAGE_BUCKET_NAME, Key = str(target.vid_name) + '_thumb.jpg') | ||
| 320 | + target.delete() | ||
| 321 | + return Response(status = status.HTTP_200_OK) | ||
| 322 | + except FieldDoesNotExist as error : | ||
| 323 | + return Response({ | ||
| 324 | + 'error' : "FieldDoesNotExist ", | ||
| 325 | + 'date' : datetime.now() | ||
| 326 | + }, status = status.HTTP_400_BAD_REQUEST) | ||
| 327 | + except PermissionDenied as error : | ||
| 328 | + return Response({ | ||
| 329 | + 'error' : "PermissionDenied", | ||
| 330 | + 'date' : datetime.now() | ||
| 331 | + }, status = status.HTTP_400_BAD_REQUEST) | ||
| 332 | + | ||
| 330 | # 비디오 자동 삭제 | 333 | # 비디오 자동 삭제 |
| 331 | class CheckDate(APIView) : | 334 | class CheckDate(APIView) : |
| 332 | def delete(self, request, format = None) : | 335 | def delete(self, request, format = None) : | ... | ... |
| ... | @@ -21,7 +21,7 @@ from api import views | ... | @@ -21,7 +21,7 @@ from api import views |
| 21 | urlpatterns = [ | 21 | urlpatterns = [ |
| 22 | path('admin/', admin.site.urls), | 22 | path('admin/', admin.site.urls), |
| 23 | path('api/video', views.VideoList.as_view()), | 23 | path('api/video', views.VideoList.as_view()), |
| 24 | - path('api/video/<str:vid_name>', views.VideoDownload.as_view()), | 24 | + path('api/video/<str:vid_name>', views.VideoDetail.as_view()), |
| 25 | path('auto/checkDate', views.CheckDate.as_view()), | 25 | path('auto/checkDate', views.CheckDate.as_view()), |
| 26 | path('api/setting', views.Recording.as_view()), | 26 | path('api/setting', views.Recording.as_view()), |
| 27 | path('api/auth', views.Login.as_view()), | 27 | path('api/auth', views.Login.as_view()), | ... | ... |
-
Please register or login to post a comment