有没有办法在不下载的情况下从S3读取.ini配置文件?涉及IT技术相关内容。
我尝试过以下方法:
config.ini:
[DEFAULT]
test = test1
test1 = test2
[ME]
me = you
you = he
代码:
import boto3
import io
import configparser
s3_boto = boto3.client('s3')
configuration_file_bucket = "mybucket"
configuration_file_key = "config.ini"
obj = s3_boto.get_object(Bucket=configuration_file_bucket, Key=configuration_file_key)
config = configparser.ConfigParser()
config.read(io.BytesIO(obj['Body'].read()))
它返回空数组 []。
我已经努力确保
obj['Body'].read()
返回二进制文件“config.ini”的内容很好。这个是可以工作的。问题出现在稍后的某个地方。
read
方法将整个文件加载到内存中。但显然,StreamingBody
没有实现所有必要的属性,以使其与TextIOWrapper
兼容,在这种情况下,您可以简单地使用read_string
方法。我已经相应地更新了我的答案。 - blhsingobj['Body'].read().decode()
这段代码的意思呢?谢谢。 - James Huang