2017-10-20 195 views
1

此代碼寫入JSON在S3文件, 我想實現的是,而不是打開data.json文件,並寫入到S3(sample.json)文件,寫作JSON在S3存儲桶文件

如何我是否直接傳遞json並寫入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

你是說,你要直接傳遞JSON數據到S3上坐着一個文件,而無需上傳新文件到S3可用操作的列表? –

+0

是的...在簡單..我在一些操作後得到一些json數據,我想在S3中創建一個filename.json文件,並將該json寫入此文件。 – Learning

回答

2

Amazon S3是一個對象存儲(現實中的文件存儲)。主要操作是PUT和GET。您無法將數據添加到S3中的現有對象中。您只能替換整個對象本身。

對於您可以執行S3上看到此鏈接 http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectOps.html

+0

我收到此錯誤 - botocore.exceptions.ClientError:調用ListObjects操作時發生錯誤(PermanentRedirect):您嘗試訪問的存儲區必須使用指定的端點進行尋址。請將所有未來請求發送到此端點。 – Learning

+0

看看這是否有幫助https://stackoverflow.com/questions/32246149/permanentredirect-when-calling-theputput-operation –