[英]Write pandas dataframe as compressed CSV directly to Amazon s3 bucket?
[英]python to write directly to S3 bucket
我有一個可以打印一些東西的python函數。 我想把它放到AWS Lambda上,想將這些東西直接打印到S3存儲桶中的文件中。 因此,要在S3存儲桶文件中重定向標准輸出。 這就是我所說的功能:
recurse_for_values(top_vault_prefix, top_level_keys)
與Thomas L.幾乎相同,但是使用io,因此您實際上不會在本地寫入任何文件(所有內容都在內存中)。
import io
import tinys3
f=io.StringIO(u"some initial text data")
conn = tinys3.Connection('yourAccessKey', 'yourSecretKey', tls=True)
conn.upload('yourS3Key', f, 'yourBucketName')
f.close()
要么
您可以使用S3FS( https://github.com/s3fs-fuse/s3fs-fuse )之類的東西將S3存儲桶安裝為磁盤,然后像對本地磁盤一樣簡單地重定向輸出,但是我非常不鼓勵此選項。 S3絕對不是文件系統,不應該這樣使用。 例如,它生成對S3的請求負載(並因此產生成本),並且可能不那么可靠...
您可以將日志寫入本地文件,然后在腳本末尾將其與AWS S3同步。
import tinys3
log_file_object = open(“logfile”, “w”)
log_file_object.write("Some logs...")
log_file_object.write("Some other logs...")
log_file_object.close()
conn = tinys3.Connection('S3_ACCESS_KEY','S3_SECRET_KEY',tls=True)
conn.upload('log_file_DDMMYYYY',f,'my_bucket')
您也可以使用boto3更新文件,但是tinys3對於較小的用途更易於使用。 希望能有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.