我需要创建一个CSV并将其上传到S3存储桶.因为我正在动态创建文件,所以如果我可以直接将它写入S3存储桶,而不是在本地编写整个文件,然后在最后上传文件,那会更好.
有没有办法做到这一点?我的项目是用Python编写的,我对这门语言还不熟悉.这是我到目前为止尝试的内容:
import csv
import csv
import io
import boto
from boto.s3.key import Key
conn = boto.connect_s3()
bucket = conn.get_bucket('dev-vs')
k = Key(bucket)
k.key = 'foo/foobar'
fieldnames = ['first_name', 'last_name']
writer = csv.DictWriter(io.StringIO(), fieldnames=fieldnames)
k.set_contents_from_stream(writer.writeheader())
Run Code Online (Sandbox Code Playgroud)
我收到此错误:BotoClientError:s3不支持分块传输
更新:我找到了一种直接写入S3的方法,但是我找不到清除缓冲区的方法而没有实际删除我已编写的行.所以,例如:
conn = boto.connect_s3()
bucket = conn.get_bucket('dev-vs')
k = Key(bucket)
k.key = 'foo/foobar'
testDict = [{
"fieldA": "8",
"fieldB": None,
"fieldC": "888888888888"},
{
"fieldA": "9",
"fieldB": None,
"fieldC": "99999999999"}]
f = io.StringIO()
fieldnames = ['fieldA', 'fieldB', 'fieldC']
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
k.set_contents_from_string(f.getvalue())
for …
Run Code Online (Sandbox Code Playgroud) 我正在考虑针对当前项目的noSQL解决方案,但我对许多这些数据库中的"最终一致性"条款犹豫不决.最终的一致性是否与处理复制滞后的mySQL数据库不同?我过去使用的一种解决方案是使用滞后复制,即在需要立即数据一致性时从主机读取.
但是,我很困惑为什么关系数据库声称具有强大的数据一致性.我想我应该使用交易,这将给我强烈的一致性.假设mySQL复制可能滞后,那么编写应用程序是一个好习惯吗?
我已经创建了一个git标签,但后来我做了一些其他的提交,其中一个需要在标签中,其他的则没有.
例如:
git commit 123
git commit 456
git commit 789
git commit 1011
git commit 1213
Run Code Online (Sandbox Code Playgroud)
我在点上做了一个标记1011
,但现在我想添加提交123
,而不是之间的任何提交.有办法吗?