STScI应用常见AWS代码
项目描述
stsci-aws-utils
用于在Amazon Web Services上运行STScI软件的实用工具。
S3
ConcurrentS3Client
类使用多个并发HTTP范围请求将S3对象流式传输到内存(BytesIO)。在具有10 Gbps网络连接的m4.10xlarge上的测试中,我们看到了与boto3的S3客户端相比的~3倍加速。客户端凭据和区域配置与boto3相同(环境变量、.aws目录或实例元数据)。
AsyncConcurrentS3Client
类似,但具有异步接口。
使用 ConcurrentS3Client
打开 S3 中的 FITS 文件的示例
from stsci_aws_utils.s3 import ConcurrentS3Client
from astropy.io import fits
with ConcurrentS3Client() as client:
content = client.get_object("some-s3-bucket", "some/key/prefix/some-file.fits")
hdul = fits.open(content)
请注意,在连续发送请求时,重复使用已打开的客户端比每次都创建一个新的客户端更高效。您可以在不使用上下文管理的情况下创建客户端,但需要自己记住调用 close()
方法
client = ConcurrentS3Client()
# ...
client.close()
否则,您将在 stderr 中看到 aiohttp 写入的神秘错误信息。
如果您发现自己处于不方便关闭客户端的情况(例如实现模块方法),atexit
可以为您提供服务
import atexit
CLIENT = ConcurrentS3Client()
atexit.register(CLIENT.close)
它确保在正常程序退出之前调用 close
项目详情
关闭
stsci_aws_utils-0.1.2.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 90f2d225a06a32586a16a7e35ae9b32578c2846c1eec85aa453731c23741d03a |
|
MD5 | 9071439df56dfed486d73a4d3e44fa73 |
|
BLAKE2b-256 | 522c2d46739ae8724090770b198b9c201fbb9eef1eaffd3e8e4c79bd54145aac |