J'ai écrit ce morceau de code qui devrait faire une copie en S3.Impossible d'effectuer la copie s3 en utilisant boto3
import boto3
s3client = boto3.client('s3', config['AWS']['Region'])
source = {'Bucket': bucket_name, 'Key': source_key}
metadata = {'a':'b'}
s3client.copy_object(Bucket=bucket_name, CopySource=source, Key=target_key, Metadata=metadata)
Mais l'erreur que je reçois est
ClientError: An error occurred (AccessDenied) when calling the CopyObject operation: Access Denied
Bien que j'avoir accès à s3. Si je fais une opération de téléchargement ou de liste, cela fonctionne. Seul l'objet copy_object renvoie cette erreur. Je suis à court d'idées sur pourquoi cela ne fonctionne pas.
Le rôle IAM que vous exécutez permet-il de copier l'objet de l'objet source et d'autoriser l'écriture dans le compartiment cible? – jarmod
Pouvez-vous l'essayer avec l'AWS CLI - c'est-à-dire 'aws s3 cp s3: // nom-du-compartiment-source/clé s3 // target-bucket-name/key'? Cela vous permettra de résoudre tout problème d'authentification sans boto dans le mixage en premier. – stdunbar
Ouais je suis capable de le copier avec le cli –