Python: Amazon S3 nie może dostać wiadra: mówi 403 Zakazane
Mam dla mojej organizacji wiadro w Amazon S3, które wyglądamydev.orgname
Mam aplikację Java, która może łączyć się z Amazon S3 za pomocą poświadczeń i może łączyć się z S3, tworzyć, czytać pliki
Mam wymaganie, w którym aplikacja odczytuje dane z Pythona z tego samego wiadra. Więc używamboto dla tego.
Wykonuję następujące czynności, aby zdobyć wiadro
>>> import boto
>>> from boto.s3.connection import S3Connection
>>> from boto.s3.key import Key
>>>
>>> conn = S3Connection('xxxxxxxxxxx', 'yyyyyyyyyyyyyyyyyyyyyy')
>>> conn
S3Connection:s3.amazonaws.com
Teraz, gdy próbuję zdobyć wiadro, widzę błąd
>>> b = conn.get_bucket('mydev.myorg')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/boto/s3/connection.py", line 389, in get_bucket
bucket.get_all_keys(headers, maxkeys=0)
File "/Library/Python/2.7/site-packages/boto/s3/bucket.py", line 367, in get_all_keys
'', headers, **params)
File "/Library/Python/2.7/site-packages/boto/s3/bucket.py", line 334, in _get_all
response.status, response.reason, body)
boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>EEC05E43AF3E00F3</RequestId><HostId>v7HHmhJaLLQJZYkZ7sL4nqvJDS9yfrhfKQCgh4i8Tx+QsxKaub50OPiYrh3JjQbJ</HostId></Error>
Ale z aplikacji Java wszystko wydaje się działać.
Czy robię tu coś złego?