Команда Django "python3 manage.py collectstatic --noinput" скремблирует файлы .py при копировании файлов в s3 - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь использовать Django collectstatic для отправки моего файла script.py на AWS S3 .Этот файл затем читается AWS Glue для выполнения Spark Job.

Когда я вручную загружаю script.py , AWS Glue может прочитатьэто правильно.Когда я использую следующую команду для отправки моего скрипта на AWS S3 , script.py получает шифрование

python3 manage.py collectstatic --noinput

Прикрепление снимка экрана AWS Glue Edit Script для ссылка

Я попытался изменить файл script.py, чтобы иметь только несколько импортов и распечатку. Это работает, и AWS Glue может прочитать script.py

Затем япопытался добавить еще несколько print операторов, затем он карабкается.Трудно сделать вывод, когда именно это происходит, так как иногда добавление пары import в script.py также приводит к смешиванию.

Кто-нибудь сталкивался с этим?

Замечания: Django сжимает файл до 898 B, при ручной загрузке файл сохраняет размер файла 3 КБ.Хотя при загрузке сжатый файл отображает правильный файл размером 3 КБ.

1 Ответ

0 голосов
/ 14 февраля 2019

Разобрался с проблемой.

Команда collectstatic сжимает файл с помощью

Content-Encoding: gzip

Большинство браузеров читает метаданные и запускает gunzip для раздувания и нормального отображения файла. AWS Glue не может прочитать такую ​​мету и заканчивает скремблированием данных.

Решение: Необходимо предоставить несжатые сценарии AWS Glue, исключив .py файлов во время сжатия в команде collectstatic .

...