2017-10-20 24 views
1

Ce code écrit dans un fichier JSON dans s3, ce que je voulais réaliser est au lieu d'ouvrir data.json fichier et écriture dans le fichier s3 (de sample.json),écriture JSON fichier dans un seau s3

comment puis-je passer le json directement et écrire dans un fichier en s3?

import boto3 

s3 = boto3.resource('s3', aws_access_key_id='aws_key', aws_secret_access_key='aws_sec_key') 
s3.Object('mybucket', 'sample.json').put(Body=open('data.json', 'rb')) 
+0

Voulez-vous dire que vous voulez transmettre des données JSON directement dans un fichier qui se trouve sur S3 sans avoir à télécharger un nouveau fichier à s3 ? –

+0

oui ... en simple .. je reçois des données json après quelques opérations, je veux créer un fichier filename.json dans S3 et écrire ce json dans ce fichier. – Learning

Répondre

2

Amazon S3 est un magasin d'objets (magasin de fichiers dans la réalité). Les opérations principales sont PUT et GET. Vous ne pouvez pas ajouter de données dans un objet existant dans S3. Vous ne pouvez remplacer que l'objet entier lui-même.

Pour une liste des opérations disponibles, vous pouvez effectuer sur s3 voir ce lien http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectOps.html

+0

Je reçois cette erreur - botocore.exceptions.ClientError: Une erreur est survenue (PermanentRedirect) lors de l'appel de l'opération ListObjects: Le compartiment auquel vous tentez d'accéder doit être adressé à l'aide du point de terminaison spécifié. Veuillez envoyer toutes les demandes futures à ce point de terminaison. – Learning

+0

Voir si cela aide https://stackoverflow.com/questions/32246149/permanentredirect-when-calling-the-putobject-operation –