Merge branch 'dev' of https://github.com/jh8579/fileshell_cloudcomputing into dev
# Conflicts: # fileshell/models.py # fileshell/settings.py # fileshell/urls.py # fileshell/views.py # templates/base.html
Showing
4 changed files
with
23 additions
and
20 deletions
... | @@ -27,6 +27,7 @@ ALLOWED_HOSTS = [ | ... | @@ -27,6 +27,7 @@ ALLOWED_HOSTS = [ |
27 | '13.125.219.232', | 27 | '13.125.219.232', |
28 | 'localhost', | 28 | 'localhost', |
29 | '.ap-northeast-2.compute.amazonaws.com', | 29 | '.ap-northeast-2.compute.amazonaws.com', |
30 | + '127.0.0.1', | ||
30 | ] | 31 | ] |
31 | 32 | ||
32 | 33 | ||
... | @@ -138,5 +139,5 @@ SECRET_KEY = secret_key | ... | @@ -138,5 +139,5 @@ SECRET_KEY = secret_key |
138 | 139 | ||
139 | #AWS Access | 140 | #AWS Access |
140 | AWS_ACCESS_KEY_ID = key_id | 141 | AWS_ACCESS_KEY_ID = key_id |
141 | -AWS_SECRET_ACCESS_KEY =secret_access_key | 142 | +AWS_SECRET_ACCESS_KEY = secret_access_key |
142 | AWS_STORAGE_BUCKET_NAME ='fileshell-test' | 143 | AWS_STORAGE_BUCKET_NAME ='fileshell-test' | ... | ... |
... | @@ -3,6 +3,8 @@ from storages.backends.s3boto3 import S3Boto3Storage | ... | @@ -3,6 +3,8 @@ from storages.backends.s3boto3 import S3Boto3Storage |
3 | from .settings import AWS_STORAGE_BUCKET_NAME, LOCAL_DOWNLOAD_PATH | 3 | from .settings import AWS_STORAGE_BUCKET_NAME, LOCAL_DOWNLOAD_PATH |
4 | import boto3 | 4 | import boto3 |
5 | import os | 5 | import os |
6 | +import boto3.session | ||
7 | + | ||
6 | 8 | ||
7 | class MediaStorage(S3Boto3Storage): | 9 | class MediaStorage(S3Boto3Storage): |
8 | location = settings.MEDIAFILES_LOCATION | 10 | location = settings.MEDIAFILES_LOCATION |
... | @@ -24,10 +26,23 @@ class MediaStorage(S3Boto3Storage): | ... | @@ -24,10 +26,23 @@ class MediaStorage(S3Boto3Storage): |
24 | client.upload_fileobj(nf, AWS_STORAGE_BUCKET_NAME, user.username + '/' + dir + file.name) | 26 | client.upload_fileobj(nf, AWS_STORAGE_BUCKET_NAME, user.username + '/' + dir + file.name) |
25 | os.remove('tempfile') | 27 | os.remove('tempfile') |
26 | # putResponse = client.put_object(Bucket=AWS_STORAGE_BUCKET_NAME, Key= file_name) | 28 | # putResponse = client.put_object(Bucket=AWS_STORAGE_BUCKET_NAME, Key= file_name) |
27 | - | 29 | + """ |
28 | def download_file(file_name, dir): | 30 | def download_file(file_name, dir): |
29 | client = boto3.resource('s3') | 31 | client = boto3.resource('s3') |
30 | client.Bucket(AWS_STORAGE_BUCKET_NAME).download_file(Key= dir, Filename=LOCAL_DOWNLOAD_PATH+file_name) | 32 | client.Bucket(AWS_STORAGE_BUCKET_NAME).download_file(Key= dir, Filename=LOCAL_DOWNLOAD_PATH+file_name) |
33 | + """ | ||
34 | + | ||
35 | + def down(filename, bucketPath): | ||
36 | + session = boto3.session.Session(region_name='us-west-2') | ||
37 | + s3 = session.client('s3') | ||
38 | + filepath = settings.LOCAL_DOWNLOAD_PATH + filename | ||
39 | + response_headers = { | ||
40 | + 'response-content-type': 'application/force-download', | ||
41 | + 'response-content-disposition': 'attachment;filename="%s"' % filename | ||
42 | + } | ||
43 | + url = s3.generate_presigned_url('get_object', Params={'Bucket': 'fileshell-test', 'Key': bucketPath}, | ||
44 | + ExpiresIn=100) | ||
45 | + return url | ||
31 | 46 | ||
32 | def delete_file(file_name, dir): | 47 | def delete_file(file_name, dir): |
33 | client = boto3.resource('s3') | 48 | client = boto3.resource('s3') | ... | ... |
... | @@ -173,11 +173,14 @@ def download(request, bucketPath, filename, dir): | ... | @@ -173,11 +173,14 @@ def download(request, bucketPath, filename, dir): |
173 | 173 | ||
174 | # 필터링 된 파일 최근 열람 시간 갱신 | 174 | # 필터링 된 파일 최근 열람 시간 갱신 |
175 | File.objects.filter(title=filename, bucketPath=dir).update(last_view_TM=datetime.datetime.now()) | 175 | File.objects.filter(title=filename, bucketPath=dir).update(last_view_TM=datetime.datetime.now()) |
176 | - | 176 | + """ |
177 | # s3에서 해당 파일을 정해진 경로로 다운로드 | 177 | # s3에서 해당 파일을 정해진 경로로 다운로드 |
178 | MediaStorage.download_file(filename, bucketPath) | 178 | MediaStorage.download_file(filename, bucketPath) |
179 | + """ | ||
179 | 180 | ||
180 | - return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/')) | 181 | + url = MediaStorage.down(filename, bucketPath) |
182 | + | ||
183 | + return HttpResponseRedirect(url) | ||
181 | 184 | ||
182 | def delete(request, bucketPath, filename, dir): | 185 | def delete(request, bucketPath, filename, dir): |
183 | 186 | ... | ... |
1 | {% extends 'base.html'%} | 1 | {% extends 'base.html'%} |
2 | {% load staticfiles %} | 2 | {% load staticfiles %} |
3 | {% block content %} | 3 | {% block content %} |
4 | - <div> | ||
5 | - <div class="right_bar"> | ||
6 | - <li class="nav-item1"><a href="" class="nav-link-right"> <img class = 'add_folder_icon' src= "{% static 'resources/upload.png' %}" width="30" height="30"/> 파일 업로드</a></li> | ||
7 | - <form action={% url 'upload' %} method="post" enctype="multipart/form-data" novalidate> | ||
8 | - {% csrf_token %} | ||
9 | - | ||
10 | - <input type ="file" name = "source-file"> | ||
11 | - <input type = "submit"> | ||
12 | - </form> | ||
13 | - <li class="nav-item1"><a href="" class="nav-link-right"> <img class = 'add_folder_icon' src= "{% static 'resources/add_folder.png' %}" width="30" height="30"/> 새 폴더</a></li> | ||
14 | - <form action="{% url 'add_folder' %}" method="post" enctype="multipart/form-data">{% csrf_token %} | ||
15 | - <input type="dir_name" name="dir_name" id="dir_name" required="required" placeholder="New Folder Name"> | ||
16 | - <input type = "submit"> | ||
17 | - </form> | ||
18 | - </div> | ||
19 | - </div> | ||
20 | <div class="frame"> | 4 | <div class="frame"> |
21 | <!-- //header --> | 5 | <!-- //header --> |
22 | <div class="container"> | 6 | <div class="container"> | ... | ... |
-
Please register or login to post a comment