2014-04-09 2 views
5

S3BotoStorage 백엔드를 사용하여 Amazon S3에 업로드 된 파일을 저장하는 django 응용 프로그램이 있습니다. 그러나 웹 api 서비스 (django-tastypie 사용)에서는 s3에 파일을 업로드하는 데 오랜 시간이 걸렸습니다. 웹 서버를 통해 요청이 전달 된 다음 amazon s3 저장소 백엔드로 요청이 전달됨에 따라.여러 Django 저장소 백엔드 시스템

그래서 우리는 먼저 웹 서버에 업로드하고 django-celery 작업을 구현하여 amazon s3에 파일을 업로드하는 솔루션을 제공합니다. 그것은 끝내고 일하고 있습니다. 그러나 그 후에 우리는 아마존 s3 저장 위치 URL에 파일의 URL을 수정하고 싶습니다. 그러나 file_field_obj.storage를 s3botostroage로 수정하려고합니다. 이렇게하면 기본 파일 저장소로 되돌릴 수 있습니다.

그래서 s3에 파일을 업로드 한 후 장고 모델 파일 필드 저장 영역을 수정할 수있는 옵션이 있습니다. 따라서 설정에서 FileSystemStorage를 가리키는 DefaultFileStorage가 있습니다. 그러나 파일이 s3에 있으면 s3 저장 위치를 ​​가리 킵니다.

+1

맞춤 저장소 클래스를 만드는 것이 최선의 방법입니다. 커스텀 클래스는 FileSystemStorage와 S3BotoStorage의 코드를 재사용 할 수 있습니다. –

+0

이것은 도움이 될 수 있습니다 : https://djangosnippets.org/snippets/1976/ – gorus

답변

1

이 솔루션은 이미 응용 프로그램에 존재 : django-queued-storage

그것은 셀러리 작업을 만들어 처리해야하는 스토리지 백엔드 사이의 업로드.

관련 문제