我正在尝试使用smart_open将流写入KMS加密的S3存储桶,但无济于事。查看smart_open的代码,似乎有一个测试用例,但我无法运行它:
@_test_case
def test_s3_encrypted_file(benchmark, uri):
text = 'с гранатою в кармане, с чекою в руке'
s3_upload = {'ServerSideEncryption': 'AES256'}
actual = benchmark(write_read, uri, text, 'w', 'r', 'utf-8', s3_upload=s3_upload)
assert actual == text
我认为这会起作用,但是它只是说s3_upload不是一个选择:
file = smart_open.open(url, 'w', transport_params={'session': session, s3_upload={'ServerSideEncryption': 'aws:kms', 'SSEKMSKeyId': key}})
file.write(content)
file.close()
有什么想法我做错了吗?
答案 0 :(得分:0)
该参数看起来像是renamed recently,所以它不是s3_upload
而是multipart_upload_kwargs
。
根据您的示例,我刚刚开始工作了
file = smart_open.open(url, 'w', transport_params={'session': session, 'multipart_upload_kwargs': {'ServerSideEncryption': 'aws:kms', 'SSEKMSKeyId': key}})
file.write(content)
file.close()