0
votes

Enregistrez Dataframe en Python en tant que CSV et téléchargez-le sur AWS S3 avec un accès public

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: xxx

J'ai essayé: xxx

Malheureusement, il semble que le boto Le module ne fonctionne pas.

J'utilise Python 3.7.

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


0 commentaires

3 Réponses :


0
votes

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: < Pré> xxx


0 commentaires

0
votes

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'
)


1 commentaires

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".



0
votes

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'})


0 commentaires