簡體   English   中英

python直接寫入S3存儲桶

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM