2017-10-20 2 views
1

Dieser Code json in eine Datei in s3 schreibt, , was ich stattdessen data.json Datei zu öffnen und Schreiben auf s3 (sample.json) Datei,Schreiben json in s3 Eimer Datei

erreichen wollte, wie überlasse ich den JSON direkt und schreibe in eine Datei in 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

Sie sagen, dass Sie JSON-Daten direkt in eine Datei übergeben wollen, die ohne auf S3 sitzt eine neue Datei laden bis s3 ? –

+0

ja ... in einfach .. Ich bekomme einige JSON-Daten nach einigen Operationen, ich möchte eine Datei Dateiname.json in S3 erstellen und schreiben Sie diese JSON in diese Datei. – Learning

Antwort

2

Amazon S3 ist ein Objektspeicher (Dateispeicher in Wirklichkeit). Die primären Operationen sind PUT und GET. Sie können Daten in einem vorhandenen Objekt in S3 nicht hinzufügen. Sie können nur das gesamte Objekt selbst ersetzen.

Eine Liste der verfügbaren Operationen Sie auf s3 diesen Link sehen ausführen können http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectOps.html

+0

Ich erhalte diesen Fehler - botocore.exceptions.ClientError: Beim Aufrufen der ListObjects-Operation ist ein Fehler aufgetreten (PermanentRedirect): Der Bucket, auf den Sie zugreifen möchten, muss über den angegebenen Endpunkt angesprochen werden. Bitte senden Sie alle zukünftigen Anfragen an diesen Endpunkt. – Learning

+0

Sehen Sie, ob dies hilft https://stackoverflow.com/questions/32246149/permanentredirect-when-calling-the-putobject-operation –