Toggle navigation
Toggle navigation
This project
Loading...
Sign in
cse437_e
/
smartdoorlock-backend
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
최지우
2020-10-09 18:01:56 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
4ef7846005ee695feb604e34804ac98a3d261368
4ef78460
1 parent
1cef6d57
add Video AutoDelete, Delete API
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
39 additions
and
12 deletions
.aws_key.json
.gitignore
api/admin.py
api/migrations/__init__.py
api/models.py
api/views.py
src/urls.py
.aws_key.json
deleted
100644 → 0
View file @
1cef6d5
{
"aws"
:
{
"access_key_id"
:
"AKIA5ZZ6DPFONI4VDIPH"
,
"secret_access_key"
:
"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"
,
"s3_bucket_name"
:
"khuproject2020"
,
"s3_access_url"
:
"https://khuproject2020.s3.ap-northeast-2.amazonaws.com/"
}
}
\ No newline at end of file
.gitignore
View file @
4ef7846
...
...
@@ -4,4 +4,4 @@ __pycache__
db.sqlite3
/static
.DS_Store
.aws_key
.json
*
.json
...
...
api/admin.py
View file @
4ef7846
from
django.contrib
import
admin
from
.models
import
Video
,
Phone
# Register your models here.
admin
.
site
.
register
(
Video
)
admin
.
site
.
register
(
Phone
)
\ No newline at end of file
...
...
api/migrations/__init__.py
0 → 100644
View file @
4ef7846
File mode changed
api/models.py
View file @
4ef7846
from
django.db
import
models
from
django.conf
import
settings
from
django.utils
import
timezone
# Create your models here.
...
...
@@ -6,7 +7,8 @@ class Phone(models.Model) :
username
=
models
.
CharField
(
max_length
=
255
)
and_id
=
models
.
CharField
(
max_length
=
255
,
primary_key
=
True
)
class
Video
(
models
.
Model
)
:
vidname
=
models
.
CharField
(
max_length
=
255
)
vidname
=
models
.
CharField
(
max_length
=
255
,
primary_key
=
True
)
created
=
models
.
DateTimeField
(
default
=
timezone
.
now
)
s3_link
=
models
.
CharField
(
max_length
=
255
)
\ No newline at end of file
...
...
api/views.py
View file @
4ef7846
...
...
@@ -15,12 +15,13 @@ from rest_framework.response import Response
from
boto3.session
import
Session
from
src.settings
import
AWS_REGION
from
src.settings
import
S3_ACCESS_URL
from
src.settings
import
S3_ACCESS_KEY_ID
,
S3_SECRET_ACCESS_KEY
,
S3_STORAGE_BUCKET_NAME
from
datetime
import
datetime
,
timedelta
# Create your views here.
class
VideoDownload
(
APIView
)
:
def
get
(
self
,
request
,
format
=
None
)
:
def
get
(
self
,
request
,
format
=
None
)
:
try
:
request_id
=
request
.
GET
.
get
(
'vidname'
)
if
request_id
==
'None'
:
...
...
@@ -43,4 +44,32 @@ class VideoDownload(APIView) :
'date'
:
datetime
.
now
()
},
status
=
status
.
HTTP_404_NOT_FOUND
)
class
VideoAutoDelete
(
APIView
)
:
def
post
(
self
,
request
,
format
=
None
)
:
checkdate
=
datetime
.
now
()
+
timedelta
(
days
=
-
7
)
quaryset
=
Video
.
objects
.
filter
(
created__lt
=
checkdate
)
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'
)
for
delvid
in
quaryset
:
s3
.
delete_object
(
Bucket
=
S3_STORAGE_BUCKET_NAME
,
Key
=
str
(
delvid
.
vidname
))
quaryset
.
delete
()
return
Response
(
status
=
status
.
HTTP_200_OK
)
class
VideoDelete
(
APIView
)
:
def
post
(
self
,
request
,
format
=
None
)
:
try
:
request_id
=
request
.
GET
.
get
(
'vidname'
)
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
(
vidname
=
request_id
)
s3
.
delete_object
(
Bucket
=
S3_STORAGE_BUCKET_NAME
,
Key
=
str
(
target
.
vidname
))
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
)
\ No newline at end of file
...
...
src/urls.py
View file @
4ef7846
...
...
@@ -21,4 +21,6 @@ from api import views
urlpatterns
=
[
path
(
'admin/'
,
admin
.
site
.
urls
),
path
(
'api/videoDownload/'
,
views
.
VideoDownload
.
as_view
()),
path
(
'api/videoAutoDelete/'
,
views
.
VideoAutoDelete
.
as_view
()),
path
(
'api/videoDelete/'
,
views
.
VideoDelete
.
as_view
()),
]
...
...
Please
register
or
login
to post a comment