필자는 base64 인코딩을 통해 django rest framework에 파일을 업로드하는 ionic/angular js 웹 앱을 보유하고 있습니다. 그런 다음 django-storages (1.5.1) 라이브러리의 도움을 받아 AWS S3 버킷에 파일을 저장합니다.AWS S3 Base64 파일 업로드가 iPad 또는 Android에서 작동하지 않지만 노트북 사파리 또는 Chrome에서 작동 중
Chrome (Windows) 또는 Safari (Macbook)에서 webapp에 액세스하고 이미지와 파일을 업로드하는 것이 좋습니다.
의 오류, 크롬 (안드로이드 폰) 나 사파리 (아이 패드)에서 웹 애플리케이션을 실패 액세스 : 분명히
XMLHttpRequest cannot load [api url]. Origin [webapp url] is not allowed by Access-Control-Allow-Orign.
, 그것은, 바로 CORS 문제입니까? 하지만 양식 입력 데이터를 업로드 할 수 있습니다. 파일 업로드 (JSON Restful PUT의 base64 콘텐츠)가 오류를 던진 것 같습니다.
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
어떤 생각하거나 문제가 될 수있는 방향으로 유도합니다 :
완성도를 들어, 내 AWS S3 CORS 구성은?
또 하나의 이유는 base64 인코딩 이미지를 귀하의 의견에 대한 – e4c5
e4c5 @ 감사를 방지 할 수 있습니다. 나는 당신의 관점에 관심이 있습니다. base64 인코딩이 권장되지 않는 이유는 무엇입니까? – aero
디코딩을 인코딩하는 추가 컴퓨팅. 캐시 할 수 없습니다. 파일 크기가 30 % 증가합니다 – e4c5