Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ошибки при запуске collectstatic #6

Open
dgorobets opened this issue Aug 10, 2016 · 7 comments
Open

Ошибки при запуске collectstatic #6

dgorobets opened this issue Aug 10, 2016 · 7 comments

Comments

@dgorobets
Copy link

Добрый день.

Реализована ли поддержка загрузки файлов при вызове collectstatic?

Запускаю collectstatic --no-input и после загрузки нескольких файлов возникает:

  File "/usr/local/var/pyenv/versions/matbets/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 107, in collect
    handler(path, prefixed_path, storage)
  File "/usr/local/var/pyenv/versions/matbets/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 325, in copy_file
    if not self.delete_file(path, prefixed_path, source_storage):
  File "/usr/local/var/pyenv/versions/matbets/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 275, in delete_file
    self.storage.delete(prefixed_path)
  File "/usr/local/var/pyenv/versions/matbets/lib/python3.5/site-packages/django_selectel_storage/storage.py", line 85, in delete
    self.container.remove(self._name(name), force=True)
  File "/usr/local/var/pyenv/versions/matbets/lib/python3.5/site-packages/selectel/storage.py", line 260, in method
    return fn(self.name, *args, **kwargs)
  File "/usr/local/var/pyenv/versions/matbets/lib/python3.5/site-packages/selectel/storage.py", line 22, in wrapper
    raise err
  File "/usr/local/var/pyenv/versions/matbets/lib/python3.5/site-packages/selectel/storage.py", line 16, in wrapper
    return fn(storage, *args, **kwargs)
  File "/usr/local/var/pyenv/versions/matbets/lib/python3.5/site-packages/selectel/storage.py", line 176, in remove
    r.raise_for_status()
  File "/usr/local/var/pyenv/versions/matbets/lib/python3.5/site-packages/requests/models.py", line 844, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 507 Server Error: status code 507 for url: https://187509.selcdn.ru/community/img/info_communities_2x.jpg

Судя по этому стэктрейсу файл удаляется при том, что контейнер совершенно пустой на момент запуска collectstatic.

А если вызвать команду с ключом --clear:

  File "/usr/local/var/pyenv/versions/matbets/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 176, in handle
    collected = self.collect()
  File "/usr/local/var/pyenv/versions/matbets/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 89, in collect
    self.clear_dir('')
  File "/usr/local/var/pyenv/versions/matbets/lib/python3.5/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 210, in clear_dir
    if not self.storage.exists(path):
  File "/usr/local/var/pyenv/versions/matbets/lib/python3.5/site-packages/django_selectel_storage/storage.py", line 89, in exists
    self.container.info(self._name(name))
  File "/usr/local/var/pyenv/versions/matbets/lib/python3.5/site-packages/selectel/storage.py", line 260, in method
    return fn(self.name, *args, **kwargs)
  File "/usr/local/var/pyenv/versions/matbets/lib/python3.5/site-packages/selectel/storage.py", line 16, in wrapper
    return fn(storage, *args, **kwargs)
  File "/usr/local/var/pyenv/versions/matbets/lib/python3.5/site-packages/selectel/storage.py", line 200, in info
    assert r.status_code == (200 if path else 204)
AssertionError
@marazmiki
Copy link
Owner

Здравствуйте,

Вопрос задан не совсем корректно: django-selectel-storage реализовывает интерфейс хранилищ, который предлагает Django. А команда collectstatic просто сохраняет найденную статику в эти хранилища, используя этот интерфейс. Таким образом, о какой-то особой поддержке загрузки файлов речи идти не может.

Что же касается ошибки. Месяц-полтора назад всё замечательно работало, Проверил прямо сейчас — выпадает та же ошибка. Почему-то всегда на шестом файле. Будем посмотреть, спасибо.

@marazmiki
Copy link
Owner

marazmiki commented Aug 10, 2016

Похоже, Селектелу зачем-то потребовалось переписать API. Может, они при этом какой-нибудь троттлинг добавили, а внешняя библиотека selectel-api (она используется для API-запросов к облачному хранилищу) это не учитывает.

(добавлено) Хотя, с другой стороны, она 24 дня назад обновлялась. У Вас точно последняя версия selectel-api?

@marazmiki
Copy link
Owner

И, кстати, HTTP-ошибка 507 означает Insufficient Storage («переполнение хранилища»).

@dgorobets
Copy link
Author

Через личный кабинет файлы загружаются с бОльшим объёмом без ошибок.

@marazmiki
Copy link
Owner

Возможно, хотя в личном кабинете наверняка троттл есть. У меня, кстати, без флага -c выпадает ошибка 503, а не 507

@dgorobets
Copy link
Author

Версия библиотеки стоит последняя.

@marazmiki
Copy link
Owner

@dmitra90, только что проверил снова. Без флага -c всё прекрасно работает. Видимо, были временные проблемы на стороне Селектела.

С флагом -c по-прежнему есть проблема. Будем разбираться

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants