问题是关于API设计。场景是,我在内存中有一些KNOWN长度的字节,我想设计一个Pythonic API,用AWS S3
将它们刷新到RPCs
。通过Pythonic,我的意思是如果已经有一个接受的API这样做,我想复制它。
一种方法是做io.create(filename, content)
之类的事情。可以使用HTTP
S3
API将此转换为单个XML
请求。
传统的open
,write
和close
模式是一种流API。 open
不接受长度参数,因此创建的流不知道它应该将所有写入缓冲到单个RPC中。
当然,API可能如下所示:
with open(filename, buffering="UNLIMITED") as f:
f.write(content)
但缓冲并不真正支持"UNLIMITED"
常数。
那我该怎么办?提交PEP?感谢。
答案 0 :(得分:0)
NFS,至少在版本2和3中,并不是非常擅长锁定或原子性。
至少在NFS 2和3中,最好的办法是用临时名称创建文件,然后使用os.rename()。
也许在NFS 4中已经取得了一些进展;我不知道。