1

有没有办法使用 s3 打开 ROOT 文件?

ROOT 支持使用TS3WebFile读取(但不写入)

4

2 回答 2

0

由于 uproots 支持 http,因此可以将 s3 资源转换为 http 签名 URL。可以用boto3完成:

import boto3
s3_client = boto3.client('s3', endpoint_url=my_endpoint)
url = s3_client.generate_presigned_url('get_object', Params={'Bucket': my_bucket, 'Key': my_key}, ExpiresIn=10000)

f = uproot.open(url)

有多种使用 boto 的身份验证方法,例如通过环境变量AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY

无需任何特殊库即可完成相同的过程(感谢 Chris),只需实现 s3 提供的算法(https://docs.aws.amazon.com/general/latest/gr/sigv4-signed-request-examples.html , http://awsdocs.s3.amazonaws.com/S3/latest/s3-qrc.pdf )

于 2020-06-17T08:12:16.597 回答
0

Uproot 没有,至少现在还没有。Uproot 具有 memmaped 文件(默认)、本地文件句柄、HTTP 和 XRootD 协议,并且可以添加任何具有 Python 接口和读取字节范围(而不是整个文件)的能力。

这是后端协议所在的目录。

于 2020-04-21T19:02:16.037 回答