J'utilise la bibliothèque odo pour transférer un pandas dataframe à S3. Cependant, je reçois l'erreur suivante:ODO ne peut pas accéder à S3 avec S3ResponseError: 403 Interdit
import pandas as pd
df = pd.DataFrame([[1, 2], [3, 4], [5, 6], [7, 8]], columns=["A", "B"])
odo(df,'s3://path_to_s3_folder')
S3ResponseError: S3ResponseError: 403 Forbidden
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Anonymous access is forbidden for this operation</Message><RequestId>F5958774D56AD29E</RequestId><HostId>zOH8JOxpSgB5Scgc/YrtHO1+e9lXoKAF89IhRSeAiSoGHAJxyjXKBVFIYETeO4gSLZOUgXmwKLM=</HostId></Error>
Maintenant, j'ai la configuration des informations d'identification AWS correctement que je peux voir dans mon dossier ~/.aws/credentials
cat credentials
[default]
aws_access_key_id = XXXXX
aws_secret_access_key = XXXXXXXXXX
Aws cli fonctionne correctement pour moi et je peux courir aws ls
et cp
commandes correctement (je suppose que cela signifie que j'ai les autorisations requises).
aws s3 ls s3://path_to_s3
également boto3
est en mesure d'accéder à des ressources s3 et ne donne pas une erreur.
import boto3
s3 = boto3.resource('s3')
for bucket in s3.buckets.all():
print(bucket.name)
Qu'est-ce qui pourrait être faux/manquant dans la configuration?
Il semble ODO parler seulement de Boto, non boto3, installez boto modules et essayez à nouveau https://github.com/blaze/odo – mootmoot
@mootmoot Oui cela a fonctionné. Le problème était en cours boto et boto3 obtient des informations d'identification. –