По умолчанию django-ajax-uploader с бэкендом s3 дает ошибку MalformedXML

Я установил тестовый скрипт почти так же, как в примере: https://github.com/GoodCloud/django-ajax-uploader

Кажется, что начал загружать файл (javascript обновляет имя и размер файла), но представление дает мне ошибку 500 с этим сообщением. Я не могу найти ничего о том, как это исправить.

S3ResponseError: S3ResponseError: 400 Bad Request <Error><Code>MalformedXML</Code><Message>The XML you provided was not well-formed or did not validate against our published schema</Message><RequestId>26E6EF8296A0E585</RequestId><HostId>F4QUOsVT4LxC+6OUP2lE1/9uPC77keOejyWs57GpS5kjvHXpun3U+81ntL8ZTgDa</HostId></Error> 

Мне удалось загрузить файл в оболочке с помощью boto с помощью команд здесь: Загрузить 0 байт файла в Amazon S3

Вид:

 from ajaxuploader.views import AjaxFileUploader from ajaxuploader.backends.s3 import S3UploadBackend import_uploader = AjaxFileUploader(backend=S3UploadBackend) 

JavaScript:

 var uploader = new qq.FileUploader({ action: "/ajax/profile-upload/", element: $('#file-uploader')[0], multiple: true, onComplete: function(id, fileName, responseJSON) { if(responseJSON.success) { alert("success!"); } else { alert("upload failed!"); } }, onAllComplete: function(uploads) { // uploads is an array of maps // the maps look like this: {file: FileObject, response: JSONServerResponse} alert("All complete!"); }, params: { 'csrf_token': $('[name=csrfmiddlewaretoken]').val(), 'csrf_name': 'csrfmiddlewaretoken', 'csrf_xname': 'X-CSRFToken', }, }); 

шаблон:

 <div id="file-uploader"> <noscript> <p>Please enable JavaScript to use file uploader.</p> </noscript> </div> 

У меня есть переменные доступа s3 в файле settings.py (они вызываются в файле ajaxuploader / backends / s3.py):

 AWS_ACCESS_KEY_ID = myAccessKey AWS_SECRET_ACCESS_KEY = mySecretKey AWS_BUCKET_NAME = bucketName 

One Solution collect form web for “По умолчанию django-ajax-uploader с бэкендом s3 дает ошибку MalformedXML”

Я решил эту проблему с помощью специального s3-сервера, который переопределяет функцию загрузки и использует django-хранилища вместо boto для сохранения файлов. попробуй это :

 from ajaxuploader.backends.base import AbstractUploadBackend from django.core.files.storage import default_storage class S3CustomUpload(AbstractUploadBackend): NUM_PARALLEL_PROCESSES = 4 def upload_chunk(self, chunk): #save file to s3 self._fd.write(chunk) self._fd.close() def setup(self, filename): self._fd = default_storage.open('%s/%s' % ('uploads/materials/', str(filename)), 'wb') def upload(self, uploaded, filename, raw_data, *args, **kwargs): try: if raw_data: # File was uploaded via ajax, and is streaming in. chunk = uploaded.read(self.BUFFER_SIZE) while len(chunk) > 0: self.upload_chunk(chunk, *args, **kwargs) chunk = uploaded.read(self.BUFFER_SIZE) else: # File was uploaded via a POST, and is here. for chunk in uploaded.chunks(): self.upload_chunk(chunk, *args, **kwargs) return True except: # things went badly. return False def upload_complete(self, request, filename, *args, **kwargs): upload = Upload() upload.upload = settings.S3_URL + "uploads/materials/"+ filename upload.name = filename upload.save() return {'pk': upload.pk} 
  • Выберите отчетные годы и месяцы для страницы архива Django
  • Как установить таймаут для отправки электронной почты с помощью django?
  • Как я могу скопировать страницы CMS с сайта разработки на сайт в реальном времени?
  • Импорт модуля python SWIG завершается с ошибкой apache
  • Django: Как создать форму множественного выбора?
  • Неисправность PIL
  • Отправка формы Django в модуле Bootstrap Modal
  • Установка значения по умолчанию для поля в наборе форм в Django
  • Ошибка генерации индексов Haystack / Whoosh
  • Импорт тастипии в проект
  • Django: использование аннотата, графа и отличия в Queryset
  •  
    Interesting Posts for Van-Lav

    Передача структуры в API Windows в типах python

    Как «сбросить» точки, выбранные с помощью плагина LinkedBrush для mpld3?

    TypeError: accept missing 2 требуемых аргумента (все еще функциональный)

    Pandas, groupby и нахождение максимума в группах, возвращающее значение и количество

    Самая длинная общая подстрока из более чем двух строк – Python

    Как найти медиану в Apache Spark с API-интерфейсом Python Dataframe?

    запустить веб-приложение с gevent

    Использование python для редактирования html, но lxml преобразует красивые html-объекты в странную кодировку

    Python: получить частоту, основанную на двух столбцах (переменных) в pandas dataframe

    Выполните электронное письмо с помощью imaplib, но не отмечайте его как SEEN

    Вложение ошибки python Импорт по имени файла не поддерживается

    Как распределить входные массивы с помощью f2py?

    Сильные стороны сценариев оболочки по сравнению с Python

    «Модульные тесты потерпели неудачу» для beautifulsoup

    Что я делаю не так? Сохранение данных объекта Python из предыдущего экземпляра?

    Python - лучший язык программирования в мире.