J'essaye de télécharger un fichier à s3 en utilisant la méthode boto3 file_upload. C'est assez simple jusqu'à ce que le chiffrement côté serveur soit nécessaire. Dans le passé, j'ai utilisé put_object pour y parvenir.Comment ajouter le cryptage à boto3.s3.transfer.TransferConfig pour le téléchargement de fichier s3
Comme si:
import boto3
s3 = boto3.resource('s3')
s3.Bucket(bucket).put_object(Key=object_name,
Body=data,
ServerSideEncryption='aws:kms',
SSEKMSKeyId='alias/aws/s3')
Je veux maintenant télécharger des fichiers directement à s3 en utilisant la méthode de file_upload. Je ne peux pas trouver comment ajouter le chiffrement côté serveur à la méthode file_upload. La méthode file_upload peut prendre un TransferConfig mais je ne vois pas d'arguments qui définissent le cryptage mais je les vois dans S3Transfer.
Je cherche quelque chose comme ceci:
import boto3
s3 = boto3.resource('s3')
tc = boto3.s3.transfer.TransferConfig(ServerSideEncryption='aws:kms',
SEKMSKeyId='alias/aws/s3')
s3.upload_file(file_name,
bucket,
object_name,
Config=tc)
documentation boto3
Si je lis bien, le 4ème paramètre à S3.Client.upload_file() semble être extraArgs. Êtes-vous capable de fournir ExtraArgs = {ServerSideEncryption: 'aws: kms', SSEKMSKeyId: 'alias/aws/s3'}. Notez l'orthographe de SSEKMSKeyId (pas SEKMSKeyId). – jarmod