8000 django 에서 S3에 Static, media 파일 저장하고 사용하기 · Issue #9 · myungseokang/blog · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

django 에서 S3에 Static, media 파일 저장하고 사용하기 #9

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
utterances-bot opened this issue Jul 13, 2018 · 16 comments
Open

Comments

@utterances-bot
Copy link

django 에서 S3에 Static, media 파일 저장하고 사용하기 – Leop0ld

Serving media files in django using S3

https://blog.leop0ld.org/posts/django-use-s3/

Copy link

django s3 치면 가장 먼저 나오는 훌륭한 글이였습니다

@myungseokang
Copy link
Owner

@maxtortime 지금 보니 글에 오타도 있고 깔끔하지 못한데 ㅠㅠ... 잘 봐주셔서 감사합니다.

@maxtortime
Copy link
maxtortime commented Jul 13, 2018

문제는 글대로 하면 퍼블릭 엑세스 권한으로 되서 s3에서 경고창 나와요ㅠ

Copy link
Owner

@maxtortime Allow All 기준으로 작성되어서 그런가보네요. 나중에 시간나면 업데이트 해야겠습니다. 감사합니다~

Copy link
Beomi commented Aug 14, 2018

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
이거 선언하는게 두번 나와있어요 (DEBUG=False인 세팅)

Copy link
Owner

@Beomi 그러네요. 수정해야겠어요. 감사합니다~

Copy link

감사합니다. 전 다른 설정은 다 해놓고 STATIC_URL을 S3 도메인으로 변경을 안했었네요;ㅎㅎㅎ
덕분에 고생이 줄었습니다~

Copy link
jyinzzl commented Dec 19, 2018

이미 등록된 파일을 templates로 가져오는 건 잘 되네요. 근데 /admin에서 모델의 ImageField통해, 이미지를 S3에 업로드하는 건 안됩니다. 위에 보이는 설정 말고 다른 거 건드릴 게 더 있나요?

Copy link
jyinzzl commented Dec 19, 2018

그리고 궁금한게요, MEDIA_URL과 STATIC_URL의 차이가 뭔지 모르겠어요(개념적으로 media와 static의 차이가 무엇인지는 압니다). 위에선 똑같이 "https://%s/" % AWS_S3_CUSTOM_DOMAIN로 설정해주셨지만, 다르게 설정하더라도 consol.log()로 찍어보면 {%static STATIC_URL%}이나 {%static MEDIA_URL%}이나 똑같더라고요 ㅠㅠ

Copy link
jyinzzl commented Dec 19, 2018

아 저장이 되긴 되네요 저장시의 하위디렉토리 설정 문제였습니다..

@myungseokang
Copy link
Owner

@jyinzzl static과 media는 제가 따로 구분을 하지 않아서 같을 것 같은데, 다르게 설정해도 같게 나오는 이유는 제가 프로젝트 전부를 아는 것이 아니라 섣불리 말씀드리기가 어렵네요... 설정쪽을 살펴봐보세요.
그리고 {% static MEDIA_URL %} 이렇게 MEDIA_URL을 가져오는 건 문제가 있어보이는 게 static 템플릿 태그 자체가 static 파일의 url을 구하기 위한 템플릿 태그이기 때문에 맞지는 않아보입니다만, 직접 해보진 않아서 정확하진 않습니다.

Cop 8000 y link
jyinzzl commented Dec 19, 2018

감사합니다 잘배워가요! static태그를 MEDIA_URL과 같이 쓰는 거 자체도 문제가 있는 거 였군요. 왜 안되나 어리둥절해하고 있었네요...

@myungseokang
Copy link
Owner

@jyinzzl media 파일의 경우 모델에 저장된 필드의 .url 속성을 사용한 기억밖에 없어서 자세하게 말씀드리기는 힘들겠네요. MEDIA_URL을 직접적으로 사용한 경험은 그리 많지 않습니다.
사용하게 된다면 {% get_media_prefix %}를 사용할 것 같아요.

아래 링크는 해당 템플릿 태그 Docs 입니다.
https://docs.djangoproject.com/en/2.1/ref/templates/builtins/#get-media-prefix

Copy link
smirkkk commented Jan 10, 2019

media파일 업로드 후 s3 스토리지에 저장에는 성공했는데, a태그 href 속성에 s3 객채 url을 넣고 사용자가 파일을 다운로드 받으려 할 때 문제가 되네요. 사진이나 .txt .pdf 같은 브라우저에서 열 수 있는 파일들은 다운로드가 안 되어요,, 혹시 이 문제도 어떻게 해결하는지 아시나요?

Copy link
umi0410 commented Sep 5, 2019

글 잘 읽었습니다. 하나 궁금한 게 있는데요.
DEBUG 모드일 때 MEDIA_ROOT의 역할과
DEBUG=False일 때의 DEFAULT_FILE_STORAGE 가 같은 역할인가요?
둘 다 ImageField에서 업로드 받은 file이 저장되는 위치를 정의해주는 것 같아서요.

Copy link
umi0410 commented Sep 5, 2019

한 번 해봤는데, AWS S3를 이용하는 경우 MEDIA_URL이 제대로 파일을 인식 못하는 것 같은데, 어떻게 해결하셨는지요?
즉, AWS S3 Bucket 안의 내용들을 MEDIA_URL을 통해 제공하는 방법이요.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants
0