Требуется действительный заголовок Date или x-amz-date? - PullRequest
3 голосов
/ 06 апреля 2010

При попытке загрузить файл на S3 я получаю следующую ошибку:

S3StorageError: <?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>AWS authentication requires a valid Date or x-amz-date header</Message><RequestId>7910FF83F3FE17E2</RequestId><HostId>EjycXTgSwUkx19YNkpAoY2UDDur/0d5SMvGJUicpN6qCZFa2OuqcpibIR3NJ2WKB</HostId></Error>

Я использую Django с Джанго-хранилищами и Imagekit

Мои настройки S3 в файле settings.py выглядят следующим образом:

locale.setlocale(locale.LC_TIME, 'en_US')
DEFAULT_FILE_STORAGE = 'backends.s3.S3Storage'
AWS_ACCESS_KEY_ID = '************************'
AWS_SECRET_ACCESS_KEY = '*****************************'
AWS_STORAGE_BUCKET_NAME = 'static.blabla.com'
AWS_HEADERS = {
       'x-amz-date': datetime.datetime.utcnow().strftime('%a, %d %b %Y %H:%M:%S GMT'),
       'Expires': 'Thu, 15 Apr 2200 20:00:00 GMT',
}
from S3 import CallingFormat
AWS_CALLING_FORMAT = CallingFormat.SUBDOMAIN

Спасибо за любую помощь, которую вы можете оказать!

Ответы [ 2 ]

1 голос
/ 23 мая 2010

Я обнаружил, что разница в часовых поясах, кажется, является фактором. Я эмигрант из Мельбурна, который в настоящее время находится в Малайзии. Вернувшись к моему часовому поясу в Мельбурне, эта ошибка исчезла (возникала во всех основных инструментах доступа s3, которые я использовал, таких как s3fox, s3hub и т. Д.).

0 голосов
/ 03 сентября 2010

Я думаю, что это плохая идея иметь заголовок 'x-amz-date' в вашем файле settings.py, поскольку этот файл запускается только один раз при каждом запуске сервера.

Полагаю, вы использовали сервер разработки, который перезапускается каждый раз, когда вы меняете какой-либо код .py.

В любом случае, в django-хранилищах уже есть код для установки соответствующего заголовка, поэтому вам вообще не нужна эта строка.

У меня также была проблема с заголовком, установленным django-хранилищами, смотрите эту проблему в BitBucket для исправления: http://code.welldev.org/django-storages/issue/56/aws-authentication-requires-a-valid-date-or-x-amz-date

...