Après avoir préparé un tas de dataframes à Python, je voudrais le sauvegarder directement sur Amazon Aws.
mon code se termine par quelque chose comme: p> J'ai essayé: p> Malheureusement, il semble que le boto Le module ne fonctionne pas. p> J'utilise Python 3.7. P> Il est également nécessaire, que le fichier a un accès public, car un autre service saisit chaque jour le fichier mis à jour ... < / p> meilleur
Michi p> p>
3 Réponses :
Est-ce que cela vous donne une erreur ou est le fichier qui n'apparaît tout simplement pas dans S3?
La version très simple de télécharger un fichier sur un godet est pour obtenir le godet lui-même et utiliser la méthode Uppload_File: P> < Pré> xxx pré> p>
Je pense que cela suffit.
object_acl = s3.ObjectAcl('bucket_name','object_key')
response = object_acl.put(
ACL='private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exec-read'|'bucket-owner-read'|'bucket-owner-full-control',
AccessControlPolicy={
'Grants': [
{
'Grantee': {
'DisplayName': 'string',
'EmailAddress': 'string',
'ID': 'string',
'Type': 'CanonicalUser'|'AmazonCustomerByEmail'|'Group',
'URI': 'string'
},
'Permission': 'FULL_CONTROL'|'WRITE'|'WRITE_ACP'|'READ'|'READ_ACP'
},
],
'Owner': {
'DisplayName': 'string',
'ID': 'string'
}
},
GrantFullControl='string',
GrantRead='string',
GrantReadACP='string',
GrantWrite='string',
GrantWriteACP='string',
RequestPayer='requester',
VersionId='string'
)
Salut. Nice, ça marche bien. Seul problème est la permission. Existe-t-il un moyen d'obtenir un accès public déjà dans le code Python? Pour le moment, je dois aller manuellement sur le seau, cliquez sur le dossier "Autorisations", cliquez sur "Accès public", puis faites une tique à "Lire l'objet".
J'ai résolu:
s3 = boto3.resource('s3', aws_access_key_id='xxx', aws_secret_access_key='yyy')
s3.Bucket('test1234542').upload_file('C:/Admin/final1.csv', final1.csv', ExtraArgs={'ACL':'public-read'})