«Как устранить ошибку« HTTP 403: запрещено »?» - PullRequest
1 голос
/ 09 февраля 2020

Я пытаюсь запустить этот код в Google Colab, но я получаю «HTTP Ошибка 403: запрещено»:

import six.moves.urllib as urllib
try:
    import urllib.request
except ImportError:
    raise ImportError('You should use Python 3.x')

if not os.path.exists('./RoadDamageDataset.tar.gz'):
    url_base = 'https://s3-ap-northeast-1.amazonaws.com/mycityreport/RoadDamageDataset.tar.gz'
    urllib.request.urlretrieve(url_base, './RoadDamageDataset.tar.gz')

    print("Download RoadDamageDataset.tar.gz Done")

else:
    print("You have RoadDamageDataset.tar.gz")

HTTPError                                 Traceback (most recent call last)

<ipython-input-16-99e6ecabe7df> in <module>()
      6 if not os.path.exists('./RoadDamageDataset.tar.gz'):
      7     url_base = 'https://s3-ap-northeast-1.amazonaws.com/mycityreport/RoadDamageDataset.tar.gz'
----> 8     urllib.request.urlretrieve(url_base, './RoadDamageDataset.tar.gz')
      9 
     10     print("Download RoadDamageDataset.tar.gz Done")

6 frames

/usr/lib/python3.6/urllib/request.py in http_error_default(self, req, fp, code, msg, hdrs)
    648 class HTTPDefaultErrorHandler(BaseHandler):
    649     def http_error_default(self, req, fp, code, msg, hdrs):
--> 650         raise HTTPError(req.full_url, code, msg, hdrs, fp)
    651 
    652 class HTTPRedirectHandler(BaseHandler):

HTTPError: HTTP Error 403: Forbidden

Любая помощь будет оценена. ( ссылка на код в Google Drive: https://drive.google.com/file/d/1C-_DBepoJFL5HztTyYx9uNG22_MJB5Bo/view?usp=sharing)

1 Ответ

2 голосов
/ 10 февраля 2020

Я позволил себе изменить строку темы: главная проблема, о которой вы спрашиваете, это «Как мне решить ошибку« HTTP 403: Forbidden »?». Я также позволил себе изменить ваши теги: ваш язык Python; вы импортируете библиотеку «шесть» и используете Google Colab Laboratory.

ЛЮБОЙ:

https://en.wikipedia.org/wiki/HTTP_403

HTTP 403 обеспечивает отдельный случай ошибки из HTTP 401; в то время как HTTP 401 возвращается, когда клиент не аутентифицирован, и подразумевает, что успешный ответ может быть возвращен после действительной аутентификации, HTTP 403 возвращается, когда клиенту не разрешен доступ к ресурсу, несмотря на предоставление аутентификации, такой как недостаточные разрешения аутентифицированной учетной записи. .

Помните, что веб-сервер (здесь, Google Colab) работает в контексте некоторого "пользователя". Я предполагаю, что ваш файл (RoadDamageDataset.tar.gz) может не иметь разрешений на чтение для веб-пользователя.

SUGGESTION : убедитесь, что /RoadDamageDataset.tar.gz имеет разрешение на "чтение".

Кроме того, это выглядит неправильно:

url_base = 'https://s3-ap-northeast-1.amazonaws.com/mycityreport/RoadDamageDataset.tar.gz'
    urllib.request.urlretrieve(url_base, './RoadDamageDataset.tar.gz')

ПРЕДЛОЖЕНИЕ : попробуйте изменить его на https://s3-ap-northeast-1.amazonaws.com/mycityreport

...