Django (Python) 및 S3로 파일을 업로드하는 방법은 무엇입니까?
-
11-07-2019 - |
문제
파일을 S3에 업로드하는 방법을 찾고 있습니다. 나는 django를 사용하고 있습니다. 현재 Amazon의 Python 라이브러리를 사용하여 다음 코드와 함께 업로드하고 있습니다.
보다:
def submitpicture(request):
fuser = request.session["login"]
copied_data = request.POST.copy()
copied_data.update(request.FILES)
content_type = copied_data['file'].get('content-type')
ffile = copied_data['file']['content']
key = '%s-%s' % (fuser, ''.join(copied_data['file']['filename'].split(' ')))
site_s3.save_s3_data(key, ffile, content_type)
주형:
<form action="/submitpicture/" method="POST">
<input type="file" id="file" name="file" />
<input type="submit" value="submit" />
</form>
그러나 실제로 실행하려고하면 다음과 같은 오류가 발생합니다.
"Key 'file' not found in <QueryDict: {}>"
#MultiValueDictKeyError
나는 내가 뭘 잘못하고 있는지 정말로 보지 못한다. 누군가 나를 올바른 방향으로 가리킬 수 있습니까?
편집 : 누군가가 놀라운 경우를 대비하여 실제 업로드 작업을받은 후에 검증을 추가 할 계획입니다.
해결책
ENCTEPE 속성을 양식 요소에 제공해야합니다 (이전에 물린 적이 있음). 예를 들어, 양식 태그는 다음과 같습니다.
<form action="/submitpicture/" method="POST" enctype="multipart/form-data" >
ENCTYPE가 없으면 빈 요청을받을 수 있습니다.
다른 팁
이 작업을 수동으로 수행하는 대신 David Larlet이 Django를 위해 작성한 스토리지 백엔드를 살펴 보겠습니다. 장고 저장소
ENCTYPE = "multipart/form-data"추가 Django 문서의 "파일 업로드"섹션에서 언급 할 가치가있는 것 같습니다.http://docs.djangoproject.com/en/dev/topics/http/file-uploads/). 생각?
제휴하지 않습니다 StackOverflow