2016-12-07 3 views
2

Ich habe dieses Stück Code geschrieben, der eine Kopie in S3 tun sollte.Kann nicht s3 kopieren mit 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) 

Aber der Fehler, die ich erhalte, ist

ClientError: An error occurred (AccessDenied) when calling the CopyObject operation: Access Denied

Obwohl ich tun Zugang zu s3. Wenn ich einen Upload oder eine Liste mache, funktioniert es. Nur copy_object löst diesen Fehler aus. Ich habe keine Ideen mehr, warum das nicht funktioniert.

+1

Ermöglicht die IAM-Rolle, mit der Sie arbeiten, das Kopieren des Objekts des Quellobjekts und das Schreiben in den Ziel-Bucket? – jarmod

+0

Können Sie es mit der AWS-CLI versuchen - z. B. 'aws s3 cp s3: // Quell-Bucket-Name/Schlüssel s3 // Ziel-Bucket-Name/Schlüssel'? Das würde Ihnen erlauben, eventuelle Authentifizierungsprobleme ohne Boto im Mix zu beheben. – stdunbar

+0

Ja, ich kann es mit dem CLI kopieren –

Antwort

0

Also das Problem war ich versuchte, auf den falschen Eimer zuzugreifen. Und daher der Fehler. So war der Fehler tatsächlich richtig.

Verwandte Themen