python – Boto反转流

我有一个文件上传到的服务器,我希望能够使用boto将这些文件转发到s3,我必须对数据进行一些处理,因为它上传到s3.

我遇到的问题是他们上传的方式我需要提供一个可写的流,传入的数据被写入并上传到boto我需要一个可读的流.所以就像我有两个没有连接的端.有没有办法用可写流上传到s3?如果是这样,那将很容易,我可以将上传流传递给s3,执行将链接.

如果没有,我有两个松散的结束,我需要一些缓冲区之间的东西,可以从上传读取以保持移动,并暴露我可以给boto读取方法,以便可以读取.但是这样做我肯定我需要为s3上传部分加线,我宁愿避免使用扭曲.

我有一种感觉,我已经过了复杂的事情,但我无法想出一个简单的解决方案.这必须是一个普遍存在的问题,我只是不确定如何将其用于搜索它

最佳答案 boto是一个带有阻塞API的
Python库.这意味着你必须使用线程来使用它,同时保持Twisted提供的并发操作(正如你在使用boto”without”Twisted时必须使用线程来获得任何并发性一样;即,Twisted不会帮助使boto非阻塞或并发).

相反,您可以使用txAWS,一个面向Twisted的库与AWS进行交互. txaws.s3.client提供了与S3交互的方法.如果您熟悉boto或AWS,其中一些应该看起来很熟悉.例如,create_bucket或put_object.

如果提供流式API,txAWS会更好,因此您可以在文件上传到您时上传到S3.我认为这目前正在开发中(基于Twisted中的新HTTP客户端,twisted.web.client.Agent),但可能尚未在发行版中提供.

点赞