我正在尝试访问S3上的行分隔JSON数据。 根据我对文档的理解,我应该能够做类似
的事情sed -i "/^[ \t]*\/\*<O33>\*\//,/^[ \t]*\/\*<\/O33>\*\//d" $Path/DebugVersion.c
抛出
print data(S3(Chunks(JSONLines))('s3://KEY:SECRET@bucket/dir/part-*.json').peek()
我尝试过这种变化导致不同的错误。
我可以使用以下文件来处理本地文件:
BotoClientError: BotoClientError: Bucket names cannot contain upper-case characters when using either the sub-domain or virtual hosting calling format.
我不确定为什么需要print data(chunks(JSONLines)(map(JSONLines, glob("/home/me/data/*")))).peek()
。
我真的不明白如何使用type-modofiers
答案 0 :(得分:1)
在此页面的{em>示例6 的评论部分http://www.programcreek.com/python/example/51587/boto.exception.BotoClientError中指出:
存储桶名称不得包含大写字符。我们检查 这通过附加小写字符并使用islower()进行测试。 请注意,这也包括带有破折号的数字桶名称等情况。
此评估使用的函数是check_lowercase_bucketname(n)
通过示例调用我们得到:
>>> check_lowercase_bucketname("Aaaa")
Traceback (most recent call last):
...
BotoClientError: S3Error: Bucket names cannot contain upper-case
characters when using either the sub-domain or virtual hosting calling
format.
>>> check_lowercase_bucketname("1234-5678-9123")
True
>>> check_lowercase_bucketname("abcdefg1234")
True
如上所述,让我相信您对's3://KEY:SECRET@bucket/dir/part-*.json'
的调用未通过,因为 KEY 和/或 SECRET 变量包含UpperCase或不允许使用的字符