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.
Ermöglicht die IAM-Rolle, mit der Sie arbeiten, das Kopieren des Objekts des Quellobjekts und das Schreiben in den Ziel-Bucket? – jarmod
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
Ja, ich kann es mit dem CLI kopieren –