신은섭(Shin Eun Seop)

add file listing without user name

add file listing at /restapi/file/*
need to modify `user` parameter in restful.views.FileList.get

kairos03/2018-1-d.cloud#10
......@@ -105,7 +105,7 @@ AUTH_PASSWORD_VALIDATORS = [
# Internationalization
# https://docs.djangoproject.com/en/2.0/topics/i18n/
LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'ko_kr'
TIME_ZONE = 'UTC'
......
......@@ -18,5 +18,5 @@ from django.conf.urls import url, include
urlpatterns = [
url('admin/', admin.site.urls),
url(r'^', include('restful.urls')),
url(r'^restapi/', include('restful.urls')),
]
......
import boto3
import json
S3 = boto3.client('s3')
BUCKET = '2018-dcloud'
def list_path(bucket, user, path):
files = []
# get list
objects = S3.list_objects(Bucket=bucket, Prefix='{}/{}'.format(user, path), Delimiter='/')
# get sub directorys
common_prefixes = objects.get('CommonPrefixes')
if common_prefixes:
for obj in common_prefixes:
files.append({'type':'diretory', 'name':obj.get('Prefix').split('/')[-2]})
# get files
contents = objects.get('Contents')
if contents:
for obj in contents:
file = obj.get('Key').split('/')[-1]
if file != '':
files.append({'type':'file', 'name':file})
return {'files':files}
# print(list_path(BUCKET, 'test1', ''))
\ No newline at end of file
from django.conf.urls import url
from django.shortcuts import redirect
from rest_framework.urlpatterns import format_suffix_patterns
from restful import views
urlpatterns = [
url(r'^files/$', views.FileList.as_view(), name='file-list'),
url(r'^files/(?P<pk>[0-9]+)/$', views.FileDetail.as_view(), name='file-detail'),
url(r'^files/(?P<path>(\/*[a-zA-z0-9가-힣._-]*/)*)$', views.FileList.as_view(), name='file-list'),
url(r'^files/(?P<pk>[0-9]+)/$', views.FileDetail.as_view()),
]
urlpatterns = format_suffix_patterns(urlpatterns)
\ No newline at end of file
......
......@@ -4,6 +4,7 @@ from django.http import Http404
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from restful import s3_interface
# Create your views here.
......@@ -12,10 +13,14 @@ class FileList(APIView):
List all file, or create a new snippet.
"""
def get(self, request, format=None):
file = File.objects.all()
serializer = FileSerializer(file, many=True)
return Response(serializer.data)
def get(self, request, path='/', format=None):
# file = File.objects.all()
# serializer = FileSerializer(file, many=True)
# print(serializer.data)
# return Response(serializer.data)
data = s3_interface.list_path(s3_interface.BUCKET, 'test1', path)
return Response(data)
def post(self, request, format=None):
serializer = FileSerializer(data=request.data)
......
from django.conf.urls import url
from website import views, auth_views
urlpatterns = [
# blog
url(r'^$', views.post_list, name='post_list'),
url(r'^post/(?P<pk>\d+)/$', views.post_detail, name='post_detail'),
url(r'^post/new/$', views.post_new, name='post_new'),
url(r'^post/(?P<pk>\d+)/edit/$', views.post_edit, name='post_edit'),
url(r'^drafts/$', views.post_draft_list, name='post_draft_list'),
url(r'^post/(?P<pk>\d+)/publish/$', views.post_publish, name='post_publish'),
url(r'^files/$', views.file_list, name='file_list'),
url(r'^signup/$', auth_views.signup, name='signup'),
]
\ No newline at end of file